
Local AI CLI Unified Gateway — Route Claude Code / Codex / Gemini CLI through a single entry point
简体中文 | English
Installation · Quick Start · Features · How It Works · FAQ · Contributing
| Problem | How AIO Coding Hub Solves It |
|---|---|
| Each CLI needs separate API config | Unified gateway — all CLIs route through 127.0.0.1 |
| Upstream goes down, requests fail | Smart failover — auto-switch providers with circuit breaker |
| Different scenarios need different provider sets | Sort templates — multiple sets, per-CLI activation |
| No idea how many tokens or how much it costs | Full observability — trace, usage stats, cost estimation |
| Different projects need different Prompts / MCP configs | Workspace isolation — per-project CLI config, one-click switch |
This is a local desktop tool + local gateway: it listens on
127.0.0.1only, all data stays on your machine — no public deployment, remote access, or multi-tenancy.



@aio-coding-hub/plugin-sdk, create-aio-pluginPlugin authors should start from the Plugin Developer Guide. Community plugins use the Extension Host exclusively.
Go to Releases and download for your platform:
| Platform | Official release packages |
|---|---|
| Windows x64 | .msi / -portable.zip |
| macOS Intel | .zip |
| macOS Apple Silicon | .zip |
| Linux x64 | .deb / .AppImage / -wayland.AppImage |
The official support matrix only covers those four targets. mac:universal and win:arm64 remain local build scripts and do not ship in Release assets or latest.json.
Option 1: Homebrew (recommended)
brew tap dyndynjyxa/aio-coding-hub
brew install --cask aio-coding-hub
To upgrade later:
brew update
brew upgrade --cask aio-coding-hub
Option 2: Manual download
Download the .zip matching your chip from Releases (arm for Apple Silicon, intel for Intel), unzip, and drag AIO Coding Hub.app into your Applications folder.
[!IMPORTANT] Seeing "damaged and can't be opened" or "unverified developer" on first launch?
The macOS packages are not signed or notarized with an Apple Developer certificate, so Gatekeeper blocks the first launch. Pick any of the following:
① Remove the quarantine attribute (recommended, one command)
bash sudo xattr -cr "/Applications/AIO Coding Hub.app"② Allow via System Settings
After the first blocked launch, open System Settings → Privacy & Security and click Open Anyway at the bottom.
③ Self-sign locally (optional, permanent)
Replace the invalid signature with an ad-hoc one so macOS never prompts again:
bash sudo codesign --force --deep --sign - "/Applications/AIO Coding Hub.app"You only need to do this once per install or manual re-install.
Download from Releases:
.msi — standard installer with auto-update support-portable.zip — portable version, unzip and runDownload .deb (Debian / Ubuntu) or .AppImage (universal) from Releases.
Arch Linux (AUR, recommended) — uses system libraries, best compatibility:
paru -S aio-coding-hub-bin
# or
yay -S aio-coding-hub-bin
Wayland blank window / startup crash
The app automatically detects Wayland sessions and sets WEBKIT_DISABLE_COMPOSITING_MODE=1
to prevent EGL display initialisation crashes (see issue #93).
If you still see a blank white window, use the *-wayland.AppImage artifact from the Release page
(bundled EGL/Mesa libraries stripped; system versions are used instead):
# Or manually repack an existing AppImage
./scripts/repack-linux-appimage-wayland.sh aio-coding-hub-linux-amd64.AppImage
Prerequisites
General: Node.js 18+, pnpm, Rust 1.90+
Windows: Microsoft C++ Build Tools (select "Desktop development with C++")
macOS: xcode-select --install
Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y libasound2-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
git clone https://github.com/dyndynjyxa/aio-coding-hub.git
cd aio-coding-hub
pnpm install
# Development
pnpm tauri:dev
# Build (current platform)
pnpm tauri:build
# Platform-specific
| Scope | Command | Notes |
|---|---|---|
| Official | pnpm tauri:build:win:x64 |
Windows x64; Official; included in Release / updater matrix |
| Official | pnpm tauri:build:mac:x64 |
macOS Intel; Official; included in Release / updater matrix |
| Official | pnpm tauri:build:mac:arm64 |
macOS Apple Silicon; Official; included in Release / updater matrix |
| Official | pnpm tauri:build:linux:x64 |
Linux x64; Official; included in Release / updater matrix |
| Local only | pnpm tauri:build:mac:universal |
macOS Universal; Local build only; excluded from the official release / updater matrix |
| Local only | pnpm tauri:build:win:arm64 |
Windows ARM64; Local build only; excluded from the official release / updater matrix |
Only the "Official" rows above feed GitHub Releases and auto-update. The "Local only" rows keep local build flexibility without claiming shipped support.
Verify the gateway is running:
curl http://127.0.0.1:37123/health
# {"status":"ok"}
Claude Code ──┐
Codex ─┼──▶ AIO Coding Hub Gateway (127.0.0.1:37123) ──▶ Provider A (priority 1)
Gemini CLI ──┘ sort templates · circuit breaker · failover ├▶ Provider B (priority 2)
· usage metering └▶ Provider C (priority 3)
All three CLIs send requests to the local gateway. The gateway picks a provider based on the active sort template, trips the circuit breaker and fails over to the next provider on errors, and records traces, token usage, and cost along the way.
macOS says the app "is damaged" or comes from an "unverified developer"?
Expected — the packages are not Apple-signed or notarized. See the macOS install notes; running sudo xattr -cr "/Applications/AIO Coding Hub.app" fixes it.
What port does the gateway use? How do I check it's running?
It listens on 127.0.0.1:37123 by default. Run curl http://127.0.0.1:37123/health — {"status":"ok"} means it's up.
Do my API keys or request data ever leave my machine?
No. The gateway only listens on the loopback interface, and all config and stats live in a local SQLite database.
Blank window or crash on Linux Wayland?
See the Wayland troubleshooting section under Linux installation, or use the *-wayland.AppImage artifact.
Which platforms get auto-updates?
The four official targets (Windows x64, macOS Intel / Apple Silicon, Linux x64) ship through Releases and the updater channel; mac:universal and win:arm64 are local-build-only.
The plugin system is open to community extensions, built exclusively on the Extension Host:
| Layer | Technology |
|---|---|
| Frontend | React 19 · TypeScript · Tailwind CSS · Vite |
| State | TanStack Query · React Hooks |
| Desktop | Tauri 2 |
| Backend | Rust · Axum (HTTP Gateway) |
| Database | SQLite (rusqlite) |
| Testing | Vitest · Testing Library · MSW · Cargo Test |
Issues and PRs welcome! We follow Conventional Commits.
feat(ui): add usage heatmap
fix(gateway): handle timeout correctly
docs: update installation guide
Please run the checks locally before opening a PR:
pnpm check:precommit # Quick pre-commit (frontend + Rust check)
pnpm check:precommit:full # Full check (formatting + clippy)
pnpm check:prepush # Coverage + backend tests + clippy
pnpm test:unit # Frontend unit tests
pnpm tauri:test # Backend tests
Inspired by these excellent open-source projects:
$ claude mcp add aio-coding-hub \
-- python -m otcore.mcp_server <graph>