mirror of
https://github.com/rait-09/obsidian-agent-client.git
synced 2026-07-22 16:30:32 +00:00
106 lines
3.4 KiB
Markdown
106 lines
3.4 KiB
Markdown
# ACP Protocol Support
|
|
|
|
This page documents which Agent Client Protocol (ACP) features are supported by this plugin.
|
|
|
|
## What is ACP?
|
|
|
|
The [Agent Client Protocol (ACP)](https://agentclientprotocol.com/) is an open standard for communication between AI agents and client applications. It defines how clients send prompts, receive responses, handle permissions, and manage sessions.
|
|
|
|
Agent Client implements ACP as a **client**, communicating with ACP-compatible agents like Claude Code, Codex, and Gemini CLI.
|
|
|
|
## Methods
|
|
|
|
### Client → Agent
|
|
|
|
Methods the plugin can call on agents.
|
|
|
|
| Method | Status | Notes |
|
|
|--------|--------|-------|
|
|
| `initialize` | ✅ Supported | |
|
|
| `authenticate` | ✅ Supported | |
|
|
| `session/new` | ✅ Supported | |
|
|
| `session/prompt` | ✅ Supported | |
|
|
| `session/cancel` | ✅ Supported | |
|
|
| `session/set_mode` | ✅ Supported | |
|
|
| `session/load` | ✅ Supported | |
|
|
| `session/set_model` | ✅ Supported | Unstable API |
|
|
| `session/list` | ✅ Supported | Unstable API |
|
|
| `session/resume` | ✅ Supported | Unstable API |
|
|
| `session/fork` | ✅ Supported | Unstable API |
|
|
|
|
::: tip
|
|
Methods marked "Unstable API" may change in future ACP versions. They are prefixed with `unstable_` in the SDK.
|
|
:::
|
|
|
|
### Agent → Client (Notifications)
|
|
|
|
Session updates the plugin can receive from agents via `session/update`.
|
|
|
|
| Update Type | Status | Notes |
|
|
|-------------|--------|-------|
|
|
| `agent_message_chunk` | ✅ Supported | Text only |
|
|
| `agent_thought_chunk` | ✅ Supported | Text only |
|
|
| `user_message_chunk` | ✅ Supported | Text only; used for session history replay |
|
|
| `tool_call` | ✅ Supported | |
|
|
| `tool_call_update` | ✅ Supported | |
|
|
| `plan` | ✅ Supported | |
|
|
| `available_commands_update` | ✅ Supported | |
|
|
| `current_mode_update` | ✅ Supported | |
|
|
|
|
### Agent → Client (Requests)
|
|
|
|
Requests agents can make to the plugin.
|
|
|
|
| Method | Status | Notes |
|
|
|--------|--------|-------|
|
|
| `session/request_permission` | ✅ Supported | |
|
|
| `terminal/create` | ✅ Supported | |
|
|
| `terminal/output` | ✅ Supported | |
|
|
| `terminal/wait_for_exit` | ✅ Supported | |
|
|
| `terminal/kill` | ✅ Supported | |
|
|
| `terminal/release` | ✅ Supported | |
|
|
| `fs/read_text_file` | — | Agents use their own Read tools |
|
|
| `fs/write_text_file` | — | Agents use their own Write tools |
|
|
|
|
## Content Types
|
|
|
|
### Prompt Content (Client → Agent)
|
|
|
|
Content types the plugin can send in `session/prompt`.
|
|
|
|
| Type | Status | Notes |
|
|
|------|--------|-------|
|
|
| `text` | ✅ Supported | |
|
|
| `image` | ✅ Supported | Requires agent support |
|
|
| `audio` | ❌ Not supported | |
|
|
| `resource_link` | ❌ Not supported | |
|
|
| `resource` | ✅ Supported | Embedded context; requires agent support |
|
|
|
|
### Tool Call Content (Agent → Client)
|
|
|
|
Content types the plugin can display in tool calls.
|
|
|
|
| Type | Status | Notes |
|
|
|------|--------|-------|
|
|
| `diff` | ✅ Supported | |
|
|
| `terminal` | ✅ Supported | |
|
|
| `content` | ❌ Not supported | |
|
|
|
|
## Client Capabilities
|
|
|
|
Capabilities advertised to agents during initialization.
|
|
|
|
| Capability | Value |
|
|
|------------|-------|
|
|
| `fs.readTextFile` | `false` |
|
|
| `fs.writeTextFile` | `false` |
|
|
| `terminal` | `true` |
|
|
|
|
::: info
|
|
The plugin does not implement filesystem operations (`fs/read_text_file`, `fs/write_text_file`). Agents handle file operations through their own tools.
|
|
:::
|
|
|
|
## See Also
|
|
|
|
- [Agent Client Protocol Specification](https://agentclientprotocol.com/)
|
|
- [ACP Schema Reference](https://agentclientprotocol.com/protocol/schema)
|