Control your local AI agents from any chat app. Anywhere, anytime.
cc-connect bridges AI agents running on your machine to the messaging platforms you already use.
Code review, research, automation, data analysis — anything an AI agent can do,
now accessible from your phone, tablet, or any device with a chat app.
These highlights are in beta / pre-release builds — install
cc-connect@betaor grab a pre-release binary. They are not in the default stable release yet; details may change before promotion to stable.
- Personal WeChat — Chat with your local agent from Weixin (personal) via ilink long-polling; QR
weixin setup, CDN media, no public IP. Setup →docs/weixin.md - Auto-compress — When the session estimate blows past your threshold, cc-connect can trim context so long threads keep working instead of silently falling over.
- Friendlier
--continue— Fork-on-continue so your bridge session doesn’t inherit a half-finished CLI terminal session by accident. - Cron with boundaries — Run jobs in a fresh session each time and cap per-job timeouts so runaway tasks don’t wedge the bot.
- Richer platforms — e.g. Discord
@everyone/@here, Telegram voice-style replies, Feishu fixes for reply threading and async dispatch.
High-level view of what each built-in platform can do in cc-connect. Inspired by OpenClaw China’s feature matrix — handy for comparing channels at a glance.
Legend
| Symbol | Meaning |
|---|---|
| ✅ | Works in stable cc-connect with typical configuration |
| ✅(beta) | Beta / pre-release only — the Weixin (personal) column: install cc-connect@beta or a pre-release binary; not in the default stable npm build yet |
| Partial, needs extra config (e.g. speech / ASR), or limited by the vendor app or API | |
| ❌ | Not supported or not applicable in practice |
† QQ (NapCat / OneBot) — unofficial self-hosted bridge; behaviour depends on your NapCat / network setup.
| Capability | Feishu | DingTalk | Telegram | Slack | Discord | LINE | WeCom | Weixin (personal) |
QQ† | QQ Bot |
|---|---|---|---|---|---|---|---|---|---|---|
| Text & slash commands | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ |
| Markdown / cards | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ | ||
| Streaming / chunked replies | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ |
| Images & files | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ | |
| Voice / STT / TTS | ✅ | ❌ | ✅(beta) | |||||||
| Private (DM) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ |
| Group / channel | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅(beta) | ✅ | ✅ |
Weixin column: every ✅(beta) means “available only when you run a beta / pre-release build,” not a statement that the feature is incomplete — the whole personal WeChat (ilink) channel is still pre-stable.
WeCom: Webhook mode needs a public URL; long-connection / WS style setups often do not.
Voice row: many platforms need[speech]/ TTS providers enabled inconfig.toml; values are a best-effort summary.
Per-platform setup: Platform setup guides below.
7 AI Agents — Claude Code, Codex, Cursor Agent, Qoder CLI, Gemini CLI, OpenCode, iFlow CLI. Use whichever fits your workflow, or all of them at once.
10 Chat Platforms — Feishu, DingTalk, Slack, Telegram, Discord, WeChat Work, LINE, QQ, QQ Bot (Official), plus Weixin (personal ilink) for personal WeChat. Personal WeChat is beta / pre-release only — install cc-connect@beta or a GitHub pre-release binary; the default stable npm package does not ship the weixin platform yet. Most platforms need zero public IP.
Multi-Bot Relay — Bind multiple bots in a group chat and let them communicate with each other. Ask Claude, get insights from Gemini — all in one conversation.
Full Control from Chat — Switch models (/model), tune reasoning (/reasoning), change permission modes (/mode), manage sessions, all via slash commands.
Directory Switching in Chat — Change where the next session starts with /dir <path> (and /cd <path> as a compatibility alias), plus quick history jump via /dir <number> / /dir -.
Agent Memory — Read and write agent instruction files (/memory) without touching the terminal.
Scheduled Tasks — Set up cron jobs in natural language. "Every day at 6am, summarize GitHub trending" just works.
Voice & Images — Send voice messages or screenshots; cc-connect handles STT/TTS and multimodal forwarding.
Multi-Project — One process, multiple projects, each with its own agent + platform combo.
5 Languages — Native support for English, Chinese (Simplified & Traditional), Japanese, and Spanish. Built-in i18n ensures everyone feels at home.
Left:Lark | Telegram | Right:Wechat
The easiest way — Send this to Claude Code or any AI coding agent, and it will handle the entire installation and configuration for you:
Follow https://raw.githubusercontent.com/chenhg5/cc-connect/refs/heads/main/INSTALL.md to install and configure cc-connect.Via npm:
# Stable version
npm install -g cc-connect
# Beta version (more features, may be unstable)
npm install -g cc-connect@betaPersonal WeChat (Weixin ilink): only available in beta / pre-release builds (
cc-connect@betaor a prerelease asset under Releases). Stablenpm install -g cc-connectdoes not include this platform until it graduates from beta.
Download binary from GitHub Releases:
# Linux amd64 - Stable
curl -L -o cc-connect https://github.com/chenhg5/cc-connect/releases/latest/download/cc-connect-linux-amd64
chmod +x cc-connect
sudo mv cc-connect /usr/local/bin/
# Beta version (from pre-release)
curl -L -o cc-connect https://github.com/chenhg5/cc-connect/releases/download/v1.x.x-beta/cc-connect-linux-amd64Build from source (requires Go 1.22+):
git clone https://github.com/chenhg5/cc-connect.git
cd cc-connect
make buildmkdir -p ~/.cc-connect
cp config.example.toml ~/.cc-connect/config.toml
vim ~/.cc-connect/config.tomlSet admin_from = "alice,bob" in a project to allow those user IDs to run privileged commands such as /dir and /shell.
When a user runs /dir reset, cc-connect restores the configured work_dir and clears the persisted override stored under data_dir/projects/<project>.state.json.
./cc-connect# npm
npm install -g cc-connect
# Binary self-update
cc-connect update # Stable
cc-connect update --pre # Beta (includes pre-releases)| Component | Type | Status |
|---|---|---|
| Agent | Claude Code | ✅ Supported |
| Agent | Codex (OpenAI) | ✅ Supported |
| Agent | Cursor Agent | ✅ Supported |
| Agent | Gemini CLI (Google) | ✅ Supported |
| Agent | Qoder CLI | ✅ Supported |
| Agent | OpenCode (Crush) | ✅ Supported |
| Agent | iFlow CLI | ✅ Supported |
| Agent | Goose (Block) | 🔜 Planned |
| Agent | Aider | 🔜 Planned |
| Platform | Feishu (Lark) | ✅ WebSocket — no public IP needed |
| Platform | DingTalk | ✅ Stream — no public IP needed |
| Platform | Telegram | ✅ Long Polling — no public IP needed |
| Platform | Slack | ✅ Socket Mode — no public IP needed |
| Platform | Discord | ✅ Gateway — no public IP needed |
| Platform | LINE | ✅ Webhook — public URL required |
| Platform | WeChat Work | ✅ WebSocket / Webhook |
| Platform | Weixin (personal, ilink) | ✅(beta)— HTTP long polling — no public IP needed |
| Platform | QQ (NapCat/OneBot) | ✅ WebSocket — Beta |
| Platform | QQ Bot (Official) | ✅ WebSocket — no public IP needed |
| Platform | Guide | Connection | Public IP? |
|---|---|---|---|
| Feishu (Lark) | docs/feishu.md | WebSocket | No |
| DingTalk | docs/dingtalk.md | Stream | No |
| Telegram | docs/telegram.md | Long Polling | No |
| Slack | docs/slack.md | Socket Mode | No |
| Discord | docs/discord.md | Gateway | No |
| WeChat Work | docs/wecom.md | WebSocket / Webhook | No (WS) / Yes (Webhook) |
| Weixin (personal) | docs/weixin.md | HTTP long polling (ilink) — beta only | No |
| QQ / QQ Bot | docs/qq.md | WebSocket | No |
/new [name] Start a new session
/list List all sessions
/switch <id> Switch session
/current Show current session
/dir [path|reset] Show, switch, or reset work directory
/mode Show available modes
/mode yolo # Auto-approve all tools
/mode default # Ask for each tool
/provider list List providers
/provider switch <name> Switch API provider at runtime
/model List available models (format: alias - model)
/model switch <alias> Switch to model by alias
/dir Show current work directory and history
/dir <path> Switch to a path (relative or absolute)
/dir <number> Switch from history
/dir - Switch to previous directory
/cd <path> Compatibility alias for /dir <path>
/cron add 0 6 * * * Summarize GitHub trendingWhen an agent generates a local screenshot, chart, PDF, bundle, or other file, it can send that attachment back to the current chat.
First release supports:
- Feishu
- Telegram
If your agent does not natively inject the system prompt, run this once in chat after upgrading:
/bind setup
or:
/cron setup
This refreshes the cc-connect instructions in the project memory file so the agent knows how to send attachments back.
You can control this feature globally in config.toml:
attachment_send = "on" # default: "on"; set to "off" to block image/file send-backThis switch is independent from the agent's /mode. It only controls cc-connect send --image/--file.
Examples:
cc-connect send --image /absolute/path/to/chart.png
cc-connect send --file /absolute/path/to/report.pdf
cc-connect send --file /absolute/path/to/report.pdf --image /absolute/path/to/chart.pngNotes:
- Absolute paths are the safest option.
--imageand--filecan both be repeated.attachment_send = "off"disables only attachment send-back; ordinary text replies still work.- This command is for generated attachments, not ordinary text replies.
📖 Full documentation: docs/usage.md
- Usage Guide — Complete feature documentation
- INSTALL.md — AI-agent-friendly installation guide
- config.example.toml — Configuration template
MIT License
Built with ❤️ by the cc-connect community
