brainstate

qr243vbi/nekobox · source

Snapshot 0 · 2026-11-04T12:47:28Z · C++ · GPL-3.0

Content fingerprint943bf3467b1ca1ab73ddbc36591853507264af8dd894786afcfd8a0fbed68467

GitHub description at capture

NyameBox, The Original NekoBox Rebranded, the cross-platform Qt proxy utility, empowered by sing-box and thrift

README at capture

# [NyameBox](https://github.com/qr243vbi/nekobox) / [NekoBox](https://github.com/qr243vbi/nekobox) for PC 

Sing-Box command line mode is available now! Just type for additional information: </br>
`nekobox_core sing-box --help`
 
Qt based Desktop cross-platform GUI proxy utility, empowered by [Sing-box](https://github.com/SagerNet/sing-box) <br/>
Supports Windows 11/10 (arm64, x86_64, x86) / Linux  out of the box.

A terminal front-end ([`nekobox-tui`](src/tui/README.md)) is also included:
it shares the same configuration directory and `nekobox_core` RPC, so both
interfaces can be used interchangeably.

<img alt="image" src="https://raw.githubusercontent.com/qr243vbi/qr243vbi_images/refs/heads/nekobox/nekobox.png" />



### GitHub Releases (Portable ZIPs, Windows installers, AppImages)
[![GitHub Release](https://img.shields.io/github/v/release/qr243vbi/nekobox?display_name=release&style=flat&logo=github)](https://github.com/qr243vbi/nekobox/releases)
[![GitHub All Releases](https://img.shields.io/github/downloads/qr243vbi/nekobox/total?style=flat)](https://github.com/qr243vbi/nekobox/releases)

### WinGet Package
[![WinGet Page](https://img.shields.io/winget/v/qr243vbi.NekoBox?style=flat&logo=gitforwindows)](https://winget.ragerworks.com/package/qr243vbi.NekoBox)

### Chocolatey Package
[![Chocolatey Version](https://img.shields.io/chocolatey/v/nekobox?style=flat&logo=chocolatey)](https://community.chocolatey.org/packages/nekobox)
[![Chocolatey Package For Windows](https://img.shields.io/chocolatey/dt/nekobox?style=flat)](https://community.chocolatey.org/packages/nekobox)

### Scoop Package
[![Scoop Version](https://img.shields.io/scoop/v/nekobox?bucket=extras&style=flat&logo=boxysvg)](https://scoop.sh/#/apps?p=1&q=nekobox) <br/>
```
scoop bucket add extras
scoop install extras/nekobox
```

### OBS repository 
[![obs build result](https://build.opensuse.org/projects/home:qr243vbi/packages/nekobox/badge.svg?type=percent)](https://build.opensuse.org/package/show/home:qr243vbi/nekobox) <br/>

- [NekoBox repository](https://software.opensuse.org//download.html?project=home%3Aqr243vbi&package=nekobox) for various linux distributions ([openSUSE](https://get.opensuse.org/), [Mageia](https://www.mageia.org/), [Debian](https://www.debian.org/), [Raspbian](https://www.raspberrypi.com/software/), [Ubuntu](https://ubuntu.com/), [openEuler](https://www.openeuler.org/), [Arch](https://archlinux.org/)).

### COPR repository
- [NekoBox repository](https://copr.fedorainfracloud.org/coprs/moordjin/packages/) for various linux distributions ([RedHat](https://www.redhat.com), [Fedora](https://fedoraproject.org/), [Centos](https://www.centos.org), [Almalinux](https://almalinux.org/)).

### openSUSE package
- [source](https://build.opensuse.org/package/show/openSUSE:Factory/nekobox)
```
sudo zypper install -y nekobox
```

### FreeBSD package
- [freshport](https://www.freshports.org/net/nekobox)
```
sudo pkg install -y nekobox
```

### ArchlinuxCN package
- [build logs](https://build.archlinuxcn.org/packages/#/nekobox)
```
# 1. Add archlinuxcn repo
sudo tee -a /etc/pacman.conf >/dev/null <<'EOF'

[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch
EOF

# 2. Sync and install keyring
sudo pacman -Syy archlinuxcn-keyring

# 3. Install NekoBox
sudo pacman -S nekobox
```

### Ubuntu PPA
- [nekobox](https://launchpad.net/~miamosagernaki/+archive/ubuntu/nekobox)
```
sudo add-apt-repository ppa:miamosagernaki/nekobox
sudo apt update
sudo apt-get install -y nekobox
```

### Aur package
- [nekobox](https://aur.archlinux.org/packages/nekobox)
- [nekobox-git](https://aur.archlinux.org/packages/nekobox-git)

### Changelog Channel
[![Matrix Room](https://img.shields.io/matrix/nyamebox%3Amatrix.org?style=flat&label=Matrix%20Room)](https://matrix.to/#/#NyameBox:matrix.org)
[![Telegram Group](https://img.shields.io/badge/tg-blue?style=flat&label=Telegram%20Group)](https://t.me/NyameBox)
  
## TODO
- Command line tools
- [OpenRC](https://openrc.run/)/[runit](https://smarden.org/runit/)/[systemd](https://systemd.io/) integration of nekobox_core
- Terminal UI
- Remote control
- Support for all platforms that supported by sing-box and Qt (except macos & ios)
- Add more protocols that does not supported by upstream sing-box ( currently added: mieru, juicity, trusttunnel, vless encryption, xhttp transport, kcp transport, amnezia, snell (in [core](https://github.com/qr243vbi/sing-box)))
- Replace static UI with declarative UI for editing proxies
- Find the best database storage in the world

## Supported protocols
 
- AmneziaWG
- AnyTLS
- Chaining outbounds
- Custom Config
- Custom Outbound
- Extra Core
- HTTP(S)
- Hysteria 1
- Hysteria 2
- Juicity
- Mieru
- Naive
- Reality
- Shadowsocks
- ShadowTLS
- Snell
- SOCKS
- SSH
- Tailscale
- Tor
- Trojan
- TrustTunnel
- TUIC 
- VLESS
- VMess
- Wireguard

## Subscription Formats

Various formats are supported, including share links, JSON array of outbounds and v2rayN link format as well as limited support for Shadowsocks and Clash formats.

Full JSON subscriptions are supported for sing-box and v2rayN-style configurations. Imported JSON profiles keep their original routing and DNS rules, work with URL testing and auto testing, and can be used with TUN mode.

Happ subscription links are supported, including encrypted `happ://` links. Subscription groups can also be added from browser deeplinks using `nekobox://` and `v2raytun://` URLs.

Supported JSON subscription features include:
- Full sing-box configuration import with inbounds stripped and local application inbounds added at runtime
- V2Ray-style JSON conversion for VLESS, VMess, Trojan, Shadowsocks, Hysteria, Hysteria2, TUIC, direct and block outbounds
- Route rule preservation for full JSON profiles, including profile-specific direct rules in TUN mode
- DNS migration for newer sing-box versions, including fakeip server conversion
- Full JSON URL testing and auto testing
- Hysteria2 detection from v2rayN/Happ-style Hysteria v2 JSON

### Chains in one string

A sing-box JSON that has `outbounds` (or `endpoints`) but no `route`, `dns` or `inbounds` is imported as one profile per outbound. When an outbound names another outbound of the same JSON in `detour`, the outbounds are imported as a chain instead:

- every outbound on the way becomes a profile of its own, named `<remarks> / <type>` and marked as a hop of a chain: it is grayed out in the list, left out of URL tests, speed tests, auto tests and failover, and asks for confirmation before it is started on its own
- a `Chain Proxy` profile named `<remarks>` is created over them; the outbound with the `detour` is the end of the chain, the one it points at is dialed first
- an outbound that has no `detour` and that no other outbound points at stays a normal profile, named `<remarks> / <tag>`
- the main entry is the first outbound of the JSON that is not a hop: sing-box's default (the first outbound when `route.final` is unset), except that hops are skipped; it comes first in the list and is labelled `(main)` when it is a chain; the others follow in the order of the JSON, hops last

Because the result consists of ordinary profiles, routing profiles and the Routes tab apply to them in system proxy mode and in TUN mode alike. A `detour` that points at the direct outbound, at a tag that is not an importable outbound, at itself, or into a loop is ignored. Subscription updates keep unchanged profiles and give them the role the new input assigns; a chain whose hops changed keeps its profile id as long as the remarks and the tag of its last outbound stay the same. "Remove duplicates" keeps the hops that a remaining chain still uses.

```json
{
  "remarks": "client",
  "outbounds": [
    {"type": "vless", "tag": "proxy", "server": "127.0.0.1", "server_port": 10085,
     "uuid": "<UUID>", "packet_encoding": "xudp", "detour": "ssh-hop"},
    {"type": "ssh", "tag": "ssh-hop", "server": "<HOST>", "server_port": 22,
     "user": "<USER>", "private_key": "<KEY>", "host_key": ["<HOST KEY>"]},
    {"type": "vless", "tag": "reality", "server": "<HOST>", "server_port": 443,
     "uuid": "<UUID>", "flow": "xtls-rprx-vision",
     "tls": {"enabled": true, "server_name": "<SNI>",
             "utls": {"enabled": true, "fingerprint": "chrome"},
             "reality": {"enabled": true, "public_key": "<PBK>", "short_id": "<SID>"}}}
  ]
}
```

This gives `client` (a chain: SSH, then the inner VLESS), `client / reality` and the two hops `client / ssh` and `client / vless`.

## Credits

- [starifly/NekoBoxForAndroid](https://github.com/starifly/NekoBoxForAndroid)
- [Thrift](https://thrift.apache.org/)
- [enfein/mieru](https://github.com/enfein/mieru)
- [SagerNet/sing-box](https://github.com/SagerNet/sing-box)
- [Qv2ray](https://github.com/Qv2ray/Qv2ray)
- [Qt](https://www.qt.io/)
- [protorpc](https://github.com/chai2010/protorpc)
- [yaml-cpp](https://github.com/jbeder/yaml-cpp)
- [quirc](https://github.com/dlbeer/quirc)
- [QHotkey](https://github.com/Skycoder42/QHotkey)
- [simple-protobuf](https://github.com/tonda-kriz/simple-protobuf)
- [quickjs-ng](https://quickjs-ng.github.io/quickjs)
- [qrcodegen](https://www.nayuki.io/page/qr-code-generator-library)
- [Install Nsis Github Action](https://github.com/negrutiu/nsis-install)
- [Install Package Github Action](https://github.com/ConorMacBride/install-package)
- [Publish Aur Github Action](https://github.com/KSXGitHub/github-actions-deploy-aur)
- [Setup MinGW Github Action](https://github.com/bwoodsend/setup-winlibs-action)
- [Cached Download Github Action](https://github.com/ethanjli/cached-download-action)
- [Setup MSVC Github Action](https://github.com/ilammy/msvc-dev-cmd)
- [Setup Go Github Action](https://github.com/qr243vbi/setup-go)
- [Setup Ninja Github Action](https://github.com/qr243vbi/setup-ninja)
- [Cache Apt Pkgs Github Action](https://github.com/awalsh128/cache-apt-pkgs-action)
- [Setup Qt Github Action](https://github.com/jurplel/install-qt-action)
- [Setup gRPC Github Action](https://github.com/marketplace/actions/setup-grpc)
- [linuxdeploy](https://github.com/linuxdeploy/linuxdeploy)
- [MinGW](https://www.mingw-w64.org)
- [MSVC](https://visualstudio.microsoft.com/)
- [go](https://go.dev/)
- [qt6windows7](https://github.com/ANightly/qt6windows7)
- [MatsuriDayo/nekoray](https://github.com/MatsuriDayo/nekoray)
- [Open Build Service](https://openbuildservice.org/)
- [Github](https://github.com)
- [go-legacy-win7](https://github.com/thongtech/go-legacy-win7)
- [cv2pdb](https://github.com/rainers/cv2pdb)
- [cmake](https://gitlab.kitware.com/cmake/cmake)
- [ninja-build](https://ninja-build.org/)
- [codeclysm/extract](https://github.com/codeclysm/extract)
- [shlex](https://github.com/google/shlex)
- [URLParser](https://github.com/dongbum/URLParser)
- [npipe](https://github.com/NullYing/npipe)
- [Fedora COPR](https://copr.fedorainfracloud.org/)
- [Chocolatey Software](https://chocolatey.org/)
- [OpenSSL](https://github.com/openssl/openssl)
- [AppImage](https://appimage.org/)
- [sharun](https://github.com/VHSgunzo/sharun)
- [Aur](https://aur.archlinux.org/)
- [Protobuf](https://protobuf.dev/)
- [gRPC](https://grpc.io/)
- [GTRONICK-QSS](https://github.com/GTRONICK/QSS)
- [avalon-qss](https://github.com/getavalon/core/tree/master/avalon/style)
- [qt-stylesheets](https://github.com/xakod/qt-stylesheets)
- [qss_themes](https://github.com/Ktiseos-Nyx/qss_themes.git)
- [Timmifixedit/BidirectionalMap](https://github.com/Timmifixedit/BidirectionalMap)
- [Boost](https://www.boost.org/)
- [AllySummers/docker-cache](https://github.com/AllySummers/docker-cache)
- [shellescape](https://al.essio.dev/pkg/shellescape)
- [go-winio](https://github.com/Microsoft/go-winio)
- [taskmaster](https://github.com/giert/taskmaster)
- [lmdbxx](https://github.com/qr243vbi/lmdbxx)
- [lmdb](https://www.symas.com/mdb)
- [cpr](https://github.com/libcpr/cpr)
- [lrucache11](https://github.com/mohaps/lrucache11)
- [leveldb](https://github.com/google/leveldb)
- [iniqt](https://github.com/qr243vbi/iniqt.hpp)
- [amnezia-box](https://github.com/hoaxisr/amnezia-box)
- [reF1nd/sing-box](https://github.com/reF1nd/sing-box)

## FAQ
**What is AppImage?** <br/>
  AppImage is a reliable and straightforward method for running applications on a Linux computer without the traditional installation process. You download a single, self-contained file which includes everything the program needs to operate. To use it, you simply grant the file permission to run and double-click it. This approach ensures compatibility across various Linux systems and allows for easy removal—simply delete the file when you no longer need the application, with no residual files left behind on your system.

  AppImage files for the [NekoBox](https://github.com/qr243vbi/nekobox) proxy program are available now in the GitHub Release page. Support for the AppImage format begins from version 5.6.10 onwards, offering Linux users an installation-free and portable way to run the application. There are download links within the assets section of the specific release pages starting from that version.

**What is [Throne](https://throne.com/landing)?** <br/>
About Throne

Throne powers the infrastructure that creators need to better engage and monetize their audiences. Over 1,000,000 creators from 89 countries use Throne's all-in-one wishlist builder to let their fans support them in a privacy-first way. Further, partnerships with 1,000+ brands allow Throne to offer creators and their fans an exceptional commerce experience.

Started in 2021, Throne has revolutionized creator gifting through its Wishlist product. Today, Throne is leveraging the relationships it has built with creators and brands to give creators even more tools to engage with their fans in a safe, fun and enjoyable way. In this way, Throne is a three-sided marketplace connecting world-class brands with creators and their fans. Throne has offices in the US and Germany.

**Tun mode does not work for me.** <br/>
If [NekoBox](https://github.com/qr243vbi/nekobox) does not work in tun mode, then issue might be with tun configurations. Try to open tun settings, set stack to gvisor or set different tun address (for example, 168.19.0.1/24)

**I have computer with Windows 7, or Window 8, or Windows 8.1. Which version of [NekoBox](https://github.com/qr243vbi/nekobox) should I download?** <br/>
For Windows 7, Windows 8, and Windows 8.1, it is recommended to first install [VxKex-NEXT](https://github.com/YuZhouRen86/VxKex-NEXT/releases) from the latest release available. After installing VxKex-NEXT, you should launch NekoBox using the VxVex mode to ensure proper functionality.

**I got the msvcp140.dll not found error on windows** <br/>
The "msvcp140.dll not found" error usually means that the Microsoft Visual C++ Redistributable is missing or corrupted. To fix this, try install or reinstall the Microsoft Visual C++ Redistributable from the official Microsoft website
[Official Microsoft website for Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170)

**Does [NekoBox](https://github.com/qr243vbi/nekobox) really need to be run in UAC mode on Windows?** <br/>
No, that is not necessary. [NekoBox](https://github.com/qr243vbi/nekobox) restarts nekobox_core in UAC mode if TUN mode is selected and [NekoBox](https://github.com/qr243vbi/nekobox) is not already running with administrator privileges. [NekoBox](https://github.com/qr243vbi/nekobox) requests UAC confirmation to restart the core.

**Is setting the `SUID` bit really needed on Linux?** <br/>
No, it is not needed, but if `SUID` does not configured properly, the [NekoBox](https://github.com/qr243vbi/nekobox) will ask for administrator password to order to restart nekobox_core with administrator privilegies, if TUN mode is selected and [NekoBox](https://github.com/qr243vbi/nekobox) is not already running as root (or with special capabilities), [NekoBox](https://github.com/qr243vbi/nekobox) will ask for password for once, and will not configure `SUID`.

**Why does my internet stop working after I force quit [NekoBox](https://github.com/qr243vbi/nekobox)?** <br/>
If [NekoBox](https://github.com/qr243vbi/nekobox) of version below that 5.10.41 is force-quit while `System proxy` is enabled, the process ends immediately and [NekoBox](https://github.com/qr243vbi/nekobox) cannot reset the proxy. <br/>

Solution for version < 5.10.40:
- Ensure that [NekoBox](https://github.com/qr243vbi/nekobox) closed manually.
- If you force quit by accident, open [NekoBox](https://github.com/qr243vbi/nekobox) again, enable `System proxy`, then disable it - this will reset the settings. <br/>

Solution for version >= 5.10.41:
- This won't happen, but if it does, please submit [issue](https://github.com/qr243vbi/nekobox/issues).

**How do I keep the log in a file?**<br/>
Set the `NEKOBOX_LOG_FILE` environment variable to a file path before starting [NekoBox](https://github.com/qr243vbi/nekobox). Every line of the log tab, the output of nekobox_core and the Qt messages are then appended to that file with a timestamp. This includes messages from the start, before the main window is shown, and core lines that the log tab skips because of its rate limit. A relative path is taken from the directory the program is started in. The file is never truncated or rotated, so delete it when it is no longer needed. For example, on Windows: `set NEKOBOX_LOG_FILE=%TEMP%\nekobox.log` and then `nekobox.exe` in the same command prompt; on Linux: `NEKOBOX_LOG_FILE=/tmp/nekobox.log nekobox`.

**Where are the downloadable route profiles/rulesets coming from?**<br/>
They are located at the [ruleset](https://github.com/qr243vbi/ruleset/tree/routeprofiles) repository.

## Contact Us
  - Write GitHub issue.
  - Or use Matrix [@qr243vbi:matrix.org](https://matrix.to/#/@qr243vbi:matrix.org)

## License

Use of this software is subject to the GPL-3 license.
## Built-in Xray-core

This fork includes an optional **VLESS (Xray)** profile backed by a bundled Xray-core Extra Core runtime. The Windows and Linux packages currently bundle **Xray-core v26.10.31**. The application verifies the bundled executable with `xray version` before starting an Xray profile and requires **>= 26.10.31**.

The Xray profile uses the existing NekoBox VLESS editor and supports TCP, XHTTP, WebSocket, gRPC and HTTPUpgrade transports, including the raw XHTTP `extra` JSON from VLESS share links and REALITY parameters including `pbk`, `sid`, and `spx`.

Experimental Windows compatibility changes and build status: [README_WINDOWS10_RU.md](README_WINDOWS10_RU.md).