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.
## ๐ What's New (beta)
> These highlights are in **beta / pre-release** builds โ install [`cc-connect@beta`](https://www.npmjs.com/package/cc-connect?activeTab=versions) or grab a [pre-release](https://github.com/chenhg5/cc-connect/releases) 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`](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.
## ๐งฉ Platform feature snapshot
High-level view of what each **built-in platform** can do in cc-connect. Inspired by [OpenClaw Chinaโs feature matrix](https://github.com/BytePioneer-AI/openclaw-china#ๅ่ฝๆฏๆ) โ 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`](https://www.npmjs.com/package/cc-connect?activeTab=versions) or a [pre-release binary](https://github.com/chenhg5/cc-connect/releases); **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 in `config.toml`; values are a best-effort summary.
> Per-platform setup: [Platform setup guides](#-platform-setup-guides) below.
## โจ Why cc-connect?
### ๐ค Universal Agent Support
**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.
### ๐ฑ Platform Flexibility
**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`](https://www.npmjs.com/package/cc-connect?activeTab=versions) or a [GitHub pre-release](https://github.com/chenhg5/cc-connect/releases) binary; the default **stable** npm package does **not** ship the `weixin` platform yet. Most platforms need **zero public IP**.
### ๐ Multi-Agent Orchestration
**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.
### ๐ฎ Complete Chat Control
**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 ` (and `/cd ` as a compatibility alias), plus quick history jump via `/dir ` / `/dir -`.
### ๐ง Persistent Memory
**Agent Memory** โ Read and write agent instruction files (`/memory`) without touching the terminal.
### โฐ Intelligent Scheduling
**Scheduled Tasks** โ Set up cron jobs in natural language. *"Every day at 6am, summarize GitHub trending"* just works.
### ๐ค Multimodal Support
**Voice & Images** โ Send voice messages or screenshots; cc-connect handles STT/TTS and multimodal forwarding.
### ๐ฆ Multi-Project Architecture
**Multi-Project** โ One process, multiple projects, each with its own agent + platform combo.
### ๐ Multilingual Interface
**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
## ๐ Quick Start
### ๐ค Install & Configure via AI Agent (Recommended)
> **The easiest way** โ Send this to Claude Code or any AI coding agent, and it will handle the entire installation and configuration for you:
```bash
Follow https://raw.githubusercontent.com/chenhg5/cc-connect/refs/heads/main/INSTALL.md to install and configure cc-connect.
```
### ๐ฆ Manual Install
**Via npm:**
```bash
# Stable version
npm install -g cc-connect
# Beta version (more features, may be unstable)
npm install -g cc-connect@beta
```
> **Personal WeChat (Weixin ilink):** only available in **beta / pre-release** builds (`cc-connect@beta` or a prerelease asset under [Releases](https://github.com/chenhg5/cc-connect/releases)). **Stable** `npm install -g cc-connect` does **not** include this platform until it graduates from beta.
**Download binary from [GitHub Releases](https://github.com/chenhg5/cc-connect/releases):**
```bash
# 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-amd64
```
**Build from source (requires Go 1.22+):**
```bash
git clone https://github.com/chenhg5/cc-connect.git
cd cc-connect
make build
```
### โ๏ธ Configure
```bash
mkdir -p ~/.cc-connect
cp config.example.toml ~/.cc-connect/config.toml
vim ~/.cc-connect/config.toml
```
Set `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/.state.json`.
### โถ๏ธ Run
```bash
./cc-connect
```
### ๐ Upgrade
```bash
# npm
npm install -g cc-connect
# Binary self-update
cc-connect update # Stable
cc-connect update --pre # Beta (includes pre-releases)
```
## ๐ Support Matrix
| 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 Setup Guides
| Platform | Guide | Connection | Public IP? |
|----------|-------|------------|------------|
| Feishu (Lark) | [docs/feishu.md](docs/feishu.md) | WebSocket | No |
| DingTalk | [docs/dingtalk.md](docs/dingtalk.md) | Stream | No |
| Telegram | [docs/telegram.md](docs/telegram.md) | Long Polling | No |
| Slack | [docs/slack.md](docs/slack.md) | Socket Mode | No |
| Discord | [docs/discord.md](docs/discord.md) | Gateway | No |
| WeChat Work | [docs/wecom.md](docs/wecom.md) | WebSocket / Webhook | No (WS) / Yes (Webhook) |
| Weixin (personal) | [docs/weixin.md](docs/weixin.md) | HTTP long polling (ilink) โ **beta only** | No |
| QQ / QQ Bot | [docs/qq.md](docs/qq.md) | WebSocket | No |
## ๐ฏ Key Features
### ๐ฌ Session Management
```
/new [name] Start a new session
/list List all sessions
/switch Switch session
/current Show current session
/dir [path|reset] Show, switch, or reset work directory
```
Project configs can also rotate to a fresh session automatically after long inactivity:
```toml
[[projects]]
reset_on_idle_mins = 60
```
### ๐ก๏ธ OS-User Isolation (`run_as_user`)
On Linux/macOS, a project can spawn its agent under a different Unix
user for OS-level file-system isolation from the supervisor user that
runs cc-connect. Currently supported by Claude Code.
```toml
[[projects]]
name = "claude-sandboxed"
run_as_user = "partseeker-coder"
run_as_env = ["PGSSLROOTCERT"]
```
The target user needs passwordless sudo from the supervisor, no sudo
of its own, read+write on `work_dir`, and its own `~/.claude/settings.json`
with whatever credentials the agent uses. If you authenticate via
`claude.ai` OAuth, symlink the target user's `~/.claude/.credentials.json`
to the supervisor's copy so token refresh stays in sync โ see the
[environment propagation checklist](./docs/usage.md#environment-propagation-what-moves-into-the-target-users-home)
for details. See
[`docs/usage.md`](./docs/usage.md#running-agents-as-a-different-unix-user-run_as_user)
for the full setup.
Before starting cc-connect, audit the setup with:
```bash
cc-connect doctor user-isolation
```
This runs three go/no-go preflight gates and an isolation probe that
reports what the target user can and cannot read. cc-connect refuses to
start if any gate fails or if the probe detects a cross-user leak.
---
### ๐ Permission Modes
```
/mode Show available modes
/mode yolo # Auto-approve all tools
/mode default # Ask for each tool
```
### ๐ Provider Management
```
/provider list List providers
/provider switch Switch API provider at runtime
```
### ๐ค Model Selection
```
/model List available models (format: alias - model)
/model switch Switch to model by alias
```
### ๐ Work Directory
```
/dir Show current work directory and history
/dir Switch to a path (relative or absolute)
/dir Switch from history
/dir - Switch to previous directory
/cd Compatibility alias for /dir
```
### โฐ Scheduled Tasks
```bash
/cron add 0 6 * * * Summarize GitHub trending
```
### ๐ Agent Attachment Send-Back
When 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:
```text
/bind setup
```
or:
```text
/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`:
```toml
attachment_send = "on" # default: "on"; set to "off" to block image/file send-back
```
This switch is independent from the agent's `/mode`. It only controls `cc-connect send --image/--file`.
Examples:
```bash
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.png
```
Notes:
- Absolute paths are the safest option.
- `--image` and `--file` can 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](docs/usage.md)
## ๐ Documentation
- [Usage Guide](docs/usage.md) โ Complete feature documentation
- [INSTALL.md](INSTALL.md) โ AI-agent-friendly installation guide
- [config.example.toml](config.example.toml) โ Configuration template
- [CONTRIBUTING.md](CONTRIBUTING.md) โ How to report issues and contribute pull requests
## ๐ฅ Community
- [Discord](https://discord.gg/kHpwgaM4kq)
- [Telegram](https://t.me/+odGNDhCjbjdmMmZl)
## โค๏ธ Sponsor
> Want to appear here? Contact us: **Email**: chg80333@gmail.com | **WeChat**: mongorz | [Telegram](https://t.me/+odGNDhCjbjdmMmZl) | [Discord](https://discord.gg/kHpwgaM4kq)
Sponsors
Become a sponsor! We offer exclusive benefits for our users. Contact us to learn more about sponsorship opportunities.
## โ Support the Project
If cc-connect has been helpful to you, consider buying us a coffee! Your support helps us:
- ๐ ๏ธ Maintain and improve the project
- ๐ Write better documentation and tutorials
- ๐ Fix bugs and add new features faster
- โ Keep the developers caffeinated
### How to Donate
**Buy Me a Coffee**: [https://buymeacoffee.com/cg33](https://buymeacoffee.com/cg33)
**WeChat Pay / Alipay**:
| WeChat Pay | Alipay |
|:----------:|:------:|
| | |
### Thank You, Donors! ๐
We're grateful to everyone who has supported this project. Leave your GitHub username in the donation message if you'd like to be recognized here!
## ๐ค Commercial Cooperation
We accept the following commercial collaborations:
- **Enterprise Customization**: Custom deployment for internal AI tooling (Feishu, DingTalk, WeChat Work, Slack, etc.)
- **Technical Consulting**: AI agent integration and architecture design
- **Outsourcing Projects**: AI-related system development
**Contact**: **Email**: chg80333@gmail.com | **WeChat**: mongorz | [Telegram](https://t.me/+odGNDhCjbjdmMmZl) | [Discord](https://discord.gg/kHpwgaM4kq)
## ๐ Contributors
## โญ Star History
## ๐ License
MIT License