kimi-code/packages/acp-adapter/README.md
Haozhe 3eafa79f39
feat(acp): implement ACP server with session lifecycle, tool streaming, and IDE integration (#368)
This commit scaffolds the @moonshot-ai/acp-adapter package and introduces
the full ACP (Agent Communication Protocol) server implementation for
Kimi Code CLI, including:

- Scaffold @moonshot-ai/acp-adapter workspace package with build skeleton
- `kimi acp` CLI subcommand and stdout-safe logging
- ACP version negotiation and AgentSideConnection wrapper
- Auth gate for session creation
- Session lifecycle: new, list, load with history replay
- Prompt content conversion (text, image, embedded resources, resource links)
- Assistant streaming with thinking support and end-turn handling
- Tool call streaming (started, delta, progress) with result conversion (text / diff)
- Approval handling with diff/text display blocks mapped to ACP options
- Kaos read/write interface (AcpKaos) for unsaved buffer access
- Session mode (yolo/auto) and model management
- Config options builder with thinking toggle
- MCP server forwarding from ACP to harness
- Agent plan updates and available commands updates
- AskUserQuestion bridged to session/request_permission
- Plan review options surfaced through requestPermission
- Error mapping, ext_method stubs, and graceful shutdown
- IDE integration guide (Zed + JetBrains)
- End-to-end tests against ACP TS SDK client
2026-06-03 21:11:30 +08:00

1 KiB

@moonshot-ai/acp-adapter

Agent Client Protocol adapter for kimi-code. Exposes the kimi-code agent over the Agent Client Protocol so that ACP-compatible clients (editors, IDEs, custom front-ends) can drive a kimi-code session over stdio.

Part of the Kimi Code monorepo.

Minimum usage

import { createKimiHarness } from '@moonshot-ai/kimi-code-sdk';
import { runAcpServer } from '@moonshot-ai/acp-adapter';

const harness = await createKimiHarness();
await runAcpServer(harness);

runAcpServer reads JSON-RPC from process.stdin, writes to process.stdout, and resolves when the client closes the connection. SIGINT and SIGTERM trigger a graceful drain that calls harness.close() before the process exits.

See docs/zh/reference/kimi-acp.md for the full capability matrix (which Agent methods are wired, which extensions are stubbed, image / MCP support) and docs/zh/guides/ides.md for Zed and JetBrains setup.

License

MIT