claude-code-acp 0.3.0__py3-none-any.whl → 0.3.2__py3-none-any.whl

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.
@@ -11,7 +11,7 @@ from .agent import ClaudeAcpAgent
11
11
  from .client import ClaudeClient, ClaudeEvents
12
12
  from .acp_client import AcpClient, AcpClientEvents
13
13
 
14
- __version__ = "0.2.0"
14
+ __version__ = "0.3.2"
15
15
 
16
16
  __all__ = [
17
17
  "ClaudeAcpAgent",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-acp
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: ACP-compatible agent for Claude Code (Python version)
5
5
  Project-URL: Homepage, https://github.com/yazelin/claude-code-acp-py
6
6
  Project-URL: Repository, https://github.com/yazelin/claude-code-acp-py
@@ -219,6 +219,21 @@ async def main():
219
219
  asyncio.run(main())
220
220
  ```
221
221
 
222
+ ### Connect to Different Agents
223
+
224
+ ```python
225
+ from claude_code_acp import AcpClient
226
+
227
+ # Connect to our Claude ACP server
228
+ claude = AcpClient(command="claude-code-acp")
229
+
230
+ # Connect to Gemini CLI
231
+ gemini = AcpClient(command="gemini", args=["--experimental-acp"])
232
+
233
+ # Connect to TypeScript version
234
+ ts_claude = AcpClient(command="npx", args=["@zed-industries/claude-code-acp"])
235
+ ```
236
+
222
237
  ### AcpClient vs ClaudeClient
223
238
 
224
239
  | Feature | `ClaudeClient` | `AcpClient` |
@@ -228,52 +243,64 @@ asyncio.run(main())
228
243
  | Agents | Claude only | Any ACP-compatible agent |
229
244
  | Use case | Simple Python apps | Multi-agent, testing, flexibility |
230
245
 
246
+ ### Tested Agents
247
+
248
+ | Agent | Command | Status |
249
+ |-------|---------|--------|
250
+ | claude-code-acp (this package) | `claude-code-acp` | ✅ Works |
251
+ | Gemini CLI | `gemini --experimental-acp` | ✅ Works |
252
+ | TypeScript version | `npx @zed-industries/claude-code-acp` | ✅ Compatible |
253
+
231
254
  ---
232
255
 
233
256
  ## Architecture
234
257
 
258
+ This package provides **three ways** to use Claude:
259
+
260
+ ### Method A: Editor via ACP (ClaudeAcpAgent)
261
+
262
+ For Zed, Neovim, and other ACP-compatible editors:
263
+
235
264
  ```
236
- ┌─────────────────────────────────────────────────────────────────────────────┐
237
- Your Application
238
- ├─────────────────────────────────────────────────────────────────────────────┤
239
- │ │
240
- │ ┌─────────────────┐ ┌─────────────────────────────┐ │
241
- │ │ Zed/Neovim │ │ Python Application │ │
242
- │ │ (ACP Client) │ │ │ │
243
- │ └────────┬────────┘ │ client = ClaudeClient() │ │
244
- │ │ │ │ │
245
- │ │ ACP Protocol │ @client.on_text │ │
246
- │ │ (stdio/JSON-RPC) │ async def handle(text): │ │
247
- │ │ │ print(text) │ │
248
- │ ▼ │ │ │
249
- │ ┌────────────────────────────────────────┴─────────────────────────────┐ │
250
- │ │ │ │
251
- │ │ claude-code-acp (This Package) │ │
252
- │ │ │ │
253
- │ │ ┌─────────────────────┐ ┌─────────────────────────────────┐ │ │
254
- │ │ │ ClaudeAcpAgent │ │ ClaudeClient │ │ │
255
- │ │ │ (ACP Server) │ │ (Event-driven wrapper) │ │ │
256
- │ │ └──────────┬──────────┘ └───────────────┬─────────────────┘ │ │
257
- │ │ │ │ │ │
258
- │ │ └────────────────┬────────────────┘ │ │
259
- │ │ │ │ │
260
- │ └───────────────────────────────┼───────────────────────────────────────┘ │
261
- │ │ │
262
- │ ▼ │
263
- │ ┌─────────────────────────────┐ │
264
- │ │ Claude Agent SDK │ │
265
- │ │ (claude-agent-sdk) │ │
266
- │ └──────────────┬──────────────┘ │
267
- │ │ │
268
- │ ▼ │
269
- │ ┌─────────────────────────────┐ │
270
- │ │ Claude CLI │ │
271
- │ │ (Your Claude Subscription) │ │
272
- │ └─────────────────────────────┘ │
273
- │ │
274
- └─────────────────────────────────────────────────────────────────────────────┘
265
+ ┌──────────┐ ACP Protocol ┌─────────────────┐ SDK ┌────────────┐
266
+ Zed │ ────── stdio ───────► ClaudeAcpAgent │ ──────────► │ Claude CLI │
267
+ │ Editor │ │ (ACP Server) │ │ │
268
+ └──────────┘ └─────────────────┘ └────────────┘
275
269
  ```
276
270
 
271
+ ### Method B: Python Direct (ClaudeClient)
272
+
273
+ For Python apps that want simple, direct access to Claude (**no ACP protocol**):
274
+
275
+ ```
276
+ ┌──────────┐ direct call ┌─────────────────┐ SDK ┌────────────┐
277
+ │ Python │ ──── in-process ───► │ ClaudeClient │ ──────────► │ Claude CLI │
278
+ │ App │ │ │ │ │
279
+ └──────────┘ └─────────────────┘ └────────────┘
280
+ ```
281
+
282
+ ### Method C: Python via ACP (AcpClient)
283
+
284
+ For Python apps that want to connect to **any** ACP-compatible agent:
285
+
286
+ ```
287
+ ┌──────────┐ ACP Protocol ┌─────────────────┐
288
+ │ Python │ ────── stdio ───────► │ Any ACP Agent │
289
+ │ App │ │ │
290
+ │ │ │ • claude-code │
291
+ │ AcpClient│ │ • gemini │
292
+ │ │ │ • custom agents │
293
+ └──────────┘ └─────────────────┘
294
+ ```
295
+
296
+ ### Summary
297
+
298
+ | Component | Uses ACP? | Purpose |
299
+ |-----------|-----------|---------|
300
+ | `ClaudeAcpAgent` | Yes (Server) | Let editors connect to Claude |
301
+ | `ClaudeClient` | **No** | Simplest way for Python apps |
302
+ | `AcpClient` | Yes (Client) | Connect to any ACP agent |
303
+
277
304
  ---
278
305
 
279
306
  ## What We Built
@@ -1,10 +1,10 @@
1
- claude_code_acp/__init__.py,sha256=sY6dO2pXQnnImk6ChOl7MF3HOrp6GBdIiLl5CseuaWs,828
1
+ claude_code_acp/__init__.py,sha256=Bn3jxHrGAiiY_tVo_OL083Y6pqGIHyoNBLFMVtcwYn4,828
2
2
  claude_code_acp/__main__.py,sha256=zuAdIOmaCsDeRxj2yIl_qMx-74QFaA3nWiS8gti0og0,118
3
3
  claude_code_acp/acp_client.py,sha256=E0e8XBco3cBV4sPi4txXpS13WPXRDodwYqHpXmCJd4A,12572
4
4
  claude_code_acp/agent.py,sha256=qos32gnMAilOlz6ebllkmuJZS3UgpbAtAZw58r3SYig,20619
5
5
  claude_code_acp/client.py,sha256=jKi6tPNqNu0GWTsXxVa1BREGE1wkm_kbIEDulXKGDHE,10680
6
- claude_code_acp-0.3.0.dist-info/METADATA,sha256=gGQDM94g6UpnPsIDPXkWQyZ6Ig2SanGxI3vvIbixRew,15477
7
- claude_code_acp-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
- claude_code_acp-0.3.0.dist-info/entry_points.txt,sha256=cc_pkg_V_1zctD5CUqjATCxglkf5-UArEMfN3q9We-A,57
9
- claude_code_acp-0.3.0.dist-info/licenses/LICENSE,sha256=5NCM9Q9UTfsn-VyafO7htdlYyPPO8H-NHYrO5UV9sT4,1064
10
- claude_code_acp-0.3.0.dist-info/RECORD,,
6
+ claude_code_acp-0.3.2.dist-info/METADATA,sha256=xILl5S_FH4TNyHro7VlLq65BbZSGxfr3s3LlfmzgDF4,13729
7
+ claude_code_acp-0.3.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
8
+ claude_code_acp-0.3.2.dist-info/entry_points.txt,sha256=cc_pkg_V_1zctD5CUqjATCxglkf5-UArEMfN3q9We-A,57
9
+ claude_code_acp-0.3.2.dist-info/licenses/LICENSE,sha256=5NCM9Q9UTfsn-VyafO7htdlYyPPO8H-NHYrO5UV9sT4,1064
10
+ claude_code_acp-0.3.2.dist-info/RECORD,,