ACP Integration

The Agent Client Protocol (ACP) is an open standard for how a code editor talks to a coding agent — it is to agents what LSP is to language servers. FlowDot supports both sides of ACP: the FlowDot CLI exposes the FlowDot agent to any ACP editor via flowdot acp, and the FlowDot desktop app is an ACP host that can drive external agents.

TL;DR - Quick Summary

  • Command: flowdot acp (a subcommand of @flowdot.ai/cli)
  • Editors: Zed, VS Code, and any ACP-capable client
  • Reuses the CLI engine: the same agent loop, tools, permission stack, model tiers, and MCP wiring
  • Real feedback: tool calls with diffs, live terminals, true cancellation, and real token + cost usage per turn
  • Grants persist across surfaces: a permission approved in your editor also applies to the bare CLI
  • Runs locally: the agent runs on your machine as a subprocess of your editor — your code stays on your device

What is ACP?

ACP standardizes agent↔editor communication over JSON-RPC 2.0, by default on stdio with the agent run as a subprocess. Implement it once, and any ACP-capable editor — Zed, VS Code, JetBrains/Junie, neovim, Emacs, and others — can drive your agent. It reuses MCP's content-block shapes, so content forwards between MCP and ACP unchanged.

FlowDot implements ACP protocol version 1 using the official @agentclientprotocol/sdk.

Two Integration Modes

FlowDot as an ACP Agent

The flowdot acp subcommand turns the FlowDot CLI engine into an ACP agent. Your editor spawns it, and it speaks ACP on stdio while reusing the CLI's agent loop, permission stack, model tiers, MCP wiring, and tools.

FlowDot as an ACP Host

The FlowDot desktop app is a generic ACP host: it spawns and drives external ACP agents from its /external-agents page, advertising filesystem and terminal capabilities and mirroring every permission decision into its guardian audit chain.

Editor Setup

First, make sure you are logged in with the FlowDot CLI:

flowdot auth login

VS Code

Install the formulahendry.acp-client extension, then run ACP: Add Agent Configuration from the Command Palette, or add this to your User settings.json:

"acp.agents": {
  "FlowDot": {
    "command": "flowdot",
    "args": ["acp"],
    "env": {}
  }
}

Open a folder, click the ACP icon in the Activity Bar, and select FlowDot.

Zed

Add an entry to your settings.json:

"agent_servers": {
  "FlowDot": {
    "type": "custom",
    "command": "flowdot",
    "args": ["acp"],
    "env": {}
  }
}

No global install? You can point command at npx with args: ["-y", "@flowdot.ai/cli", "acp"] instead.

Model tier tip: the agent resolves its model from your configured tier. If a turn returns a transient upstream error, lower the tier with flowdot config set-model capable and retry.

What You Get

A FlowDot ACP session surfaces the full agent experience in your editor:

  • Streamed messages — the assistant reply streams into the editor as the agent works.
  • Tool calls with diffs — file edits arrive as diff blocks the editor renders inline; the agent can follow file locations so you can jump to what it is touching.
  • Live terminals — commands run in an embedded terminal with live output, and can be interrupted.
  • Real token + cost usage — every turn reports measured input/output tokens and real USD cost (no estimates).
  • True cancellation — cancelling a turn aborts the in-flight model call and kills any running terminal, then resolves cleanly.
  • Sessions — list, resume, close, and delete sessions, backed by FlowDot chat storage.
  • Recipe slash-commands — your linked recipes appear as slash-commands in the editor.
  • MCP & toolkit tools — editor-provided MCP servers and your FlowDot toolkits are available inside the session.

Permissions

Tool, file, and command actions run behind FlowDot's permission gate. When approval is needed, the agent presents the FlowDot scope choices (allow once, allow for this session, always allow this tool, always allow this toolkit, deny, or ban) directly in your editor's permission prompt.

Decisions are written back to the same .flowdot/policy store the CLI uses — so a grant you give in Zed or VS Code persists to the bare CLI, and vice versa. This is the same cross-surface control model described in Trust, Audit & Control.

Local & Private

The agent runs locally on your machine as a subprocess of your editor. Your code and credentials stay on your device, and every tool, file, and command action is yours to approve through the permission gate above.