acp-devtools 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +118 -0
- package/dist/index.js +13132 -0
- package/dist/ui/assets/index-Cz0JXyED.css +1 -0
- package/dist/ui/assets/index-TuuxPTyK.js +1768 -0
- package/dist/ui/favicon.svg +12 -0
- package/dist/ui/index.html +59 -0
- package/dist/ui/manifest.webmanifest +24 -0
- package/package.json +61 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Roman Ponomarev
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# ACP Devtools CLI
|
|
2
|
+
|
|
3
|
+
A transparent stdio proxy between your editor and an ACP coding agent that
|
|
4
|
+
captures every JSON-RPC frame, stores sessions in SQLite, and streams them
|
|
5
|
+
to a local web inspector. See every request, response, and notification on
|
|
6
|
+
a clickable timeline; replay or diff old sessions; validate captures
|
|
7
|
+
against the official ACP schema; query the store from Claude Code over
|
|
8
|
+
MCP.
|
|
9
|
+
|
|
10
|
+
## What's inside
|
|
11
|
+
|
|
12
|
+
The `acp-devtools` binary is one CLI with subcommands plus a bundled UI:
|
|
13
|
+
|
|
14
|
+
- **`proxy`** — wraps any ACP agent and passes stdio through verbatim.
|
|
15
|
+
Logs every frame to `~/.acp-devtools/captures.db` and broadcasts to a
|
|
16
|
+
local WebSocket on an ephemeral port; several editors run side by side
|
|
17
|
+
without port conflicts.
|
|
18
|
+
- **`ui`** — web inspector at `http://127.0.0.1:3737/`. Vertical timeline,
|
|
19
|
+
J/K navigation, Cmd+K palette, performance dashboard with p50/p99/max
|
|
20
|
+
per method and auto-detected hotspots, request↔response pairing,
|
|
21
|
+
spec-aware JSON tree, multi-day session waterfall.
|
|
22
|
+
- **`mcp`** — Model Context Protocol server (stdio) that exposes the
|
|
23
|
+
capture store as eleven read-only tools: `list_sessions`,
|
|
24
|
+
`find_sessions_by_client`, `get_session_metadata`, `get_latency_stats`,
|
|
25
|
+
`get_session_summary`, `get_session_messages`, `get_message`,
|
|
26
|
+
`get_paired`, `search_messages`, `find_spec_violations`,
|
|
27
|
+
`diff_sessions`.
|
|
28
|
+
- **`replay`** — re-emits any saved session over the same WebSocket so
|
|
29
|
+
the inspector treats it as if it were live.
|
|
30
|
+
- **`diff` / `inspect` / `stats` / `search` / `session-info` / `validate` /
|
|
31
|
+
`export` / `import` / `mock-agent` / `mock-editor`** — headless
|
|
32
|
+
workflows for terminals and CI.
|
|
33
|
+
|
|
34
|
+
Works with Zed, WebStorm, IntelliJ, PyCharm, Neovim, and Visual Studio via
|
|
35
|
+
ReSharper — any editor that supports custom ACP servers — and with Claude
|
|
36
|
+
Code, Codex, Goose, OpenCode, and 30+ other agents.
|
|
37
|
+
|
|
38
|
+
## Install
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g acp-devtools
|
|
42
|
+
which acp-devtools # absolute path for editor configs that need it
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Or run the UI without installing:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx acp-devtools ui
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Use it
|
|
52
|
+
|
|
53
|
+
Open the inspector:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
acp-devtools ui
|
|
57
|
+
# → http://127.0.0.1:3737/ (browser auto-opens)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Add ACP Devtools to your editor as an agent server. The minimum Zed config
|
|
61
|
+
(`~/.config/zed/settings.json`):
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"agent_servers": {
|
|
66
|
+
"Claude Code (via ACP Devtools)": {
|
|
67
|
+
"type": "custom",
|
|
68
|
+
"command": "acp-devtools"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Pick your editor in the inspector's empty state and copy the pre-filled
|
|
75
|
+
snippet (the absolute binary path is auto-resolved). Recipes for
|
|
76
|
+
WebStorm / IntelliJ / PyCharm, Neovim, and Claude Code multi-profile
|
|
77
|
+
setups are in the GitHub repo.
|
|
78
|
+
|
|
79
|
+
## MCP server
|
|
80
|
+
|
|
81
|
+
`acp-devtools mcp` runs over stdio. Add it from the CLI:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
claude mcp add acp-devtools -- acp-devtools mcp
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Or check a project-scoped `.mcp.json` into the repo root:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"mcpServers": {
|
|
92
|
+
"acp-devtools": {
|
|
93
|
+
"command": "acp-devtools",
|
|
94
|
+
"args": ["mcp"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
After restarting Claude Code the eleven tools above become available (check
|
|
101
|
+
`/mcp`). Every
|
|
102
|
+
tool advertises `readOnlyHint: true`, `idempotentHint: true`,
|
|
103
|
+
`openWorldHint: false` per the MCP annotations spec, and the server emits
|
|
104
|
+
an `instructions` block on `initialize` so the connecting LLM knows where
|
|
105
|
+
to start without scanning `tools/list`. Stdio only; no network surface;
|
|
106
|
+
the server cannot write to `captures.db`.
|
|
107
|
+
|
|
108
|
+
## Full documentation
|
|
109
|
+
|
|
110
|
+
Architecture, supported agents, JetBrains setup, Claude Code multi-profile
|
|
111
|
+
recipes, troubleshooting, and the full CLI reference — all in the GitHub
|
|
112
|
+
repo:
|
|
113
|
+
|
|
114
|
+
**<https://github.com/maksugr/acp-devtools>**
|
|
115
|
+
|
|
116
|
+
## License
|
|
117
|
+
|
|
118
|
+
MIT
|