"One ring to rule them all..."
Modern development with AI agents has become endless tool juggling. Claude Code has its own settings, OpenCode has its own, and Gemini and Codex require separate attention. Every time you add a new MCP server, you have to manually sync scattered JSON, JSONC, and TOML files across your system.
AI Orbiter is a unified control center for your AI environment. We turn configuration chaos into a coherent ecosystem where all tools work as one.
curl -fsSL https://raw.githubusercontent.com/alesha-pro/ai-orbiter/main/install.sh | bashAfter installation:
ai-orbiter startManual installation
git clone https://github.com/alesha-pro/ai-orbiter.git ~/.ai-orbiter
cd ~/.ai-orbiter && pnpm install && pnpm build && pnpm link --globalUninstall
cd ~/.ai-orbiter && pnpm unlink --global && cd ~ && rm -rf ~/.ai-orbiterRequirements:
- Node.js ≥18, pnpm
- Build tools for SQLite compilation:
- macOS:
xcode-select --install - Linux:
sudo apt install build-essential python3
- macOS:
- Unified Registry — SQLite as single source of truth for all MCP servers
- Smart Patches — AST-preserving editing (comments and formatting stay intact)
- Fingerprinting — deduplication of identical servers, even if named differently
- Conflict Resolver — intelligent conflict resolution during import
┌─────────────────────────────────────────────────────────────┐
│ AI Orbiter │
├─────────────────────────────────────────────────────────────┤
│ apps/web │ Next.js 14 + tRPC (UI & API) │
│ packages/core │ Core: DB, adapters, fingerprinting │
└─────────────────────────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude Code │ │ OpenCode │ │ Codex CLI │
│ (JSONC) │ │ (JSON) │ │ (TOML) │
└─────────────┘ └─────────────┘ └─────────────┘
Data Flow:
- Scan — adapters read client config files
- Normalize — transform to unified
McpServer - Fingerprint — SHA256 hash of configuration (without name!)
- Dedup — servers with identical fingerprint are merged
- Apply — write back via AST parser (jsonc-parser / @iarna/toml)
When servers have the same name but different configurations — a conflict arises.
Example: my-mcp in Claude has env: {KEY: "abc"}, while in OpenCode — env: {KEY: "xyz"}.
Resolution options:
| Action | What happens |
|---|---|
| Merge | Choose one client's config as base, apply to all |
| Separate | Rename: my-mcp-claude, my-mcp-opencode |
| Skip | Ignore conflict (server not imported) |
Bulk resolution is also available — apply one solution to all conflicts at once.
| Client | Format | Config |
|---|---|---|
| Claude Code | JSONC | ~/.claude.json |
| OpenCode | JSON | ~/.config/opencode/opencode.json |
| Codex CLI | TOML | ~/.codex/config.toml |
| Gemini CLI | JSON | ~/.config/gemini/settings.json |
Stack: Next.js 14, tRPC, SQLite (better-sqlite3), Turborepo.
git clone https://github.com/alesha-pro/ai-orbiter.git
cd ai-orbiter
pnpm install && pnpm build
pnpm dev # http://127.0.0.1:3457ai-orbiter start # Start (port 3457)
ai-orbiter start -p 8080 # Custom port
ai-orbiter start --no-browser # Without auto-opening browserMIT License. Made for those who prefer to manage their tools, not adapt to them.
