KvistcodeOverview
2 need you Releases Support Download
Open source · MIT · Windows, macOS, Linux

Command your fleet of AI coding agents.

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 Code GOpenAI Codex XxAI Grok GCGemini CLI ACP GoGoose ACP OCOpenCode ACP LOllama · LM Studio local

Free and open source · Uses each vendor's official runtime · Never scrapes a login

Mission Control

—

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
ProviderRuntimeProtocol
CClaudeAnthropic
Claude Code+ claude-agent-acpAgent Client Protocol
GChatGPTOpenAI
Codex CLIcodex app-server (JSON-RPC)
XGrokxAI
Grok BuildACP · grok agent stdio
LLocalFree, on your machine
Codex CLI, pointed at your serverOllama · LM Studio · llama.cpp · vLLM · any OpenAI-compatiblecodex app-server
+Anything elseBring your own
Gemini CLI · Goose · OpenCode · yoursACP, 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.

main kvistcode/rate-limit kvistcode/billing kvistcode/e2e-checkout
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
An agent conversation with syntax-highlighted code, a Done summary card with Review diff, Commit and Open PR buttons, and a header showing the project, branch and account
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.

  • Terminals with “Send to agent”
  • Scripts detected: npm, pnpm, yarn, bun, cargo, make, just, pytest, go
  • Preview with device widths, localhost only
  • Risky commands such as rm -rf or sudo ask first
The workspace panel under a conversation, showing the Scripts tab with detected npm and cargo scripts, each with a Run button
Review

Review and ship

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”
The review sheet showing a syntax-highlighted diff of a new test file, with Commit, Discard, Open PR and Commit and merge buttons
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”
Compare mode showing one prompt answered by Claude, ChatGPT (Codex) and Grok in three columns, each with a Keep this one button
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
The Accounts page listing Claude, ChatGPT and Grok accounts with usage meters, and a Local model section with an on-device Ollama account marked Free
The New agent dialog with the Local provider selected, an Ollama server chosen and a model list showing qwen3-coder, gpt-oss, devstral and llama3.2 with size and context length
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
Three phone screens of the companion app: the agent list with pending approvals, an agent working with a sub-agent and queued messages, and a finished agent with a Done summary
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.

Mission Control in the dark Carbon theme
Carbon · Gunmetal
Mission Control in the light Titanium theme
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.

Ctrl K 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
WhatGoes toNotes
Prompts & codeVia 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 promptsStays local
The server you configure
Nothing leaves your computer unless you point at another machine, which Kvistcode warns about.
Voice dictationOn-device
Your computer
Transcribed locally with Whisper. The speech model downloads once, when you choose to.
Voice assistantOff 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 keysLocal
Your OS keychain
Each account runs in its own config directory (CLAUDE_CONFIG_DIR, CODEX_HOME, GROK_HOME).
CheckpointsLocal
Git refs under refs/kvistcode/*
Never pushed on their own. Untracked credential files (.env, *.pem, *.key, id_rsa*, .npmrc) are left out.
Phone companionYour 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 pushesOpt-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.

Signed updates

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.

  1. Install and launch

    Kvistcode lives in your tray, so agents keep running when you close the window.

  2. 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.

  3. 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
Questions

Questions, answered.

Why is it called Kvistcode?
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.