My workflow broke the moment I stepped away from my desk.
I had Claude Code running a large refactor. Left to grab lunch. By the time I came back, it had hit a permission prompt and been sitting idle for 15 minutes, waiting for me to press "yes" on a machine I wasn't at.
That's why I started contributing to OpenACP.
The problem
Claude Code, Gemini CLI, Codex - these tools are powerful but they assume you're sitting at your terminal. The moment you're on your phone or away from your desk, you lose visibility and control.
The workarounds people try: SSH into a tmux session (fragile on mobile), set up a VPN and remote desktop (slow), or just hope the agent doesn't get stuck. None of these are actually good.
What I wanted: send a message from Telegram, see the agent's tool calls streaming in real time, and approve or deny actions from my phone.
What OpenACP does
OpenACP is a self-hosted bridge between your messaging platform and your AI coding agent. It uses the Agent Client Protocol (ACP) - an open standard for editor-agent communication - to connect agents like Claude Code, Gemini CLI, and Codex to Telegram, Discord, and Slack.
You (Telegram / Discord / Slack)
|
OpenACP (bridge + session manager)
|
AI Agent (Claude Code, Codex, Gemini CLI, ...)
|
Your Codebase
Everything runs on your machine. No cloud relay, no third party with access to your code, no subscription.
Getting started: Claude Code on Telegram
Install:
npm install -g @openacp/cli
Node.js 20+ required. Claude Code needs to be installed separately.
Then run:
openacp
First run opens an interactive setup wizard. It asks which platform you want (Telegram, Discord, Slack, or all three), your bot token, which workspace directory to use, which agent to default to, and whether to run in foreground or daemon mode.
For Telegram you need a bot token from @botfather. The wizard validates the token and auto-detects your chat ID - no config file editing.
Once running, send any message to your bot. OpenACP creates a session, spawns Claude Code as an ACP subprocess, and streams everything back.
Each session gets its own forum topic. You can run multiple agents in parallel, each in its own topic or thread depending on the platform.
What a session looks like
When the agent is working, you see the tool calls as they happen:
File reads, writes, grep calls, terminal commands - all streamed to your chat. If the agent needs to do something that requires approval, you get inline buttons in the message: Approve or Deny, right there on your phone.
That's the thing that actually solved the lunch problem for me. I can now watch a long task from my phone and unblock it the moment it pauses.
Other agents
OpenACP isn't specific to Claude Code. It works with any agent that supports ACP, which now covers most of the major ones.
To use Gemini CLI from Telegram or Discord, install it the same way - same interface, same streaming:
openacp agents install gemini
Browse everything available:
openacp agents
The list includes Claude Code, Gemini CLI, Codex CLI, GitHub Copilot, Cursor, Cline, goose, Qwen Code, JetBrains Junie, and more. OpenACP pulls directly from the ACP registry, so new agents become available as soon as they register.
Platform support
Telegram, Discord, and Slack are all stable. Each uses platform-native patterns: forum topics in Telegram, threads in Discord, channels and threads in Slack. You can run all three at once pointing to the same agents.
How it compares to the alternatives
Two tools people usually ask about when they see OpenACP:
claude-code-telegram (the original one most people start with) is single-agent, Telegram only, no multi-session support. Fine for the basic use case.
Claude Code Channels is Anthropic's official remote access feature - cloud-based, tied to Claude Code specifically. Not self-hosted.
OpenACP is different in that it supports multiple agents and multiple platforms from one install, and everything stays on your machine. The tradeoff is that you have to self-host it. If that's too much friction, Claude Code Channels is the easier path.
A few practical things
Daemon mode: openacp start runs it as a background service. openacp stop, openacp status, and openacp logs handle the rest.
Tunnels: if an agent needs to expose a local port (say a dev server at 3000), openacp tunnel add 3000 handles it via Cloudflare Tunnel, ngrok, bore, or Tailscale.
Session handoff: if you're working in the terminal and want to continue on your phone, the /openacp:handoff integration transfers the session without losing context. Needs to be set up first with openacp integrate.
Usage tracking: optional token counting and cost reports per session. You can set a monthly budget limit that pauses the agent when hit.
Doctor: openacp doctor checks your daemon, bot token, agent installation, storage, and tunnel config, and tells you exactly what's broken if something isn't working.
Try it
npm install -g @openacp/cli
openacp
Source and issues: https://github.com/Open-ACP/OpenACP
Docs (platform setup guides): https://openacp.gitbook.io/docs
ACP registry (browse agents): https://agentclientprotocol.com/get-started/registry
MIT licensed. I'm a contributor. Happy to answer questions below.




Top comments (0)