Using mini-me as a library, over ACP
Programs in other languages use mini-me as a library by driving mm -acp: the same JSON-RPC protocol an editor such as Zed speaks, on the child process's stdin and stdout. Nothing changes in mm; every agent file works, with its tools, hooks, MCP servers and other agents.
| Folder | Language | Status |
|---|---|---|
nodejs/ |
Node.js (ticket 167) | done: minime.js, four examples, tests |
nodejs-sdk/ |
Node.js, official ACP TypeScript SDK (ticket 188) | done: same API as nodejs/, on @agentclientprotocol/sdk, four examples, tests |
go/ |
Go (ticket 168) | done: package minime, four examples, tests |
kotlin/ |
Kotlin (ticket 187) | done: minime.Agent on the official ACP Kotlin SDK, four examples, tests |
python/, rust/, swift/, nushell/ |
tickets 169–172 | not started |
What every client does:
| Wanted | ACP message |
|---|---|
| start | initialize, then session/new {cwd} |
| run a completion | session/prompt |
| stream | the session/update notifications: agent_message_chunk, agent_thought_chunk, tool_call, tool_call_update |
| not streamed | join the text chunks until session/prompt answers with its stopReason |
| cancel | the session/cancel notification; the prompt then answers stopReason: "cancelled" |
confirm a tool (yolo: false) |
answer mm's session/request_permission request |
Limits shared by all: the mm binary must be installed, it runs locally (stdio), and the agent is a file (mm -acp -config <file>). For a Go program without the binary, see ticket 139 (an in-process SDK); go/ says when to choose which.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|