What kcode does

Five stories, from the session grid to the model picker. Every detail is in the reference, generated from the app.

Mission Control

Every session is a live tile.

One window, many agents. The grid is the overview; every tile is a miniature that updates as its agent works.

  • ⌘1 to ⌘9 jump to a session, ⌘M comes back to the grid, ⌘K recalls one, ⌘P opens the palette
  • Hover to peek, drag to reorder or group, right-click for the tile menu
  • The transcript draws markdown, code, diffs, LaTeX, images, charts, Mermaid, and file trees
Every shortcut
kcode
kcode's Mission Control: three session tiles on the dot-matrix shader, one working, one idle, one waiting for input
Mission Control. Every session is a live tile, a miniature that updates as the agent works.
The agent loop

Built for long runs.

Give a session a goal, let it loop, and pick the model and effort per session.

  • /goal sets a verifiable objective that survives restarts; /loop 10m, /loop 5x, or /loop 0s keeps the agent at it
  • /model and /effort per session, /fork to branch a transcript, subagents and worktrees for parallel work
  • Compaction on a token budget, /compact when you want it now, and an opt-in judge that decides whether a round should continue
All 66 commands
kcode
A kcode session with a goal set and a loop scheduled, the agent working through the first sub-task
/goal gives the session a verifiable objective; /loop keeps the agent at it on a schedule.
Tools and permissions

It asks before it crosses a line you drew.

A shell host, files, search, LSP, web, a browser, vision. Four permission modes and rules per tool.

  • bash with background processes, fs_edit, apply_patch, grep, lsp, web_fetch, a driven browser, view_image
  • Default, Plan, AcceptEdits, Bypass, switched live; rules like bash(npm *) and path(src/**)
  • Allow once, allow always for this tool and project, or deny. Untrusted projects contribute no config and no MCP servers
Permission modes
kcode
A permission prompt above the chat input, asking before a shell command runs, with allow once, allow always, and deny
Permission gates: kcode asks before a tool crosses a line you drew.
Extend kcode

If it has a name, you can change it.

Tools, commands, hooks, cron, and input transforms in Lua. Wasm plugins over a documented ABI. MCP servers from .mcp.json.

  • A Lua tool is a function the agent can call, with the file and network access its manifest grants
  • Content bundles carry commands, skills, agents, output styles, and themes with no code at all
  • Project hooks, webhooks, intercept points, a rebindable keymap, and prompt section overrides
Guides, examples, and a tutorial
kcode
A session where the agent called todo_count, a tool from a Lua plugin, and reported the open TODOs
A Lua plugin's tool, called by the agent like any built-in one.
Any model

Your providers, your keys.

Anthropic, OpenAI, Fireworks, DeepSeek, Kimi, and MiniMax natively; a dozen more through the OpenAI-compatible connector. kcode bundles no model access and takes no cut.

  • Pick a model per session or per subagent; the models catalog drives /model autocomplete
  • providers.<name>.base_url points a provider at a proxy or a self-hosted endpoint
  • OpenAI also takes a ChatGPT Pro or Plus sign-in, in the browser or by device code, for the models no key can reach
Provider settings
kcode
The /model command's autocomplete listing models from several providers
/model switches a session's model; the catalog drives the list.