You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Clarify visible slash commands, plugin and MCP behavior in docs: updates to docs/commands.md, docs/mcp.md, docs/plugins.md, and docs/tools.md to list current command usages, MCP subcommands, plugin reload semantics, and tool trait details. Apply numerous minor Rust edits across crates (acp, api, core, plugins, tools, tui, etc.) mostly reflowing long lines, small formatting/unwrap/serde error formatting changes, import reorders, and small cleanups in JSON parsing and logging initialization. These changes improve documentation accuracy for plugin-provided MCP servers (availability at startup vs after reload) and tidy code for readability without functional API changes.
Copy file name to clipboardExpand all lines: docs/commands.md
+48-55Lines changed: 48 additions & 55 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Coven Code Slash Commands Reference
2
2
3
-
This document is the complete reference for every slash command available in Coven Code, the Rust reimplementation of Claude Code CLI. Commands are invoked by typing `/command-name` at the REPL prompt.
3
+
This document is the reference for the visible slash commands available in Coven Code. Commands are invoked by typing `/command-name` at the REPL prompt.
4
4
5
5
---
6
6
@@ -27,30 +27,21 @@ This document is the complete reference for every slash command available in Cov
27
27
28
28
## Command System Overview
29
29
30
-
Commands are registered in a priority-ordered registry. When you type a command name, Coven Code resolves it through this chain:
Commands support aliases — for example `/h`, `/?`, and `/help` all invoke the same handler.
46
37
47
38
### Usage Syntax
48
39
49
40
```
50
41
/command-name [arguments]
51
42
```
52
43
53
-
Arguments are passed as a single string after the command name. Most commands that accept arguments are documented with an `argumentHint` shown in the command palette.
44
+
Arguments are passed as a single string after the command name.
54
45
55
46
---
56
47
@@ -59,7 +50,7 @@ Arguments are passed as a single string after the command name. Most commands th
59
50
### /help
60
51
**Aliases:**`h`, `?`
61
52
62
-
Display all available commands with their descriptions. Respects `isHidden` flags — internal or rarely-needed commands are suppressed unless you are an Anthropic employee.
53
+
Display all available commands with their descriptions. Hidden and setup-only commands are suppressed from the default listing.
63
54
64
55
```
65
56
/help
@@ -342,15 +333,21 @@ Open Coven Code privacy settings. Launches a browser to the Anthropic privacy po
342
333
343
334
### /mcp
344
335
345
-
Configure and manage Model Context Protocol (MCP) servers. MCP servers expose additional tools and resources to the agent.
336
+
Inspect Model Context Protocol (MCP) servers and reconnect configured servers. MCP servers expose additional tools and resources to the agent.
346
337
347
338
```
348
-
/mcp
349
-
/mcp list
350
-
/mcp add <name> <command>
351
-
/mcp remove <name>
352
-
/mcp restart <name>
353
-
```
339
+
/mcp
340
+
/mcp list
341
+
/mcp status
342
+
/mcp auth <name>
343
+
/mcp connect <name>
344
+
/mcp logs <name>
345
+
/mcp resources [name]
346
+
/mcp prompts [name]
347
+
/mcp get-prompt <name> <prompt> [key=value ...]
348
+
```
349
+
350
+
Add or remove MCP servers by editing `~/.coven-code/settings.json`.
354
351
355
352
---
356
353
@@ -782,19 +779,22 @@ List and manage skills. Skills are bundled prompt-commands that extend Coven Cod
782
779
783
780
---
784
781
785
-
### /plugin
786
-
**Aliases:**`plugins`, `marketplace`
787
-
788
-
Manage plugins. Plugins are loadable modules that can register new commands, tools, and hooks. Browse the marketplace or install from a local path.
789
-
790
-
```
791
-
/plugin
792
-
/plugin list
793
-
/plugin install <name>
794
-
/plugin install <path>
795
-
/plugin remove <name>
796
-
/plugin reload
797
-
```
782
+
### /plugin
783
+
**Aliases:**`plugins`
784
+
785
+
Manage plugins. Plugins are loadable modules that can register new commands, tools, hooks, agents, skills, and MCP server definitions.
786
+
787
+
```
788
+
/plugin
789
+
/plugin list
790
+
/plugin info <name>
791
+
/plugin enable <name>
792
+
/plugin disable <name>
793
+
/plugin install <path>
794
+
/plugin reload
795
+
```
796
+
797
+
`/plugin reload` refreshes the active session plugin registry, hook registry, plugin commands, agents, skills, and in-memory MCP server definitions. New plugin MCP servers are included in the initial MCP connection at startup; if a reload adds a new MCP server after startup, start a new session before expecting its tools in the model tool list.
798
798
799
799
---
800
800
@@ -1182,22 +1182,15 @@ Over the Remote Control bridge (used by IDE integrations), only `local`-type com
1182
1182
1183
1183
`compact`, `clear`, `cost`, `files`
1184
1184
1185
-
### Internal-Only Commands
1186
-
1187
-
The following commands are only available when the `USER_TYPE` environment variable is set to `ant` (Anthropic internal builds):
Some commands are available only under certain account or platform conditions:
1185
+
### Availability-Restricted Commands
1186
+
1187
+
Some commands are available only under certain account or platform conditions:
1194
1188
1195
1189
| Command | Restriction |
1196
1190
|---------|-------------|
1197
-
|`/fast`| Available when a fast-mode model is configured for the active provider |
1198
-
|`/privacy-settings`| Opens Anthropic privacy portal (useful for claude.ai accounts) |
1199
-
|`/sandbox-toggle`| Functional on macOS, Linux, WSL2 only; no-op on native Windows |
1200
-
1201
-
### Feature-Flagged Commands
1202
-
1203
-
Some commands check `isEnabled()` at runtime. For example, voice-related commands check for audio device availability; the desktop command checks for a display server.
1191
+
|`/fast`| Available when a fast-mode model is configured for the active provider |
1192
+
|`/install-slack-app`| Hidden; Slack setup is unavailable in this build |
1193
+
|`/privacy-settings`| Opens the provider privacy portal where supported |
1194
+
|`/sandbox-toggle`| Functional on macOS, Linux, WSL2 only; no-op on native Windows |
1195
+
|`/voice`| Requires an audio backend plus `OPENAI_API_KEY` or `WHISPER_ENDPOINT_URL` for transcription |
1196
+
|`/chrome`| Requires a running Chrome/Chromium instance launched with remote debugging enabled |
Copy file name to clipboardExpand all lines: docs/mcp.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,8 @@ MCP defines three primitives a server can offer:
14
14
15
15
Coven Code discovers tools, resources, and prompts from connected MCP servers during the handshake phase and wraps them as native `Tool` instances (via `McpToolWrapper`), making them transparent to the query loop.
16
16
17
+
Plugin-provided MCP server definitions are merged into the in-memory config before the initial MCP connection. That means plugin MCP tools are available on first startup instead of requiring a reconnect after plugins load.
18
+
17
19
---
18
20
19
21
## Transports
@@ -136,9 +138,12 @@ Use `/mcp` inside an interactive session to inspect and manage MCP servers at ru
136
138
```
137
139
/mcp — show status of all configured servers
138
140
/mcp status — same as above
139
-
/mcp connect <name> — connect to a server by name
140
-
/mcp disconnect <name> — disconnect a server
141
-
/mcp restart <name> — disconnect then reconnect a server
141
+
/mcp auth <name> — show OAuth auth instructions for a server
142
+
/mcp connect <name> — retry a disconnected configured server
143
+
/mcp logs <name> — show recent error/log information
144
+
/mcp resources [name] — list resources from connected servers
145
+
/mcp prompts [name] — list prompt templates from connected servers
The status display shows the connection state and discovered tool count for each server:
@@ -184,6 +189,8 @@ Use `ListMcpResources` to discover available URIs before calling `ReadMcpResourc
184
189
185
190
In addition to these, every tool that an MCP server exposes is automatically available to the model under its declared name (wrapped transparently by `McpToolWrapper`).
186
191
192
+
MCP tool wrappers are built from the servers connected during session startup. `/reload-plugins` refreshes plugin MCP definitions in memory, but newly added plugin MCP servers need a new session before their tools are exposed to the model tool list.
193
+
187
194
---
188
195
189
196
## Reconnection with Exponential Backoff
@@ -194,7 +201,7 @@ When an MCP server disconnects or fails to connect, Coven Code starts a backgrou
194
201
- Backoff factor: **2x** after each failed attempt
195
202
- Maximum delay: **60 seconds**
196
203
197
-
The loop exits as soon as the server connects successfully. A new loop can be started again if the server disconnects again later. The `/mcp restart <name>`command cancels any running loop and starts a fresh connection attempt immediately.
204
+
The loop exits as soon as the server connects successfully. If a configured server is disconnected, `/mcp connect <name>`attempts a reconnect. Add or remove servers by editing `~/.coven-code/settings.json` and starting a new session.
Copy file name to clipboardExpand all lines: docs/plugins.md
+7-13Lines changed: 7 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -349,31 +349,25 @@ The `/plugin` slash command manages plugins from within an interactive session:
349
349
/plugin reload — reload all plugins from disk
350
350
```
351
351
352
-
After enabling or disabling a plugin, run `/plugin reload` or use `/reload-plugins` to apply changes in the current session without restarting.
352
+
After enabling or disabling a plugin, run `/plugin reload` or use `/reload-plugins` to refresh the session plugin registry without restarting.
353
353
354
354
### /reload-plugins
355
355
356
356
```
357
357
/reload-plugins
358
358
```
359
359
360
-
Rescans `~/.coven-code/plugins/`, re-reads all manifests, and refreshes the active hook registry, commands, agents, skills, and MCP server definitions. Use this after making changes to a plugin directory or after installing a new plugin.
360
+
Rescans `~/.coven-code/plugins/`, re-reads all manifests, and refreshes the active plugin registry, hook registry, plugin commands, agents, skills, and in-memory MCP server definitions. Use this after making changes to a plugin directory or after installing a new plugin.
361
361
362
-
---
363
-
364
-
## Plugin Marketplace Integration
362
+
Plugin-provided MCP servers are merged before the initial MCP connection during startup, so their tools are available in the first session tool list. If a reload adds a new MCP server after startup, restart the session to expose that server's tools to the model tool list.
365
363
366
-
Plugins published to the Coven Code marketplace have a `marketplace_id` field in their manifest (e.g. `"author/plugin-name"`). The marketplace integration allows:
364
+
---
367
365
368
-
- Browsing available plugins
369
-
- Installing plugins by ID
370
-
- Updating installed plugins to newer versions
366
+
## Marketplace Metadata
371
367
372
-
```
373
-
/plugin install author/plugin-name — install from the marketplace
374
-
```
368
+
Plugin manifests may include a `marketplace_id` field (e.g. `"author/plugin-name"`) for catalog metadata and future marketplace workflows.
375
369
376
-
Locally installed plugins (via a file path) do not require a `marketplace_id`.
370
+
The current `/plugin install` command installs from a local plugin path. It does not install marketplace IDs directly.
-**Permission check** — `checkPermissions()` called before execution
37
-
-**Execution** — `call()` performs the actual operation
38
-
-**UI rendering** — React/Ink components for TUI display
33
+
-**Identity** — the tool name the model uses to call it
34
+
-**Description** — instructions shown to the model
35
+
-**Input schema** — a JSON Schema object validating the input the model must provide
36
+
-**Permission level** — `None`, `ReadOnly`, `Write`, `Execute`, `Dangerous`, or `Forbidden`
37
+
-**Execution** — `execute()` performs the operation after permission resolution
38
+
-**Tool definition** — `to_definition()` serializes the name, description, and schema for providers
39
39
40
-
Tools are loaded eagerly at session start. The model receives tool descriptions and schemas and selects tools to call. Each tool call goes through permission resolution before `call()` is invoked.
40
+
Built-in tools are constructed once per session by `all_tools()`. Cheap lookup paths use a static built-in tool-name catalog so status/help flows do not instantiate every tool just to list names. MCP tools are added after MCP servers connect and are wrapped as native `Tool` instances.
41
41
42
42
### Tool Concurrency
43
43
44
-
Tools marked `isConcurrencySafe` may run in parallel with other tool calls. Most write tools are not concurrency-safe. Read-only tools are generally safe to parallelize.
44
+
The query loop may run compatible tool calls in parallel. Write and execute tools still pass through permission checks, while read-only tools are generally safe to parallelize.
0 commit comments