Local models only

Talks to Ollama, Lemonade, llama.cpp, Docker Model Runner, vLLM or Jan over their OpenAI-compatible API. It never calls a cloud API — model routing refuses any endpoint that isn't on your own machine or network.

A security boundary built first

Every tool call passes a permission gate. Reads are automatic; writes and commands ask, and an approval covers only that exact file or command. Paths like .env and SSH keys are off-limits.

Commands in a sandbox

On Linux, commands run under Landlock and seccomp: inside the project, away from local daemons, with a private temp folder, and stopped when the call ends.

Plan mode

Ctrl+P makes the agent read-only. Tools that change things are hidden from the model, and the gate refuses them if it tries anyway.

Undo, diff, commit, test

/undo and /redo rewind a whole turn. /diff shows what changed, /commit drafts a message for you to approve, and /test runs the test command it detects in your project — or the one you configure.

Sessions per project

Several conversations per project. /sessions lists them, /resume N switches to one, and --resume picks one up at launch.

Specialist teams

A lead agent can hand work to specialists with narrower permissions, each in its own session.

In your editor, or behind another agent

Runs in Zed's agent panel or VS Code over the Agent Client Protocol, or as an MCP server another local client can hand coding tasks to, capped at an access level you choose.

Knows your codebase

A ranked map of the repo's symbols — Rust, Python, JavaScript and TypeScript — goes to the model each turn, sized to fit its context.

"The model may be wrong, or actively manipulated. The sandbox is built on that premise."