Control Claude Code from your phone via chat. Real-time dashboard. Heartbeat monitoring. Zero downtime.
Features · Quick Start · Dashboard · Configuration · API
You've seen Claude Code — the most powerful AI coding agent. You've seen OpenClaw — the web-based interface. But what if you want to command Claude Code from anywhere — your phone, your tablet, on the subway — through the chat app you already use?
DigitalMe bridges the gap. It keeps a persistent Claude Code session alive and connects it to 8 messaging platforms including Feishu, Telegram, Slack, and Discord. No more SSH-ing into your machine. No more VPN. Just open your chat app and start coding.
╔══════════════════════════════════════════════════════════════╗
║ ║
║ 📱 Phone/Tablet ║
║ │ ║
║ ▼ ║
║ 💬 Feishu / Telegram / Slack / Discord / ... ║
║ │ ║
║ ▼ ┌──────────────────────┐ ║
║ ⚡ DigitalMe ──────────────► │ 🖥️ Web Dashboard │ ║
║ │ │ Heartbeat ♥♥♥♥♥♥♥ │ ║
║ │ │ Sessions: 3 │ ║
║ │ │ Uptime: 7d 14h │ ║
║ ▼ └──────────────────────┘ ║
║ 🤖 Claude Code / Codex / Gemini CLI / Cursor ║
║ │ ║
║ ▼ ║
║ 📂 Your Codebase ║
║ ║
╚══════════════════════════════════════════════════════════════╝
- 6 AI Agents — Claude Code, Codex, Cursor, Gemini CLI, Qoder, OpenCode
- 8 Chat Platforms — Feishu, DingTalk, Telegram, Slack, Discord, LINE, WeChat Work, QQ
- Persistent Sessions — Claude Code process stays alive, no cold-start per message
- Multi-session — multiple conversations per user, switch freely with
/listand/switch - Slash Commands —
/new,/model,/mode,/stop,/help, and more - Permission Modes — default, acceptEdits, plan-only, YOLO
- Voice & Images — speech-to-text, screenshot analysis via multimodal support
- Scheduled Tasks — cron jobs described in natural language
- Provider Management — multiple API keys, switch models at runtime
- Real-time Dashboard — precision dark-themed UI with SVG heartbeat line, accessible from any browser
- Heartbeat Monitor — periodic health checks with visual history chart
- Idle Session Reminder — auto-reminds users when sessions go idle, repeating until response
- Smart Status Detection — heartbeat degrades to warning when idle reminders get no response
- Remote Screenshot —
/screenshotcommand captures your screen and sends it to chat - File Sendback —
/sendbacksends files to chat; Claude Code auto-sends generated files (PDF, images, etc.) - Task Completion Notify — automatic notification when Claude Code finishes a task with tool usage summary
- Local Voice Recognition — speech-to-text via local whisper.cpp model, no API key needed
- REST API — query system status, engine health, session activity programmatically
The built-in web dashboard provides real-time visibility into your DigitalMe instance:
- System Status — healthy / degraded / unhealthy at a glance
- KPI Cards — uptime, active projects, session count, version
- Engine Table — agent type, connected platforms, session count per engine
- Session Activity — per-session last message time and idle duration
- Heartbeat Strip — visual bar chart of health checks (green = active, amber = idle warning, red = down)
- Auto-refresh — updates every 6 seconds
- Go 1.22+
- Claude Code installed and authenticated (
claudecommand available in terminal) - A messaging platform bot configured (see Feishu Setup Guide below)
git clone https://github.com/24kchengYe/DigitalMe.git
cd DigitalMe
go build -o digitalme ./cmd/cc-connect/Create ~/.cc-connect/config.toml:
language = "zh" # "en", "zh", "ja", "es"
[[projects]]
name = "my-project"
[projects.agent]
type = "claudecode" # or "codex", "cursor", "gemini", "qoder", "opencode"
[projects.agent.options]
work_dir = "/path/to/your/project"
mode = "bypassPermissions" # "default", "acceptEdits", "plan", "bypassPermissions"
# Pick your platform (at least one)
[[projects.platforms]]
type = "feishu"
[projects.platforms.options]
app_id = "cli_xxxxxxxxxx"
app_secret = "your-app-secret"
# ── Monitoring ──
[webui]
enabled = true
addr = "0.0.0.0:9315"
heartbeat_interval = 30 # seconds
[idle]
enabled = true
idle_minutes = 20 # remind after N minutes idle
# ── Voice Recognition (optional) ──
[speech]
enabled = true
provider = "local" # "local", "openai", "groq"
language = "zh"
[speech.local]
exe_path = "/path/to/whisper-cli"
model_path = "/path/to/ggml-base.bin"./digitalmeOpen http://localhost:9315 for the dashboard.
Step-by-step guide to connect DigitalMe with Feishu (飞书). Takes about 10 minutes.
- Go to Feishu Open Platform and log in
- Click "Create Custom App" (创建企业自建应用)
- Fill in:
- App Name:
DigitalMe(or any name you like) - Description: AI coding assistant bridge
- App Icon: upload any icon
- App Name:
- Click Create
- In the app dashboard, go to "Credentials & Basic Info" (凭证与基础信息)
- Copy the App ID (格式:
cli_xxxxxxxxxx) - Copy the App Secret
- Paste both into your
config.toml:
[projects.platforms.options]
app_id = "cli_xxxxxxxxxx" # ← your App ID
app_secret = "your-app-secret" # ← your App Secret- In the left sidebar, go to "Add Capabilities" (添加应用能力)
- Click "Bot" (机器人) → Add
- This enables your app to receive and send messages
- Go to "Event Subscriptions" (事件订阅) in the left sidebar
- Choose connection method: Select "WebSocket" (长连接) — this is critical!
- WebSocket mode means no public IP needed, no webhook URL required
- Your local machine connects outbound to Feishu servers
- Add the following event:
im.message.receive_v1— Receive messages
Go to "Permissions & Scopes" (权限管理) and add these permissions:
| Permission | Scope ID | Purpose |
|---|---|---|
| Send messages as bot | im:message:send_as_bot |
Send replies to users |
| Read private messages | im:message.p2p_msg:readonly |
Receive user messages |
| Upload images | im:resource |
Screenshot and image features |
Tip: Search for the scope ID in the search box to find each permission quickly.
Optional permissions (for advanced features):
| Permission | Scope ID | Purpose |
|---|---|---|
| Upload files | im:file |
/sendback file sending (if im:resource alone doesn't work) |
| Get user info | contact:user.base:readonly |
Display user names in logs |
- Go to "Version Management" (版本管理与发布)
- Click "Create Version" (创建版本)
- Fill in version number (e.g.,
1.0.0) and update description - Set availability: choose which users/departments can use the bot
- Click "Submit for Review" (提交审核)
- If you are the org admin, approve it immediately in the admin console
- Open Feishu on your phone or desktop
- Search for your bot name (e.g.,
DigitalMe) - Start a private chat with it
- Make sure
digitalmeis running on your computer - Send a message — you should see Claude Code respond!
| Problem | Solution |
|---|---|
| Bot doesn't respond | Check that digitalme is running; check terminal logs for errors |
permission denied error |
Go back to Step 5 and add the missing permission scope, then re-publish |
event not received |
Make sure you selected WebSocket mode (not Webhook) in Step 4 |
| Messages delayed | Normal on first message — Claude Code needs ~5s to start a session |
| Voice messages not working | Install ffmpeg + whisper.cpp, enable [speech] in config.toml |
📱 Feishu App (your phone)
│
│ WebSocket (outbound from your machine, no public IP needed)
│
▼
⚡ DigitalMe (on your PC/server)
│
▼
🤖 Claude Code CLI (persistent process)
│
▼
📂 Your Codebase
Key points:
- No public IP required — WebSocket connects outbound from your machine to Feishu servers
- No webhook URL — unlike Slack or Telegram webhook mode
- Always-on — as long as
digitalmeis running, the bot is active - Multi-session — use
/newto create multiple conversations,/listto switch
| Endpoint | Description |
|---|---|
GET /api/status |
System health, version, uptime, OS info |
GET /api/engines |
Engine list with agent type, platforms, sessions |
GET /api/heartbeat |
Last 100 heartbeat check records |
GET /api/activity |
Session activity with idle times |
| Feature | Claude Code CLI | OpenClaw | DigitalMe |
|---|---|---|---|
| AI coding agent | Yes | Yes | Yes (6 agents) |
| Web UI | No | Yes | Yes (dark theme) |
| Mobile access via chat | No | No | Yes (8 platforms) |
| Persistent sessions | Yes | Yes | Yes |
| Heartbeat monitoring | No | No | Yes |
| Idle reminders | No | No | Yes |
| Remote screenshot | No | No | Yes |
| File sendback | No | No | Yes |
| Task completion notify | No | No | Yes |
| Local voice recognition | No | No | Yes |
| Multi-platform chat | No | No | Yes |
| Self-hosted | Yes | Cloud | Yes |
| Command | Description |
|---|---|
/new |
Start a new session |
/list |
List all sessions |
/switch <id> |
Switch to a session |
/stop |
Stop the current agent process |
/model <name> |
Change the AI model |
/mode <mode> |
Change permission mode |
/screenshot /ss |
Capture screen and send to chat |
/sendback <path> |
Send a file to chat (PDF, images, etc.) |
/version |
Show version info |
/help |
Show all commands |
- Language: Go 1.22+
- Agent SDK: Claude Code CLI, Codex CLI, Cursor, Gemini CLI
- Platforms: Feishu SDK (WebSocket), Telegram Bot API, Slack API, Discord Gateway, and more
- Dashboard: Embedded HTML with glassmorphism CSS, vanilla JS, REST API backend
- Storage: SQLite-based session persistence
/sendbackcommand: send files (PDF, images, xlsx, etc.) to chatcc-connect sendbackCLI: Claude Code proactively sends generated files back to user- Task completion notification: automatic summary when Claude Code finishes (tools used, duration)
- Local voice recognition via whisper.cpp — no API key, no server, fully offline
FileSenderinterface for platform file upload- Feishu file upload and send support
- Agent system prompt instructs Claude Code to auto-sendback files
/screenshot(/ss) command: capture your screen and receive it in chatImageSenderinterface for platforms to send image messages- Feishu image upload and send support
- Complete UI redesign: dark theme with SVG heartbeat line chart
- Teal accent palette replacing generic purple gradients
- Live clock, animated status pill, grid texture background
- Staggered entrance animations, responsive two-column layout
- Heartbeat status degrades when idle reminders get no response
- Idle reminder repeats every interval (not just once)
- SVG heartbeat chart: full height = healthy, 40% = degraded, 10% = unhealthy
- Web UI dashboard with real-time status monitoring
- Heartbeat monitor with configurable check interval
- Idle session reminder with configurable threshold
- REST API:
/api/status,/api/engines,/api/heartbeat,/api/activity - Cloudflare Tunnel support for external access
Built on top of the excellent cc-connect multi-agent platform. Enhanced with monitoring, dashboard, screenshot, and reliability features.
BSL 1.1 (Business Source License)
- Personal / non-commercial use: Free
- Commercial use: Paid license required
- Branding: All versions must retain DigitalMe branding (watermark, dashboard footer, startup banner)
- Change Date: 2030-01-01 (converts to Apache 2.0)
| Feature | Free | Pro |
|---|---|---|
| Text chat | Yes | Yes |
| Multi-session /new /list /switch | Yes | Yes |
| Permission handling | Yes | Yes |
| Basic commands /model /mode /help | Yes | Yes |
| Voice recognition | - | Yes |
| /sendback file transfer | - | Yes |
| /cron scheduled tasks | - | Yes |
| Web Dashboard | - | Yes |
| /screenshot | - | Yes |
| Task completion notify | - | Yes |
| Message watermark | Every 5 msgs | Every 5 msgs |