MateCode - Claude Code Telegram Bridge

May 24, 2026 · View on GitHub

通过 Telegram 远程控制 Claude Code。

功能

  • 📱 Telegram 上与 Claude 对话,支持代码高亮和格式化回复
  • 🚀 双模式:Hook 模式(tmux 多路复用)和 Spawn 模式(OpenCC 子进程流式输出)
  • 📡 流式推送:Token 级别实时流式输出,独立 worker 线程避免代理延迟阻塞
  • 🧠 记忆系统:SQLite FTS5 自动记忆 + 外部记忆 + 失败记忆
  • 📊 KV-Cache 优化:复用 Claude 上下文减少 token 消耗

快速开始

# 1. 安装依赖
brew install tmux

# 2. 配置 token
export TELEGRAM_BOT_TOKEN="your_token"

# 3. 启动(默认 hook 模式)
./matecode.sh start

# 4. 使用 spawn 模式(流式输出)
./matecode.sh start --backend opencc

配置

Telegram Bot

在 Telegram 搜索 @BotFather,发送 /newbot 创建 bot,获取 token。

Hook 模式(默认)

cp hooks/send-to-telegram.sh ~/.claude/hooks/
chmod +x ~/.claude/hooks/send-to-telegram.sh

~/.claude/settings.json 中配置:

{
  "hooks": {
    "Stop": [{"hooks": [{"type": "command", "command": "~/.claude/hooks/send-to-telegram.sh"}]}]
  }
}

Spawn 模式

无需配置 hook,直接通过 claude-js spawn 子进程通信。支持:

  • Token 级流式输出(--include-partial-messages
  • 消息原地编辑(Telegram editMessageText)
  • 自动消息分片(>4000 字符)

命令

./matecode.sh start       # 启动
./matecode.sh stop        # 停止
./matecode.sh restart     # 重启
./matecode.sh status      # 状态
./matecode.sh logs        # 日志

Bot 命令

命令功能
/status检查会话状态
/clear清空会话
/continue_继续最近会话
/resume选择历史会话恢复
/stop中断当前生成
/remember <text>保存记忆
/recall [query]搜索记忆
/forget <query/all>删除记忆

记忆系统

基于 SQLite FTS5 的本地记忆,包含三层:

模块文件用途
自动记忆memory.py自动提取 + 智能召回
外部记忆external_memory.py外部知识注入
失败记忆failure_memory.py错误模式学习
export MEMORY_ENABLED=true         # 启用记忆
export MEMORY_MAX_RESULTS=5        # 最大召回数
export MEMORY_MAX_CONTEXT=2000     # 上下文最大字符
export KV_CACHE_ENABLED=true       # KV-Cache 优化
export TELEGRAM_RAW_MESSAGES=true  # 原始消息模式

技术架构

  • 纯标准库:无外部 Python 依赖
  • 长轮询:30s 超时 Telegram getUpdates
  • 流式渲染:独立 worker 线程,节流编辑合并,避免代理延迟(2-5s)阻塞生成
  • 安全:只向外连接,无需公网暴露

文件

文件用途
matecode.sh主启动脚本
bridge.py消息桥接 + 命令路由
opencc_backend.pySpawn 模式:OpenCC 子进程 + 流式渲染
memory.py自动记忆 (SQLite FTS5)
kv_cache.pyKV-Cache 优化

常见命令

tmux a -t claude
tmux source-file ~/.tmux.conf
claude --dangerously-skip-permissions
tmux kill-session -t claude
pkill -f "bridge\.py"

License

MIT