ACP (Agent Client Protocol)
Run Makima inside your editor. makima acp starts an ACP server over stdio, so any ACP-capable editor (like Zed) can drive Makima as its coding agent.
makima acpZed setup
Add Makima as a custom agent in Zed's settings.json:
"agent_servers": {
"Makima": {
"default_config_options": {
"model": "deepseek/deepseek-v4-flash"
},
"type": "custom",
"command": "makima",
"args": ["acp"],
"env": {}
}
}
The model value is a provider/model-id spec, same format as makima --model.
What works
- Sessions persist. Loading a session replays the full conversation in the editor, so you can resume where you left off. A session that is open in another terminal cannot be loaded.
- Model switching. Pick a model from the editor's dropdown, mid-session. All configured providers show up. Providers that list their models over the wire (OpenRouter and friends) are discovered in the background, so the dropdown keeps filling up for a moment after the session starts, one provider at a time.
- Modes. Switch between build (full access) and plan (plan-file writes only) from the editor.
- Permissions. Tool permission prompts appear in the editor: allow or reject, once or always.
- Questions. The
questiontool becomes a native form in the editor (ACP elicitation). If the client does not support elicitation, the tool is dropped and the model asks in plain text. - Live tool calls. Tool progress streams as it happens, including sub-agents and batched calls.
- Images and context. Prompts can include images and editor-attached files.
Authentication, providers, and permissions come from your normal Makima config. Set up providers first and ACP sessions just work.
makima acp
makima acp -m anthropic/claude-sonnet-4-6
makima acp --yolo
makima --no-jit acp
makima acp only takes -m / --model and --yolo as subcommand flags. Global flags like --no-jit must come before the subcommand (makima --no-jit acp, not makima acp --no-jit).
Plan mode in ACP uses the same state-directory plan files as the TUI (…/plans/<slug>.md), not the SDK's ./plan.md.
A session open in another terminal is locked by it: loading fails until that instance exits, which releases the lock automatically (or a few seconds after it crashes).