Discover MCPs & agents
Loading MCPs and agents…
Loading MCPs and agents…
OpenCockpit is the open-source Claude Code GUI — parallel multi-project sessions, multi-engine BYOK (Codex / DeepSeek / Kimi / Ollama), terminal, browser & DB bubbles, code review. Built on the official Claude Agent SDK. Local-first, MIT.
From the repo.
One seat. One AI. Everything under control.
/ˈkɒkpɪt/ — like an aircraft cockpit
OpenCockpit is the open-source Claude Code GUI — an IDE-like workbench for the whole dev loop, and a single canvas for whatever agent you bring next. Run multi-project Claude sessions out of the box; pop open a tab for Codex, DeepSeek, GLM, Kimi, or local Ollama whenever you need. Built-in terminal, Chrome control, PostgreSQL / MySQL / Redis bubbles, code review, and slash modes — all local. And it's web client–server: self-host it on a shared dev box and every teammate gets a seat.
https://github.com/user-attachments/assets/18f1a5dc-64f3-4ff6-b9fc-9cd08181fbb8
npm i -g @surething/cockpit && cockpit
Anthropic ships Claude Code as a CLI. That's the right call for power users — but the moment you have more than one project in flight, your terminal turns into mission control with no instruments.
Cockpit is the instrument panel. It does not replace Claude Code; it stands on top of the official Agent SDK and gives you the things a CLI can't:
| Pain with raw Claude Code | What Cockpit adds |
|---|---|
| Stuck on one model | 6 engines side by side in tabs: Claude (default), Codex, DeepSeek, GLM, Kimi, local Ollama — each its own session |
| One session at a time, terminal chaos at 3+ projects | Multi-project tabs, parallel agent sessions, red-dot inbox, desktop notifications |
| Image attachments are awkward | Drop / paste images straight into chat |
| "What was I debugging yesterday?" | Cmd+K cross-project session browser, pinning, forking; /ss finds any past session from one sentence |
| Every subagent starts with a blank slate | Bots: persistent, file-native subagents you tag with @name; each runs in its own inspectable session |
| Agent can't reach your browser / DB | Smart Bubbles: Chrome, PostgreSQL, MySQL, Redis — drivable by the agent |
| Reading an unfamiliar repo means a 90-min file-tree scavenger hunt | Code Map chip view — caller / callee pins, click to walk the call graph |
| Reviewing AI output is friction | LAN-shared review pages, line-level comments, send any comment back as AI context |
| Same "do X but don't change code" prompt every day | Slash modes /qa /fx /ex /go /cg /cc /cr + custom SKILL.md via the Skills sidebar |
| No automation hooks | One-time / interval / cron-based scheduled tasks |
| "Cloud relay" trust concerns | Fully local. No telemetry. API keys (DeepSeek / GLM / Kimi) stay in ~/.cockpit/<engine>/credentials.json on your laptop. |
An honest snapshot as of July 2026 — each tool wins somewhere. Spotted an error? PRs welcome.
| OpenCockpit | Claude Code Desktop (official) | Opcode | |
|---|---|---|---|
| Positioning | IDE-like workbench for the whole dev loop | agent session companion | session manager for Claude Code |
| Architecture | ✅ web client–server — deploy on a shared dev box; the whole team codes with AI in parallel, each on their own project / worktree | single-user desktop app | single-user desktop app |
| Open source | ✅ MIT | ❌ closed source | ✅ AGPL-3.0 |
| Engines | ✅ Claude + Codex / DeepSeek / GLM / Kimi / Ollama (BYOK) | Claude only | Claude only |
| Parallel multi-project sessions | ✅ | ✅ | ✅ |
| Agent-drivable browser & DB (Chrome / Postgres / MySQL / Redis) | ✅ Smart Bubbles | ❌ preview pane only | ❌ |
| LAN-shared code review pages | ✅ | ❌ | ❌ |
| Fully offline / air-gapped | ✅ via Ollama | ❌ | ❌ |
| Phone / tablet access | ✅ any LAN browser — code runs on your machine | ✅ via Claude Code on the web (cloud sandbox) | ❌ desktop only |
| Native desktop app | ❌ local web app (needs Node ≥ 20) | ✅ | ✅ Tauri |
| Newest Claude Code features on day one | ⏳ tracks Agent SDK releases with a lag | ✅ first party | ❌ |
| Automation triggers | one-time / interval / cron | ✅ Routines: cron + API + GitHub events | background agents |
| Session checkpoints / rewind | pinning & forking only | ✅ | ✅ checkpoint timeline |
| Per-tool-call change snapshots (real disk diff for every Edit / Write / Bash / MCP call, 7-day local history) | ✅ | ❌ | ❌ per-prompt checkpoints only |
| Usage / cost analytics | basic token counts | n/a (plan-based) | ✅ full dashboard |
| Cost | GUI free (MIT); AI billed by whichever engine you bring — can be $0 with local Ollama | app free; needs a paid Claude plan or API billing | GUI free (AGPL); needs a paid Claude plan or API billing |
| Actively maintained | ✅ | ✅ | ⚠️ last release Aug 2025 |
Pick Claude Code Desktop if you live inside the Anthropic ecosystem and want first-party polish. Pick Opcode if you want a native desktop feel with checkpoints and cost analytics. Pick OpenCockpit if you want more than a chat window — an open-source, IDE-like cockpit that covers the whole dev loop (read code, drive your browser and databases, review, automate) with any engine you bring, even from your phone.
claude CLI is already configured~/.codex config; same chat, same shell + bubblesdeepseek-v4-pro by default) and a balance checkglm-5.2 by default) and a Coding Plan quota check; one key, two hosts — switch Region between open.bigmodel.cn and api.z.aikimi-for-coding, k3, …) and a quota check; no kimi CLI needed~/.cockpit/<engine>/credentials.json; no cloud relay/ss — find any past session (any project, engine or date) from a one-line description; the reply links straight to it/dl — delegate a sub-task to a new session in another directory and/or on another engine, without waiting; ask later how it went@name; it runs in a separate session with its own identity, context, commitments, and SkillsBash did!command prefix to run shell from chat — output piped back as contextsearch / callers / callees / impact / file / coedit) + 4 analytics (context / related / risk / affected, powered by PageRank · PPR · TF-IDF · Louvain, zero training) — so the agent queries coordinates instead of grepping text; trigger with /cg from chat. Coordinates only, never source — precise, cheap, and catches the conventional coupling no regex can./qa — Clarify-only: restate, ask back, never code/fx — Diagnose-only: bug evidence chain, never edit/ex — Explore: 6-step structured discussion skeleton (study → diverge → converge → re-diverge → iterate-verify → summarize)/go — Land: take a converged plan, slice into MVP stages, write + self-verify per stage, recap at end/cg — CodeGraph project exploration: 10 HTTP endpoints for symbol / callers / impact / co-edit / risk / affected queries (precise where grep is fuzzy)/cc — Cockpit CLI: drive the cockpit CLI surface — codegraph subcommands, terminal observation, browser automation/cr — Code review: full PR review — static triangulation (intent / input domain / surroundings) + dynamic modelling (state diagram + timeline → 6 risk classes), findings ranked by impact × probabilitySKILL.md and add it via the Skills sidebar — it auto-appears in the slash autocomplete menu (see Skills)SKILL.md to teach the agent a new trick/skill-name from chat/bot, then register its ordinary local directory from the Bots panel or its BOT.md@name; every turn runs in a separate, inspectable session and returns a link@name attach /path/to/SKILL.md; review stale memory with @name review@product for a roadmap decision today and again next month; it reads the same explicit, reviewable context without polluting the main chat./fx in one tab on a backend bug, /ex in another to plan the frontend refactor, /go to land it — three slash modes, three different agent postures.No install, no AI chat (read-only sandbox, 5 min):
~/.cockpit/chrome-extensioncodex login to populate ~/.codex<id>.<secret>) at bigmodel.cn/apikey/platform; paste it into the API Key field of the model picker in the chat header. The same key works on both hosts, so Region (open.bigmodel.cn / api.z.ai) is just routing — it defaults from your UI language and can be overridden in the picker.sk-kimi-…) at kimi.com/code/console; paste it into the API Key field of the model picker in the chat header. (A platform.moonshot.cn Open Platform key is a different product and will not work.) The kimi CLI is no longer used.ollama pull <model>; Cockpit auto-starts the daemonAPI keys are stored locally, each in its own file at
~/.cockpit/<engine>/credentials.json(e.g.~/.cockpit/kimi/credentials.json,~/.cockpit/glm/credentials.json) — never insettings.json. No cloud relay.
npm install -g @surething/cockpit
cockpit # start cockpit → http://localhost:3457
cockpit . # open current dir as a project
cockpit ~/my-project # open specified dir
cockpit -h # help
cockpit runs in the foreground, so closing the terminal stops it. To keep it
running:
cockpit start # start in the background
cockpit status # running? which version, port, pid, uptime
cockpit restart # restart in place
cockpit stop
start accepts the same flags as cockpit (--port, --token). Output goes
to ~/.cockpit/logs/server.log.
restart asks the running server to replace itself, so the port and token it
was started with are preserved — you do not need to repeat them.
There is no launchd/systemd integration: after a reboot, run
cockpit startagain (or add it to your login items).
cockpit update
…or click the version pill in the sidebar when an update is available.
If Cockpit is running, it updates in place: the server hands off to a helper that installs while nothing is holding the install directory, then relaunches with the same port and token. A failed install rolls back to the previous version and still restarts, so an interrupted update never leaves you without a working Cockpit.
If it is not running, cockpit update simply installs.
Once the new server is up, any browser tab left open from the old version shows a "reload" prompt — its cached assets belong to the previous build.
Windows support is experimental — it is exercised by CI but has far less real-world mileage than macOS and Linux. Cockpit runs natively; the Console panel uses Git Bash when it is installed and falls back to PowerShell, the same order Claude Code applies on Windows.
cockpit.bash channel used by HTML apps is unavailable.Prefer a Linux toolchain? Run all of Cockpit inside WSL2, where it is an ordinary Linux install:
wsl --install # once, from an admin PowerShell, then reboot
wsl # enter your Linux shell
npm install -g @surething/cockpit # install Node ≥ 20 inside WSL first
cockpit
Either way, open http://localhost:3457 in your Windows browser — WSL2
forwards localhost automatically.
Pick one side and stay there. Running Cockpit on Windows while your project lives inside WSL (or the reverse) gives the agent one set of paths and its terminal another: the same directory is
C:\Users\me\projon one side and/mnt/c/Users/me/projon the other, so paths passed between them do not resolve. Keep Cockpit and your code in the same world.
The package ships a single command:
cockpit. (The formercockalias has been removed — one name everywhere.)
git clone https://github.com/Surething-io/cockpit.git
cd cockpit
npm install
npm run setup # build + npm link (registers `cockpit`)
cockpit browser <id> snapshot # capture accessibility tree
cockpit browser <id> click <uid> # click element
cockpit terminal list # list terminal bubbles
cockpit terminal <id> output # read terminal output (filter, cursor)
cockpit connection list --cwd . # list ALL bubbles (term + browser) with user-set titles
npm run dev # dev server → http://localhost:3456
npm run build # production build
npm run setup # build + npm link
npm run lint # ESLint
Next.js 16 · React 19 · TypeScript · TailwindCSS · xterm.js · node-pty · Shiki · tree-sitter (WASM) · i18next · Claude Agent SDK · Vercel AI SDK
Issues and PRs welcome. See CONTRIBUTING.md and the OpenCockpit docs.
Questions, ideas, or show-and-tell: join the community at r/opencockpit.
MIT © Surething
If Cockpit saved you 10 minutes today, a ⭐️ on GitHub is the cheapest thank-you we know.
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.