Skip to content

v0.8.0 release notes

v0.8.0 takes the conversation-first Leader outside the TUI: an Agent Client Protocol (ACP) server lets an external client — a Zed-class editor — drive the same conversational Leader over JSON-RPC-on-stdio. Prompt turns, live activity, and client-approved tool calls. Reviewed fresh by two independent reviewers (hull + coherence) and validated live against a real model.


Point an ACP-speaking editor at modulatio acp --code <project> and you get the same conversational Leader you’d talk to in the TUI, now in your editor:

  • Prompt turnssession/prompt runs the Leader’s converse() and returns his full reply.
  • Live activity — the Leader’s thinking, tool calls, and any kickoff he runs stream back as session/update notifications.
  • Client-approved tool calls — before the Leader runs any tool, the server sends session/request_permission and blocks for your approval. Reject it and the Leader gets a DENIED result and re-plans. It’s the operator’s call, carried out by the Leader — the same contract as the in-TUI conversational approval shipped in 0.7.2. Fail-closed: no tool runs without an explicit allow.

It’s the same Leader and the same memory as the TUI — the per-project conversation thread is shared, so a turn over ACP and a turn in the TUI continue one conversation. (Validated live: a fresh ACP session recited back a haiku the Leader had written in an earlier turn, verbatim.)

The full setup is in the ACP integration guide.


The conversation-first TUI already streams every activity event onto the LEADER / MOD SQUAD “TV”, so the standalone STATUS dashboard was duplicate surface. It’s gone; the activity engine is untouched.


A new permission_callback seam in the engine (runners.run_llm_with_tools, threaded through converse) gates each tool call — that’s the hook the ACP server’s permission round-trip plugs into. It’s off by default, so every existing path (the TUI, the CLI, the producer swarm) is unchanged.