TemprTempr
Docs
CLI

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.

Note

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 yours

Zed

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 @file mention 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-model makes 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, env variables and managed settings included. The editor can't ask about a folder's own hooks, allow rules, env variables and .mcp.json servers, so they apply once you've allowed them with tempr hooks allow or in an interactive session there. See Settings files.
  • Sessions are saved like any other. tempr history lists them, tempr -c in 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.json and the folder's allowed .mcp.json. One with the same name as one of those takes its place for the session. allowedMcpServers and deniedMcpServers apply 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:

ModeWhat asks first
Ask firstEvery edit, command and MCP call.
Accept editsEvery command and MCP call; edits go ahead.
AutopilotCommands 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 doctor checks sign-in, the model catalog, your MCP servers and the sandbox.

Next steps