# lingshu-acp
> **Why this crate?** VS Code (and other IDEs) speak [Agent Communication Protocol](https://github.com/i-am-bee/acp)
> — a JSON-RPC 2.0 stdio protocol that lets editors embed agents without shipping their own
> LLM infrastructure. `lingshu-acp` wraps the full Lingshu agent as an ACP server, so
> you get Lingshu's 30+ tools, persistent memory, and multi-provider LLM support directly
> inside your editor sidebar — no browser, no separate terminal.
Part of [Lingshu](https://www.lingshu.com) — the Rust SuperAgent.
---
## Start the ACP server
```bash
lingshu acp
```
The process communicates over `stdin`/`stdout` using JSON-RPC 2.0. Your IDE connects to
the process directly — nothing to configure beyond pointing the IDE at the binary.
## VS Code quick setup
1. Install the Lingshu VS Code extension (or add a manual ACP entry):
```json
{
"acp.agents": [
{
"id": "lingshu",
"name": "Lingshu",
"command": "lingshu",
"args": ["acp"]
}
]
}
```
2. Open the Agent panel → select **Lingshu** → start chatting.
## Protocol flow
```
IDE lingshu-acp lingshu-core
│─ agent/run ──────────────────────────────▶│
│ │─ Agent::run_conversation() ─▶│
│ │◀── tool calls ──────────────│
│◀ agent/run/token (streaming tokens) ───────│
│◀ agent/run (final response) ───────────────│
```
## Supported ACP methods
| `agent/run` | Start a conversation turn (streaming via `agent/run/token` notifications) |
| `agent/list` | Return agent metadata (name, description, capabilities) |
## Embed in your own binary
```toml
[dependencies]
lingshu-acp = { path = "../lingshu-acp" }
```
```rust
use lingshu_acp::AcpServer;
use lingshu_core::Agent;
let agent = Agent::default_builder()?.build()?;
AcpServer::new(agent).run_stdio().await?;
```
---
> Full docs, guides, and release notes → [lingshu.com](https://www.lingshu.com)