ClashTui is a terminal user interface (TUI) proxy management tool supporting both Mihomo (Clash.Meta) and sing-box proxy cores. Switch nodes, update subscriptions, manage connections, and control services — all from the terminal.
profile, mode, service, update subcommands for scripting and automationcore_override_config without modifying original subscription fileskeymap.yamlLinux and macOS: - sudo - fzf
Windows: - nssm
sudo pacman -S mihomo sing-box clashtui # ArchLinux. (Note: the latest clashtui may not be uploaded yet — please build and install it manually)
This step ensures mihomo, sing-box, and clashtui are available in your environment so the install script will skip downloading them. You can also download them manually and run which mihomo sing-box clashtui to verify they are correctly configured.
bash <(curl -fsSL https://raw.githubusercontent.com/JohanChane/clashtui/refs/heads/main/installs/install) --core all
Tip: The install script downloads resources from GitHub. If downloads keep failing, try enabling a proxy before running the script.
clashtui_mihomo.service / clashtui_singbox.service on boot:sudo systemctl enable clashtui_mihomo.service
# OR
sudo systemctl enable clashtui_singbox.service
brew install mihomo sing-box clashtui # Note: the latest clashtui may not be uploaded yet — please build and install it manually
bash <(curl -fsSL https://raw.githubusercontent.com/JohanChane/clashtui/refs/heads/main/installs/install) --core all
clashtui_mihomo / clashtui_singbox launchd plists on boot:sudo launchctl load -w /Library/LaunchDaemons/clashtui_mihomo.plist
# OR
sudo launchctl load -w /Library/LaunchDaemons/clashtui_singbox.plist
scoop install mihomo sing-box clashtui # Note: the latest clashtui may not be uploaded yet — please build and install it manually
# Verify
Get-Command mihomo sing-box clashtui
This step ensures mihomo, sing-box, and clashtui are in PATH so the install script will skip downloading them.
# Default install to D:\ClashTui
.\installs\install.ps1 --core all
# Custom directory (no spaces allowed)
.\installs\install.ps1 --core all -InstallDir "D:\MyTools\ClashTui"
# Only install mihomo core
.\installs\install.ps1 --core mihomo
The install script does NOT register Windows Services. Launch clashtui and use the built-in CoreSrvCtl to manage services. Enable only one core service at boot (do not enable both simultaneously).
bash <(curl -fsSL https://raw.githubusercontent.com/JohanChane/clashtui/refs/heads/main/installs/install) --core all --is-user
Enable on boot:
systemctl --user enable clashtui_mihomo.service
# OR
systemctl --user enable clashtui_singbox.service
bash <(curl -fsSL https://raw.githubusercontent.com/JohanChane/clashtui/refs/heads/main/installs/install) --core all --is-user
Enable on boot:
launchctl load -w ~/Library/LaunchAgents/clashtui_mihomo.plist
# OR
launchctl load -w ~/Library/LaunchAgents/clashtui_singbox.plist
| Document | Description |
|---|---|
| Getting Started | Detailed usage guide: UI operations, CLI, subscription management, config reference, FAQ |
| Feature Design | Feature design: config structure, subscription management, Template expansion, sing-box merge algorithm |
| Architecture | Code architecture: module structure, startup flow, TUI event loop, Tab system |
| Development Conventions | Branch naming, commit format, CHANGELOG conventions |
Issues and pull requests are welcome. Please read the Development Conventions before contributing.
To get up to speed quickly: 1. Feature Design — understand the feature design 2. Architecture — understand the code structure
$ claude mcp add clashtui \
-- python -m otcore.mcp_server <graph>