npx claudepluginhub liviogama/migrate-claude-sdk-to-acpMigrate Claude CLI/SDK to ACP (Agent Client Protocol) with OAuth-only auth. Covers TypeScript, Go, and Python with ready-to-use client implementations.
migrate-claude-sdk-to-acpFaster programmatic Claude — one process, many prompts.
A Claude Code plugin with migration guides and ready-to-use ACP client implementations for TypeScript, Go, and Python.
Install · Why ACP? · Demo · What You Get · Protocol Docs
claude plugin marketplace add LivioGama/migrate-claude-sdk-to-acp
claude plugin install migrate-claude-sdk-to-acp
That's it. The skill auto-activates when you ask Claude Code about migrating from the CLI, the Agent SDK, or subprocess patterns.
One-session usage without installing:
claude --plugin-dir /path/to/migrate-claude-sdk-to-acp
With claude -p, every call spawns a new process — startup, authentication, initialization, then exit. If you're sending multiple prompts from code, you pay that overhead every time.
ACP (Agent Client Protocol) keeps a single long-lived process. Sessions stay in memory. Send as many prompts as you want without re-spawning.
claude -p: spawn → init → auth → prompt → exit → spawn → init → auth → prompt → exit
ACP: spawn → init → auth → prompt → prompt → prompt → prompt → ...
claude -p | ACP | |
|---|---|---|
| Process lifecycle | New process per call | Single long-lived process |
| Session state | Loaded from disk on each resume | Stays in memory across prompts |
| Startup cost | 3-8s per invocation | 3-8s once, then instant |
| Streaming | Available (--output-format stream-json) | Built-in typed events (thinking, text, tools, usage) |
| Multi-turn | Possible (--continue, --resume) | Native — same session, same process |
| Protocol | Ad-hoc stdout parsing | JSON-RPC 2.0 over stdin/stdout |
Benchmark: Haiku model, "say pong" × 5 sequential calls on Apple Silicon:
| Method | Per-call avg | 5-call total | Notes |
|---|---|---|---|
claude -p | 1534ms | 7668ms | New process each call |
SDK query() | 6579ms | 32894ms | Wraps CLI with extra overhead |
| SDK streaming / ACP | 1300ms (warm) | 10539ms | 5.1s startup, then ~1300ms/call |
The per-call difference is modest (~15%) since most latency is the API round-trip. The real gains come at scale — at 50 calls, ACP is ~10% faster overall — and from architectural benefits: no API key management, conversation context preserved across turns, and mid-session control (model switching, interrupts, permission changes).
Note:
claude -pwith--continue/--resumeand--output-format stream-jsoncan achieve similar functionality. ACP's advantage is performance for multi-prompt workflows and a standardized protocol (JSON-RPC) instead of ad-hoc output parsing.
https://github.com/user-attachments/assets/0380ff65-2b6b-4192-895d-0deb29b4e19f
The plugin provides complete, copy-paste ACP clients and migration guides for three languages:
| TypeScript / JavaScript | Go | Python |
|---|---|---|
Migrates from |
Migrates from |
Migrates from |
Each client includes:
A web visualizer is also included in assets/visualizer/ as inspiration for building your own streaming UI.
Harness-native ECC skills, hooks, rules, MCP conventions, and operator workflows
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 84 marketplace plugins, 192 local specialized agents, and 156 local skills - optimized for granular installation and minimal token usage