@openacp/cli 0.4.5 → 0.4.8
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/README.md +81 -15
- package/dist/agent-registry-7HC6D4CH.js +7 -0
- package/dist/{chunk-WHKLPZGK.js → chunk-6MJLVZXV.js} +8 -8
- package/dist/{chunk-V5P3K4A5.js → chunk-BBPWAWE3.js} +1137 -119
- package/dist/chunk-BBPWAWE3.js.map +1 -0
- package/dist/{chunk-3QACY5E3.js → chunk-C6YIUTGR.js} +2 -2
- package/dist/{chunk-2SY7Y2VB.js → chunk-HZD3CGPK.js} +2 -2
- package/dist/{chunk-BLVZFCKN.js → chunk-UAUTLC4E.js} +27 -3
- package/dist/{chunk-BLVZFCKN.js.map → chunk-UAUTLC4E.js.map} +1 -1
- package/dist/chunk-VA2M52CM.js +15 -0
- package/dist/chunk-VA2M52CM.js.map +1 -0
- package/dist/{chunk-WF5XDN4D.js → chunk-ZRFBLD3W.js} +6 -2
- package/dist/chunk-ZRFBLD3W.js.map +1 -0
- package/dist/cli.js +388 -38
- package/dist/cli.js.map +1 -1
- package/dist/{config-J5YQOMDU.js → config-H2DSEHNW.js} +2 -2
- package/dist/config-editor-SKS4LJLT.js +11 -0
- package/dist/{daemon-SLGQGRKO.js → daemon-VF6HJQXD.js} +3 -3
- package/dist/index.d.ts +111 -10
- package/dist/index.js +13 -10
- package/dist/integrate-WUPLRJD3.js +145 -0
- package/dist/integrate-WUPLRJD3.js.map +1 -0
- package/dist/{main-3CDOICYN.js → main-NV7YN3VY.js} +27 -14
- package/dist/main-NV7YN3VY.js.map +1 -0
- package/dist/{setup-JQZBPXWS.js → setup-FCVL75K6.js} +3 -3
- package/dist/setup-FCVL75K6.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-V5P3K4A5.js.map +0 -1
- package/dist/chunk-WF5XDN4D.js.map +0 -1
- package/dist/config-editor-IXL4BFG3.js +0 -11
- package/dist/main-3CDOICYN.js.map +0 -1
- /package/dist/{config-J5YQOMDU.js.map → agent-registry-7HC6D4CH.js.map} +0 -0
- /package/dist/{chunk-WHKLPZGK.js.map → chunk-6MJLVZXV.js.map} +0 -0
- /package/dist/{chunk-3QACY5E3.js.map → chunk-C6YIUTGR.js.map} +0 -0
- /package/dist/{chunk-2SY7Y2VB.js.map → chunk-HZD3CGPK.js.map} +0 -0
- /package/dist/{config-editor-IXL4BFG3.js.map → config-H2DSEHNW.js.map} +0 -0
- /package/dist/{daemon-SLGQGRKO.js.map → config-editor-SKS4LJLT.js.map} +0 -0
- /package/dist/{setup-JQZBPXWS.js.map → daemon-VF6HJQXD.js.map} +0 -0
package/README.md
CHANGED
|
@@ -16,11 +16,11 @@ One message, any channel, any agent.
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
## What is OpenACP?
|
|
20
20
|
|
|
21
|
-
OpenACP
|
|
21
|
+
OpenACP lets you control AI coding agents (Claude Code, Codex, ...) from messaging apps like Telegram. You send a message, the agent writes code, runs commands, and streams everything back — in real time.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
It uses the [Agent Client Protocol (ACP)](https://agentclientprotocol.org/) to talk to agents. You host it on your own machine, so you own the data.
|
|
24
24
|
|
|
25
25
|
```
|
|
26
26
|
You (Telegram / Discord / ...)
|
|
@@ -29,30 +29,75 @@ OpenACP ─── ChannelAdapter ─── Session Manager ─── Session Sto
|
|
|
29
29
|
↓ ↓
|
|
30
30
|
ACP Protocol (JSON-RPC / stdio) Tunnel Service
|
|
31
31
|
↓ ↓
|
|
32
|
-
AI Agent (Claude Code, Codex, ...) File/Diff Viewer
|
|
32
|
+
AI Agent (Claude Code, Codex, ...) File/Diff Viewer
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Features
|
|
36
36
|
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
- [**Structured logging**](docs/guide/configuration.md#logging) — Pino with rotation, per-session log files
|
|
37
|
+
- **Multi-agent** — Claude Code, Codex, or any ACP-compatible agent
|
|
38
|
+
- **Telegram** — Forum topics, real-time streaming, permission buttons, skill commands
|
|
39
|
+
- **Tunnel & file viewer** — Public file/diff viewer via Cloudflare, ngrok, bore, or Tailscale
|
|
40
|
+
- **Session persistence** — Resume sessions across restarts
|
|
41
|
+
- **Plugin system** — Install channel adapters as npm packages
|
|
42
|
+
- **Structured logging** — Pino with rotation, per-session log files
|
|
44
43
|
- **Self-hosted** — Your keys, your data, your machine
|
|
45
44
|
|
|
46
|
-
##
|
|
45
|
+
## Setup
|
|
46
|
+
|
|
47
|
+
### Prerequisites
|
|
48
|
+
|
|
49
|
+
- **Node.js 20+**
|
|
50
|
+
- **A Telegram bot** — Create one via [@BotFather](https://t.me/BotFather) and save the token
|
|
51
|
+
- **A Telegram supergroup** with Topics enabled — Add your bot as admin
|
|
52
|
+
|
|
53
|
+
### Install & first run
|
|
47
54
|
|
|
48
55
|
```bash
|
|
49
56
|
npm install -g @openacp/cli
|
|
50
57
|
openacp
|
|
51
58
|
```
|
|
52
59
|
|
|
53
|
-
|
|
60
|
+
> **Important: `openacp` is an interactive CLI.**
|
|
61
|
+
> The first run launches a setup wizard that asks you questions in the terminal (bot token, group selection, workspace path, etc.).
|
|
62
|
+
> You **must run it yourself in a terminal** — it cannot be run by a script or an AI agent because it requires interactive input.
|
|
63
|
+
|
|
64
|
+
The wizard will:
|
|
65
|
+
|
|
66
|
+
1. **Ask for your Telegram bot token** — validates it against the Telegram API
|
|
67
|
+
2. **Auto-detect your group** — send "hi" in the group and it picks it up, or enter the chat ID manually
|
|
68
|
+
3. **Set a workspace directory** — where agents will create project folders (default: `~/openacp-workspace`)
|
|
69
|
+
4. **Detect installed agents** — finds Claude Code, Codex, etc.
|
|
70
|
+
5. **Choose run mode** — foreground (in terminal) or background (daemon with auto-start)
|
|
71
|
+
|
|
72
|
+
Config is saved to `~/.openacp/config.json`. After setup, OpenACP starts automatically.
|
|
73
|
+
|
|
74
|
+
### Running after setup
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Foreground (shows logs in terminal)
|
|
78
|
+
openacp
|
|
79
|
+
|
|
80
|
+
# Or as a background daemon
|
|
81
|
+
openacp start
|
|
82
|
+
openacp stop
|
|
83
|
+
openacp status
|
|
84
|
+
openacp logs
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Other CLI commands
|
|
54
88
|
|
|
55
|
-
|
|
89
|
+
```bash
|
|
90
|
+
openacp config # Show current config
|
|
91
|
+
openacp reset # Re-run the setup wizard
|
|
92
|
+
openacp update # Update to latest version
|
|
93
|
+
openacp install <plugin> # Install a plugin (e.g. @openacp/adapter-discord)
|
|
94
|
+
openacp uninstall <plugin>
|
|
95
|
+
openacp plugins # List installed plugins
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Usage
|
|
99
|
+
|
|
100
|
+
Once OpenACP is running, control it from Telegram:
|
|
56
101
|
|
|
57
102
|
| Command | Description |
|
|
58
103
|
|---------|-------------|
|
|
@@ -62,6 +107,27 @@ First run launches an [interactive setup wizard](docs/guide/getting-started.md)
|
|
|
62
107
|
| `/status` | Show session or system status |
|
|
63
108
|
| `/agents` | List available agents |
|
|
64
109
|
|
|
110
|
+
Each session gets its own forum topic. The agent streams responses in real time, shows tool calls, and asks for permission when needed.
|
|
111
|
+
|
|
112
|
+
### Session Transfer
|
|
113
|
+
|
|
114
|
+
Move sessions between your terminal and Telegram:
|
|
115
|
+
|
|
116
|
+
**Terminal → Telegram:**
|
|
117
|
+
```bash
|
|
118
|
+
# Install integration (one-time)
|
|
119
|
+
openacp integrate claude
|
|
120
|
+
|
|
121
|
+
# In Claude CLI, type /openacp:handoff to transfer the current session
|
|
122
|
+
# Or manually:
|
|
123
|
+
openacp adopt claude <session_id> --cwd /path/to/project
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Telegram → Terminal:**
|
|
127
|
+
Type `/handoff` in any session topic. The bot replies with a command you can paste in your terminal to continue.
|
|
128
|
+
|
|
129
|
+
Sessions are not locked after transfer — you can continue from either side.
|
|
130
|
+
|
|
65
131
|
## Roadmap
|
|
66
132
|
|
|
67
133
|
- **Phase 1** — Core + Telegram + ACP agents
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
validateBotToken,
|
|
3
|
+
validateChatId
|
|
4
|
+
} from "./chunk-UAUTLC4E.js";
|
|
5
|
+
import {
|
|
6
|
+
expandHome
|
|
7
|
+
} from "./chunk-ZRFBLD3W.js";
|
|
1
8
|
import {
|
|
2
9
|
installAutoStart,
|
|
3
10
|
isAutoStartInstalled,
|
|
4
11
|
isAutoStartSupported,
|
|
5
12
|
uninstallAutoStart
|
|
6
13
|
} from "./chunk-MRKYJ422.js";
|
|
7
|
-
import {
|
|
8
|
-
validateBotToken,
|
|
9
|
-
validateChatId
|
|
10
|
-
} from "./chunk-BLVZFCKN.js";
|
|
11
|
-
import {
|
|
12
|
-
expandHome
|
|
13
|
-
} from "./chunk-WF5XDN4D.js";
|
|
14
14
|
|
|
15
15
|
// src/core/config-editor.ts
|
|
16
16
|
import { select, input } from "@inquirer/prompts";
|
|
@@ -524,4 +524,4 @@ ${c.cyan}${c.bold}OpenACP Config Editor${c.reset}`);
|
|
|
524
524
|
export {
|
|
525
525
|
runConfigEditor
|
|
526
526
|
};
|
|
527
|
-
//# sourceMappingURL=chunk-
|
|
527
|
+
//# sourceMappingURL=chunk-6MJLVZXV.js.map
|