On this page
Use Haarness in your editor (ACP)
haarness acp lets an editor that supports the Agent Client Protocol (ACP) use Haarness as its
agent. You chat in the editor; Haarness does the work in your project with its own tools,
permissions and models.
Set it up
Your editor starts haarness acp itself. Tell it the command haarness with the argument acp.
In Zed, add this to settings.json:
{
"agent_servers": {
"Haarness": {
"type": "custom",
"command": "haarness",
"args": ["acp"],
"env": {}
}
}
}Open your project, start a new thread with Haarness and send a prompt. The answer streams into the editor.
If your editor cannot find haarness, use its full path, for example the output of
which haarness.
Choose the model and agent
New editor chats use the project's default model and agent. To pick others, add flags to the arguments:
"args": ["acp", "--provider", "anthropic",
"--model", "claude-sonnet-5-5", "--agent", "plan"]Give the provider and the model separately. haarness models lists what you can use as
provider/model.
Approvals
When the agent wants to do something your permission rules ask about, the editor shows the request with these choices:
| Choice | Allows |
|---|---|
| Allow once | This call only |
| Allow while Haarness is running | Matching calls until the Haarness server stops |
| Reject | Nothing; the agent is told you refused |
Requests that may only be allowed once, such as an edit to Haarness's own settings, offer just Allow once and Reject. For a website in your Chrome, the middle choice is Allow in this chat. A shell command that runs a script shows the script's text, where Haarness can be sure which file runs.
Requests from the subagents and workflows a prompt starts come to the editor too, titled with the subagent's name, while that prompt runs.
The agent does not ask you multiple-choice questions in the editor; it decides and carries on.
A chat started from the editor is a Haarness chat, so its
Review, Auto or Yolo setting
applies too. Switch it to Auto from the terminal UI or Desktop, and Auto's reviewer answers its
requests; only what the reviewer leaves to you reaches the editor, with its note in the title.
haarness acp --yolo approves the requests of every prompt you send from the editor, once each;
the requests that always need a person still come to you.
Your editor chats are shared
The editor talks to the same server as Desktop, the terminal UI and haarness run for that
project. A chat you start in the editor is an ordinary Haarness chat. It:
- appears in Desktop's chat list, in
/sessionsin the terminal UI and inhaarness sessions list, titled ACP session; - keeps running if you close the editor;
- can be reopened from the editor later, with its history.
What works
- Streamed answers and visible reasoning
- Tool calls with their progress, and approvals
- The agent's plan
- Images, PDFs, audio and video you attach, and files you add as context
- Stopping a turn from the editor
- MCP servers your editor provides (stdio, HTTP and SSE)
Limits
- One folder.
haarness acpserves the folder it starts in, or--workspace PATH. The editor must open that same folder; a chat for any other folder, or with extra folders, is refused. - MCP over stdio needs an absolute command path in the editor's MCP settings.