@n1creator/openacp-cli 2026.712.8 → 2026.712.9
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 +88 -8
- package/dist/cli.js +3106 -1015
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +158 -7
- package/dist/index.js +1810 -327
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
OpenACP — self-hosted bridge that connects 28+ AI coding agents (Claude Code, Codex, Gemini, Cursor) to
|
|
1
|
+
OpenACP — self-hosted bridge that connects 28+ AI coding agents (Claude Code, Codex, Gemini, Cursor) to chat, REST, and SSE, with native bridge-agnostic speech-to-text. Your machine, your keys, your data.
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
5
|
# OpenACP
|
|
6
6
|
|
|
7
|
-
**Control AI coding agents from Telegram, Discord & Slack**
|
|
7
|
+
**Control AI coding agents from Telegram, Discord & Slack — or automate them through REST and SSE**
|
|
8
8
|
|
|
9
9
|
Send a message. The agent writes code. You see everything — in real time.
|
|
10
10
|
|
|
@@ -25,18 +25,20 @@ Send a message. The agent writes code. You see everything — in real time.
|
|
|
25
25
|
> **N1 Creator distribution.** This repository publishes the maintained fork as
|
|
26
26
|
> `@n1creator/openacp-cli` and `@n1creator/openacp-plugin-sdk`. Existing OpenACP
|
|
27
27
|
> workspaces remain compatible; migrate by replacing the global CLI package and
|
|
28
|
-
> restarting the same instance.
|
|
28
|
+
> restarting the same instance. The maintained CLI includes native local
|
|
29
|
+
> faster-whisper STT and keeps the speech pipeline independent from any one
|
|
30
|
+
> messaging adapter.
|
|
29
31
|
|
|
30
32
|
## What is OpenACP?
|
|
31
33
|
|
|
32
|
-
OpenACP is a self-hosted bridge that connects AI coding agents to
|
|
34
|
+
OpenACP is a self-hosted bridge that connects AI coding agents to messaging and automation channels. Chat through Telegram, Discord, or Slack, or send prompts and attachments through REST/SSE — the agent reads your codebase, writes code, runs commands, and streams results back in real time.
|
|
33
35
|
|
|
34
36
|
Built on the open [Agent Client Protocol (ACP)](https://agentclientprotocol.org/). Your machine, your keys, your data.
|
|
35
37
|
|
|
36
38
|
```
|
|
37
|
-
You (Telegram / Discord / Slack)
|
|
39
|
+
You (Telegram / Discord / Slack / REST / SSE)
|
|
38
40
|
↓
|
|
39
|
-
OpenACP (bridge + session manager)
|
|
41
|
+
OpenACP (bridge + session manager + speech service)
|
|
40
42
|
↓
|
|
41
43
|
AI Agent (Claude Code, Codex, Gemini, Cursor, ...)
|
|
42
44
|
↓
|
|
@@ -59,6 +61,7 @@ Your Codebase
|
|
|
59
61
|
- **Team visibility** — Share a Discord channel where everyone sees what the AI agent is doing in real time — no more black-box coding sessions.
|
|
60
62
|
- **Multi-agent workflows** — Start with Claude Code for planning, switch to Codex for implementation, use Gemini for review — all in one chat thread, no reconfiguration.
|
|
61
63
|
- **CI/CD integration** — Trigger agent sessions from GitHub Actions or any issue tracker via the REST API.
|
|
64
|
+
- **Voice-driven workflows** — Send audio from any compatible bridge; OpenACP transcribes it locally before the agent receives the prompt.
|
|
62
65
|
- **Self-hosted AI gateway** — Keep API keys and code on your own infrastructure. No third-party cloud, no vendor lock-in.
|
|
63
66
|
- **Local LLM support** — Run agents against self-hosted models (Ollama, LM Studio) via ACP-compatible adapters. Your models, your data.
|
|
64
67
|
|
|
@@ -145,13 +148,14 @@ That's it. Send a message to your bot and start coding.
|
|
|
145
148
|
|
|
146
149
|
## Features
|
|
147
150
|
|
|
148
|
-
###
|
|
151
|
+
### Channels and Bridges
|
|
149
152
|
|
|
150
153
|
| Platform | Status | Highlights |
|
|
151
154
|
|----------|--------|------------|
|
|
152
155
|
| **Telegram** | Stable | Forum topics per session, streaming, permission buttons, voice |
|
|
153
156
|
| **Discord** | Stable | Thread-based sessions, slash commands, button interactions |
|
|
154
157
|
| **Slack** | Stable | Socket Mode, channel-based sessions, thread organization |
|
|
158
|
+
| **REST API / SSE** | Stable | Session automation, base64 file/audio attachments, streamed events |
|
|
155
159
|
|
|
156
160
|
### Core
|
|
157
161
|
|
|
@@ -161,6 +165,9 @@ That's it. Send a message to your bot and start coding.
|
|
|
161
165
|
- **Permission control** — Approve or deny agent actions via buttons, with optional auto-approve
|
|
162
166
|
- **Real-time streaming** — See agent thinking, tool calls, and output as they happen
|
|
163
167
|
- **Agent switching** — Switch agents mid-conversation with `/switch`; history carries over automatically
|
|
168
|
+
- **Dynamic model options** — Model, mode, and reasoning choices come from each ACP agent at runtime instead of a hard-coded model list
|
|
169
|
+
- **Agent-aware audio routing** — Pass audio directly to agents that support it; otherwise transcribe it through the shared STT service
|
|
170
|
+
- **Scoped proxy routing** — Route Telegram, individual ACP agents, services, or plugin flows independently through HTTP, HTTPS, SOCKS5, or SOCKS5H profiles
|
|
164
171
|
|
|
165
172
|
### Developer Tools
|
|
166
173
|
|
|
@@ -168,14 +175,69 @@ That's it. Send a message to your bot and start coding.
|
|
|
168
175
|
- **Built-in file viewer** — Monaco Editor with syntax highlighting, diffs, and markdown preview
|
|
169
176
|
- **Session transfer** — Move sessions between terminal and chat (`/handoff`)
|
|
170
177
|
- **Agent switch** — Change which AI agent handles your session mid-conversation (`/switch`)
|
|
171
|
-
- **Voice & speech** —
|
|
178
|
+
- **Voice & speech** — Bundled local faster-whisper or Groq STT for every compatible bridge, plus optional Edge TTS
|
|
172
179
|
- **Usage tracking** — Token counts, cost reports, optional monthly budget limits
|
|
173
180
|
- **Context resume** — Resume sessions with full conversation history
|
|
174
181
|
|
|
182
|
+
### Native Speech-to-Text Across Bridges
|
|
183
|
+
|
|
184
|
+
The maintained package includes the `local-whisper` provider in the built-in
|
|
185
|
+
`@openacp/speech` service. STT runs in the shared session pipeline rather than
|
|
186
|
+
inside Telegram, so the same behavior applies to Telegram voice messages,
|
|
187
|
+
REST/SSE audio attachments, and external adapters that submit a standard
|
|
188
|
+
attachment with `type: "audio"`.
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
audio attachment from any compatible bridge
|
|
192
|
+
→ agent supports native audio? send audio directly
|
|
193
|
+
→ otherwise: local faster-whisper or Groq STT
|
|
194
|
+
→ append transcript to the prompt and call the agent
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
- **Private local mode** — `local-whisper` runs on the OpenACP host with no API key.
|
|
198
|
+
- **Bundled runtime** — The CLI ships the transcription script and reuses the model/venv cache at `~/.cache/codex/transcribe-voice`.
|
|
199
|
+
- **Pluggable providers** — Select local Whisper or Groq, or register another STT provider through the plugin SDK.
|
|
200
|
+
- **Safe fallback** — If transcription fails, OpenACP keeps the original audio attachment instead of discarding it.
|
|
201
|
+
- **Audio-aware agents** — Agents advertising native audio capability receive the original attachment without unnecessary transcription.
|
|
202
|
+
|
|
203
|
+
Local Whisper needs Python 3 plus `uv` or `python3-venv`; its environment and
|
|
204
|
+
selected model are prepared on the first transcription. Configure it through
|
|
205
|
+
`/settings`, the plugin settings API, or `openacp config`. See
|
|
206
|
+
[Voice and Speech](docs/gitbook/using-openacp/voice-and-speech.md) for settings,
|
|
207
|
+
formats, providers, and troubleshooting.
|
|
208
|
+
|
|
209
|
+
### Scoped Proxy Routing
|
|
210
|
+
|
|
211
|
+
OpenACP can proxy only the flows that need it instead of exporting one proxy for
|
|
212
|
+
the whole daemon. Profiles (where to connect) are separate from routes (what uses
|
|
213
|
+
the profile), and every route is `direct`, `inherit`, or `profile:<id>`.
|
|
214
|
+
|
|
215
|
+
```text
|
|
216
|
+
global: direct
|
|
217
|
+
channels.telegram: profile:usa
|
|
218
|
+
agents.codex: profile:usa
|
|
219
|
+
agents.cursor: direct
|
|
220
|
+
services.default: direct
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
Telegram polling, outgoing Bot API calls, and Telegram file downloads share the
|
|
224
|
+
`channels.telegram` route. ACP subprocesses receive a per-agent environment;
|
|
225
|
+
`direct` explicitly removes inherited proxy variables. Local REST/SSE traffic is
|
|
226
|
+
not globally intercepted. Credentials live in a separate mode-0600 secret store
|
|
227
|
+
and never appear in route files, agent definitions, status responses, or
|
|
228
|
+
structured OpenACP logs.
|
|
229
|
+
|
|
230
|
+
Manage routes from any connector with `/proxy`, from the CLI with
|
|
231
|
+
`openacp proxy`, or through `/api/v1/proxy`. Channel changes are tested before
|
|
232
|
+
they are saved. See [Scoped Proxy Routing](docs/gitbook/features/proxy-routing.md).
|
|
233
|
+
|
|
175
234
|
### Operations
|
|
176
235
|
|
|
177
236
|
- **Daemon mode** — Run as a background service with auto-start on boot
|
|
178
237
|
- **CLI API** — Full REST API for automation (`openacp api ...`)
|
|
238
|
+
- **Fast first session** — A liveness-checked warm pool keeps the default agent ready, avoiding a full subprocess spawn on the first API session
|
|
239
|
+
- **Consistent health reporting** — `/api/health` merges persisted and live-only sessions so active and total counts describe the same population
|
|
240
|
+
- **Secret-safe agent inspection** — Agent list, reload, and detail API responses redact environment values while preserving variable names
|
|
179
241
|
- **Plugin system** — Install adapters as npm packages
|
|
180
242
|
- **Doctor diagnostics** — `openacp doctor` checks everything and suggests fixes
|
|
181
243
|
- **Structured logging** — Pino with rotation, per-session log files
|
|
@@ -224,11 +286,22 @@ openacp doctor # System diagnostics
|
|
|
224
286
|
# Sessions & API (requires running daemon)
|
|
225
287
|
openacp api new [agent] [workspace]
|
|
226
288
|
openacp api status
|
|
289
|
+
openacp api health
|
|
227
290
|
openacp api cancel <id>
|
|
228
291
|
|
|
292
|
+
# Updates
|
|
293
|
+
openacp update # Install the latest maintained npm release
|
|
294
|
+
|
|
229
295
|
# Tunnels
|
|
230
296
|
openacp tunnel add <port> [--label name]
|
|
231
297
|
openacp tunnel list
|
|
298
|
+
|
|
299
|
+
# Scoped proxy routing (requires running daemon)
|
|
300
|
+
openacp proxy status
|
|
301
|
+
openacp proxy import usa --env-file ~/.openacp/secrets/proxy.env
|
|
302
|
+
openacp proxy set channels.telegram profile:usa
|
|
303
|
+
openacp proxy set agents.codex profile:usa
|
|
304
|
+
openacp proxy test --scope channels.telegram
|
|
232
305
|
```
|
|
233
306
|
|
|
234
307
|
> **Full CLI reference** — [CLI Commands](https://openacp.gitbook.io/docs/api-reference/cli-commands)
|
|
@@ -272,6 +345,9 @@ Set a monthly budget limit in your config. OpenACP tracks token usage and cost i
|
|
|
272
345
|
### Can I use a local or self-hosted LLM?
|
|
273
346
|
Yes, if the model has a compatible agent CLI. Any agent that implements the ACP protocol can be registered. Community adapters exist for Ollama and LM Studio — run `openacp agents` to browse available options.
|
|
274
347
|
|
|
348
|
+
### Does speech input only work in Telegram?
|
|
349
|
+
No. STT is part of the shared session pipeline. Telegram already converts voice and audio messages into standard audio attachments, while the REST API and SSE bridge accept base64 audio attachments. Any external adapter gets the same behavior when it submits an attachment with `type: "audio"`. If the selected agent supports native audio, OpenACP passes the audio through; otherwise it transcribes it with the configured STT provider.
|
|
350
|
+
|
|
275
351
|
### What happens if the agent gets stuck or the chat hangs?
|
|
276
352
|
Use `/cancel` in your chat to stop the current session. Run `openacp doctor` to check for connectivity or configuration issues. OpenACP's session persistence means you can resume with full context intact after a restart.
|
|
277
353
|
|
|
@@ -289,6 +365,10 @@ Yes. OpenACP is MIT-licensed and free to self-host. You only pay for the AI prov
|
|
|
289
365
|
openacp update
|
|
290
366
|
```
|
|
291
367
|
|
|
368
|
+
On Telegram, administrators can also run `/update`; OpenACP waits for npm to
|
|
369
|
+
finish and then requests a managed daemon restart. Do not run a second npm
|
|
370
|
+
install or stop the service while that update is in progress.
|
|
371
|
+
|
|
292
372
|
To migrate from the upstream npm package:
|
|
293
373
|
|
|
294
374
|
```bash
|