Tempr in your editor
Last updated
tempr acp runs Tempr as an Agent Client Protocol agent. Your editor starts it, and Tempr's replies, tool calls and questions show up in the editor's own agent panel. It works in Zed, in JetBrains IDEs through AI Assistant, in Neovim and Emacs, and in any other editor that speaks ACP.
This puts Tempr's agent, with its tools, approvals and sessions, inside your editor. To use Tempr's models from Zed's own agent instead, see Zed (Gateway).
Set up
Install the CLI (Quickstart: Tempr CLI), then sign in and pick the model a session starts on. You can also sign in from the editor, and change the model there for each session.
tempr auth
tempr config set-model <model-id> # tempr models lists yoursZed
Add Tempr to agent_servers in Zed's settings.json, then open the agent panel, start a new thread and pick Tempr:
{
"agent_servers": {
"Tempr": {
"type": "custom",
"command": "tempr",
"args": ["acp"]
}
}
}JetBrains IDEs
AI Assistant 2026.2 or later runs ACP agents, with no JetBrains AI subscription or sign-in needed. In the AI Chat tool window, open the ⋮ menu and choose Add Custom Agent, which opens ~/.jetbrains/acp.json. Add Tempr there, with the full path to tempr, then pick Tempr in AI Chat's list of agents:
{
"agent_servers": {
"Tempr": {
"command": "/home/you/.local/bin/tempr",
"args": ["acp"]
}
}
}An agent added this way shows with JetBrains' own agent icon. This is separate from the Tempr plugin for JetBrains IDEs, which has its own chat panel and needs neither.
Other editors
Neovim (CodeCompanion, avante.nvim), Emacs (agent-shell) and other ACP clients take the same two things: the command tempr and the argument acp.
What you get
- Replies stream into the editor's thread. A file you mention goes with your message, as an
@filemention does in the terminal, and so does an image. - Tool calls show as they happen: edits as diffs, reads and searches with the file they touched, and commands with their output. In Zed a command's output streams into a terminal under the call.
- Questions come up in the editor: Allow, Allow for this session (a command prefix or a site), or Reject. A delete, a publish or a force-push can't be allowed for the session.
- Settings for the session: the mode, the model, its reasoning level and web search. The model list includes your local models. A new session starts on the model you last picked in an editor, or on your default model until you pick one;
tempr config set-modelmakes the default the starting model again. A reasoning level is kept per model. - Thinking streams as the editor's own thought block, when the model reasons.
- Slash commands: your command templates, plus
/undo(put back the files the last turn changed),/diff(show what it changed),/agents(the agents you can@mention),/compact [focus](summarize the conversation so far, to keep going within the model's context) and/code-review, and each running MCP server's prompts as/mcp__server__prompt. A server that starts late, or whose prompts change, updates the list. A session also compacts by itself once the last request filled 90% of the model's context window, and with idle compaction on, when it's been left idle. - Notices, such as what a hook says or that a local model's request didn't fit its window, show in the reply, in italics.
- Hooks, permission rules and settings work as in the terminal,
envvariables and managed settings included. The editor can't ask about a folder's own hooks, allow rules,envvariables and.mcp.jsonservers, so they apply once you've allowed them withtempr hooks allowor in an interactive session there. See Settings files. - Sessions are saved like any other.
tempr historylists them,tempr -cin the same folder carries one on, and the editor's own session list shows them. Opening one there replays its conversation. - MCP servers the editor passes (local, HTTP or SSE) run beside yours from
~/.tempr/mcp.jsonand the folder's allowed.mcp.json. One with the same name as one of those takes its place for the session.allowedMcpServersanddeniedMcpServersapply to them too. - Monitoring: the OpenTelemetry export works here as in the terminal, when you've turned it on.
- Sub-agents answer under the call that delegated to them, apart from the reply.
Modes and the sandbox
A session starts in your saved approval mode (tempr config set-approval-mode), and the editor can switch it:
| Mode | What asks first |
|---|---|
| Ask first | Every edit, command and MCP call. |
| Accept edits | Every command and MCP call; edits go ahead. |
| Autopilot | Commands that aren't on the allow-list. On Linux and macOS, any command goes ahead in the sandbox, as with --yolo. Deletes, publishes and force-pushes always ask. |
When a settings file sets permissions.disableBypassPermissionsMode to "disable", the editor can't switch to Autopilot.
Tempr runs its tools itself, not through the editor, so the allow-list, .agentcommands.json and the sandbox work as they do in the terminal.
Signing in from the editor
If Tempr isn't signed in, or its sign-in has expired, the editor offers to sign you in. It either runs tempr auth --browser in a terminal of its own, as Zed does, or asks Tempr to open the sign-in page in your browser. Either way, you approve the sign-in on the page and the session starts.
Troubleshooting
- Logs: Tempr writes its own log lines to stderr, which the editor keeps. In Zed, run
dev: open acp logs; in JetBrains IDEs, use Get ACP Logs. - "No model is set": run
tempr config set-model <model-id>. - A different config folder: put it before
acp, as in"args": ["--config", "/path/to/config", "acp"]. tempr doctorchecks sign-in, the model catalog, your MCP servers and the sandbox.
Next steps
- CLI command reference: every command and flag.
- Agent modes & personas: the agents you can
@mention. - MCP servers: adding your own.