Kvistcode is a desktop app that runs Claude Code, OpenAI Codex, xAI Grok, local models and any ACP agent side by side — across all your accounts, with every project isolated in its own git worktree.
CClaude CodeGOpenAI CodexXxAI GrokGCGemini CLI ACPGoGoose ACPOCOpenCode ACPLOllama · LM Studio local
Free and open source · Uses each vendor's official runtime · Never scrapes a login
Mission Control
—
Nothing here
This is a working mock of Kvistcode's Mission Control. Allow or deny requests, fail over a rate-limited agent, filter the fleet.Fictional projects and accounts, like the screenshots.
1
Needs you
One queue for every approval and finished task. J / K / E to triage.
2
Approve on the card
Allow or Deny without opening the conversation.
3
Sub-agents
Each is its own card; the title bar counts them fleet-wide.
4
Limit failover
Continue on another account when one hits its limit. Off by default.
5
Every account
Two Claude Max, three ChatGPT, a Grok key, a local model. At once.
Providers
Every agent you already use.
Coding agents are most useful when you can run several at once. But each vendor ships its own terminal, its own login and its own idea of a session. Kvistcode drives each vendor's official agent runtime — it never reimplements an agent or scrapes a login — so your subscriptions are used exactly as the vendor intends. New to Claude Code in a GUI or the Agent Client Protocol? Start there.
Supported providers, their runtimes and protocols
Provider
Runtime
Protocol
CClaudeAnthropic
Claude Code+ claude-agent-acp
Agent Client Protocol
GChatGPTOpenAI
Codex CLI
codex app-server (JSON-RPC)
XGrokxAI
Grok Build
ACP · grok agent stdio
LLocalFree, on your machine
Codex CLI, pointed at your serverOllama · LM Studio · llama.cpp · vLLM · any OpenAI-compatible
codex app-server
+Anything elseBring your own
Gemini CLI · Goose · OpenCode · yours
ACP, with a connection test
Many accounts per provider
Every account has its own isolated login, so two Claude Max accounts and three ChatGPT accounts can run at once. API keys live in your OS keychain.
Compare, then hand off
Send one prompt to several providers, read the answers side by side and keep the one you like. Or have Codex review Claude's work.
Kvistcode brings its own tools
It installs pinned copies of Claude Code, Codex and Grok, keeps them current, and rolls back any update that stops them starting.
Worktrees
Parallel work that never collides.
Every agent gets its own branch and working copy. Review the diff, comment on lines, then commit, merge or open a PR — with CI status and reviewer comments feeding straight back to the agent. How worktrees work.
One worktree per agent
Three agents, one repo, no merge-conflict roulette.
Review before anything lands
Syntax-highlighted diffs, per-hunk revert, a “Viewed” box on each file, and line comments that go back to the agent.
Commit, merge or open a PR
From the end-of-turn summary. “Fix CI” and “Address comments” send failing logs and review feedback to the agent, and you edit the message first.
Three agents · one repositoryeach branch lives under ~/.kvistcode/worktrees
Tour
Everything between prompt and pull request.
Real screens from Kvistcode's demo workspace, with the details that matter when you run more than one agent.
Conversation
A calmer conversation
Runs of tool calls and thoughts fold into one line: “Read 4 files, edited 2 files, ran 3 commands.” Answers, approvals, plans and errors stay in view.
Syntax highlighting that matches each theme
Images inline, not file paths
Queued messages: edit, drop or send now
@-mention files, slash commands per agent
Workspace
Workspace beside the chat
Each agent has terminals, scripts and a live preview in its own folder. When an agent starts a dev server, it appears next to the conversation.
A review sheet with real diffs, and PR and CI status on every agent. You decide what lands.
Per-hunk revert and “Viewed” checkboxes
Line comments that go back to the agent
Commit, Commit & merge, or Open PR
Checkpoints before every message: “Restore to here”
Compare
One prompt, three answers
Send the same prompt to several providers, read the answers side by side and keep the one you like. Handoff lets one agent review another's work.
Claude, Codex and Grok in columns
Keep the one you like
“Have Codex review Claude's work”
Accounts
Accounts, and models at home
Per-account usage meters for your 5-hour and weekly limits, where the provider reports them. And local agents on Ollama or LM Studio, free and with no sign-in.
Isolated login per account
Ollama and LM Studio detected automatically
Pick a model per agent; “Get a model” from inside the app
Warns before pointing at another machine
Phone
The fleet in your pocket
Pair a phone with a QR code and run the fleet from anywhere over Tailscale, or on the same Wi-Fi. Start agents, send prompts with photos, approve, review diffs and merge.
Tailscale: nothing opened on your network
Approve, deny, stop, resume, switch model
Review diffs, Commit & merge
Read-only share links for teammates
Features
Also in the box.
The unglamorous parts that make running a fleet bearable.
Checkpoints
Every message snapshots the agent's files first. Restore with a preview, and undo the restore. Your branch and commits are never touched.
Plan approval
When Claude finishes planning, read the plan as a card: approve and auto-accept, approve and review each edit, or keep planning.
Message queue
Type while an agent is busy and your messages line up. Edit, drop, or send one right now.
Schedules
“Every weekday at 9:00, check for dependency updates.” Plus prompt templates with fill-in placeholders.
MCP, configured once
Add a server in Settings and every agent on every provider gets it. Paste a snippet, test the connection.
Rate-limit failover
When an account hits its limit, continue on another one. Ask first or switch automatically; off by default.
Project settings
Edit a project's CLAUDE.md and AGENTS.md, manage permission rules, and see its hooks, commands and skills.
Usage meters
Your plan and 5-hour and weekly usage in the agent header, with per-account meters and a Usage page.
Notifications
Sounds and sound packs, Approve or Deny in the notification on Linux, phone push via ntfy, and re-pings when an approval goes stale.
Voice dictation
Press the mic and speak. Whisper runs on your computer; the model downloads once, when you choose to.
Voice assistant
Optional, off by default. Ask what your agents are doing, start one, message or stop one. It can never approve, delete, commit or push.
Survives the window
Kvistcode lives in the tray. Agents survive closing the window, crashes and reboots, and can be resumed.
Export and search
Export any conversation as Markdown or JSON, and search across your whole history.
Sub-agent cards
Work handed to a sub-agent appears as its own card, tool calls nested inside, counted in the title bar.
Inbox
Every pending approval and finished task in one place, triaged from the keyboard with J, K and E.
Signed updates
Verified before installing. Windows, macOS and AppImage update in place; .deb and .rpm tell you when a release is out.
Run from the chat
Shell blocks in replies get a Run button. Risky commands ask first; “Paste without running” leaves Enter to you.
Three themes
Gunmetal, Carbon and Titanium, with syntax highlighting tuned to each. This page uses the same three: try the theme button on the rail.
Carbon · Gunmetal
Titanium
Keyboard
Your hands stay on the keys.
Kvistcode is fully usable from the keyboard. Try the shortcuts on this page: the rows light up as you press them.
CtrlK
CtrlK opens this site's own command palette, the same one the app has. Press Ctrl/ in the app for the full cheat sheet.
CtrlK
Command palette. Type > to start an agent
CtrlN
New agent
CtrlJ
Needs you (again for the next one)
Ctrl⇧M
Mission Control
CtrlI
Inbox
Ctrl⇧D
Dictate: start or stop
Ctrl`
Show or hide the workspace panel
Ctrl/
Shortcut cheat sheet
Security
Where your data goes.
A plain ledger instead of a promise. Agents talk to their own vendors, as they always do; here is everything else.
Where each kind of data goes
What
Goes to
Notes
Prompts & code
Via vendor runtime Your agent's vendor
Kvistcode runs each vendor's official runtime on your machine, so your plan is used as the vendor intends. It never reimplements an agent or scrapes a login.
Local-model prompts
Stays local The server you configure
Nothing leaves your computer unless you point at another machine, which Kvistcode warns about.
Voice dictation
On-device Your computer
Transcribed locally with Whisper. The speech model downloads once, when you choose to.
Voice assistant
Off by default OpenAI Realtime API
Sends your voice and the agent information it reads to OpenAI, billed per minute to your OpenAI key. It can never approve, delete, commit or push.
API keys
Local Your OS keychain
Each account runs in its own config directory (CLAUDE_CONFIG_DIR, CODEX_HOME, GROK_HOME).
Checkpoints
Local Git refs under refs/kvistcode/*
Never pushed on their own. Untracked credential files (.env, *.pem, *.key, id_rsa*, .npmrc) are left out.
Phone companion
Your devices Tailscale, or your own network
With Tailscale, nothing is opened on your network. Keep plain-HTTP local access on networks you trust, and never expose the port to the internet.
Phone pushes
Opt-in detail Your ntfy topic
By default they say only which agent needs you. Full message text is opt-in, with secrets scrubbed.
Risky commands ask first
Things like rm -rf or sudo need a yes, and “Paste without running” leaves pressing Enter to you.
Updates are signed
Verified before installing. Bundled agent tools are verified too, and rolled back if one no longer starts.
Open source
MIT licensed. Read the code, build it yourself, check that it does what this page says.
Download
Up and running in two minutes.
Latest
Latest release · GitHub
Free and open source. Kvistcode checks GitHub Releases for updates shortly after launch and every six hours.
Every build is on GitHub Releases. Windows, macOS and AppImage installs update in place with signed updates; .deb and .rpm installs are told when a new version exists.
Kvistcode lives in your tray, so agents keep running when you close the window.
Let setup do the rest
It installs and keeps current its own Claude Code, Codex and Grok. If you have no Node.js, it downloads a private, checksum-verified copy. No admin rights needed.
Sign in and launch a fleet
Add your accounts from the Accounts page, pick a project, and start as many agents as you like.
Prefer local models?
# give the agent room to work, then add it in Accounts$ OLLAMA_CONTEXT_LENGTH=32768 ollama serve
Build from source
$ git clone https://github.com/pl0xuee/kvistcode
$ cd kvistcode/apps/desktop && npm ci
$ npm run tauri dev
Guides
Go deeper.
How Kvistcode handles the things people ask about most: Claude Code, parallel agents, git worktrees, local models and the Agent Client Protocol.
Kvist is the Scandinavian word for a twig or branch, a nod to how every agent works on its own git branch in its own worktree.
Was Kvistcode called something else before?
Yes. Kvistcode was called Armada until v0.3.0, so older releases and their installer file names still carry that name. Your agents, settings and sign-ins carry over, and updates keep working.
What is an ADE?
An Agentic Development Environment. Where an IDE is built around you editing code, an ADE is built around you directing agents that edit code: running several in parallel, watching them, and reviewing what they did. Kvistcode is one.
Is Kvistcode free?
Yes. Kvistcode is open source under the MIT license. You bring your own agent accounts (Claude, ChatGPT, Grok…) or run local models for free.
Does Kvistcode use my Claude or ChatGPT subscription?
Yes. It drives each vendor's official agent runtime (Claude Code, Codex CLI, Grok Build), so your plan is used exactly as the vendor intends. Kvistcode never reimplements an agent or scrapes a login, and every account gets its own isolated config directory.
Which agents and models are supported?
Claude Code, OpenAI Codex and xAI Grok Build out of the box; any agent that speaks the Agent Client Protocol (Gemini CLI, Goose, OpenCode or your own); and local models through Ollama, LM Studio or any OpenAI-compatible server.
How do parallel agents avoid stepping on each other?
Each agent works in its own git worktree on its own branch. You review the diff, then commit, merge or open a PR. Checkpoints snapshot files before every message so you can restore to any point without touching your branch or commits.
Does my code leave my computer?
Kvistcode runs on your computer, and agents talk to their own vendors exactly as they would from their own command-line tools. Local-model agents talk only to the server you configure, and voice dictation is transcribed on-device. The optional voice assistant is off by default; when you turn it on it sends your voice and the agent information it reads to OpenAI. See the data ledger above for each case.
Can I control agents from my phone?
Yes. Pair a phone with a QR code and approve requests, send prompts with photos, review diffs and commit & merge. Choose Tailscale in Settings → Remote & mobile: Kvistcode stays on your computer and Tailscale Serve shares it with your own devices over HTTPS. Never expose the port to the public internet.
Which platforms are supported?
Windows, macOS (universal: Apple Silicon and Intel) and Linux (AppImage, .deb and .rpm).
Take the helm.
Launch your first fleet in minutes. Free, open source, and yours.