OpenCode 电报机器人
通过电报远程控制 OpenCode 编码代理,在本地运行,支持定时任务和语音交互。
- Star 数
- ★ 1.3k
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 64/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 需要在外出时通过手机向本地 OpenCode 实例发送编码任务的开发者。
- 不适合
- 不使用 OpenCode CLI 的团队
- 无法在本地运行 OpenCode 服务器或固定端口的用户
- 源码审查
- 64/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
OpenCode Telegram Bot 是一个运行在本地机器上的 Telegram 客户端,用于远程控制 OpenCode CLI。它通过本地 OpenCode API(默认 localhost:4096)与 Telegram Bot API 通信,无需暴露任何端口。支持创建和管理会话、切换模型、在 Plan/Build 模式间切换、查看子代理进度、运行自定义命令和技能、管理 git worktree 以及操作文件。内置定时任务功能,使其成为 OpenCode 用户的轻量级 OpenClaw 替代品。该机器人通过用户 ID 白名单强制安全,并支持多语言本地化,包括英语、中文、俄语等。
机器人连接本地 OpenCode 服务器(opencode serve)和 Telegram Bot API,通过 Telegram 消息发送提示词给编码代理,并将结果(代码文件)返回给用户。具体操作包括:使用 /new 创建新会话、/sessions 切换会话、/status 查看服务器和模型状态、/model 切换模型(从收藏和历史中选择)、/plan 和 /build 切换代理模式、/commands 运行自定义命令、/skills 运行技能、/worktree 切换 git worktree、/ls 浏览文件、/task 创建定时任务。还支持语音消息(通过 Whisper API 转写)、文件附件(图片、PDF 等)、消息队列和上下文压缩。
- 需要在外出时通过手机向本地 OpenCode 实例发送编码任务的开发者。
- 希望为 OpenCode 设置定时任务,例如夜间自动运行代码审查或维护脚本的用户。
- 希望在 Telegram 中实时跟踪多个 OpenCode 会话并接收后台通知的团队。
- 需要快速切换模型或代理模式,而无需在本地打开 TUI 的高级用户。
- 希望利用语音输入快速记录编码想法,并通过 TTS 接收语音回复的移动端用户。
- 需要管理多个 git worktree 并通过 Telegram 在它们之间切换的开发者。
如何安装或部署这个 Agent?
- 在 Telegram 中通过 @BotFather 创建机器人并获取机器人令牌。 2. 获取你的数字用户 ID(通过 @userinfobot)。 3. 在本地机器上安装 Node.js 22.14+ 和 OpenCode CLI。 4. 运行
opencode serve启动本地 OpenCode 服务器。 5. 使用 npx 运行机器人:npx @grinev/opencode-telegram-bot@latest。 6. 首次运行时,按照交互式向导输入语言、机器人令牌、用户 ID 和 OpenCode API URL。
如何使用这个 Agent?
安装并配置后,在 Telegram 中打开机器人,发送任意文本消息作为编码提示。使用 /help 查看所有命令,/status 检查服务器和会话状态。要跟踪实时会话,启动 OpenCode 时需使用固定端口:opencode --port 4096 或 opencode serve --port 4096。对于定时任务,使用 /task 创建,/tasklist 管理。可以在 /settings 中调整消息队列、语音回复等运行时设置。
这个 Agent 有哪些优点和局限?
- 无需开放端口或暴露 API,仅通过出站 Telegram 连接,安全性高。
- 支持定时任务,可作为轻量级 OpenClaw 替代品,适合自动化编码流程。
- 丰富的远程控制功能:模型切换、会话管理、自定义命令、技能、worktree 切换等。
- 支持语音输入和 TTS 音频回复,增强移动端使用体验。
- 严格依赖 OpenCode 生态,仅适用于 OpenCode CLI,不能用于其他编码代理。
- 需要用户手动运行本地 OpenCode 服务器,且默认端口固定为 4096,配置略显繁琐。
- 定时任务使用固定代理模式(build),不支持自定义其他代理模式。
- 语音转写依赖外部 Whisper API,需要额外配置 API 密钥。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenCode 电报机器人 当前 | 64 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.3k | 1 天前 | TypeScript | — |
| Ivy Tendril | 56 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 203 | 1 个月前 | C# | Codex · Claude Code |
| NeuroSquad 终端控制台 | 76 · 表现良好 | 命令行工具免费 + 模型费 | ★ 53 | 5 天前 | TypeScript | Codex · Claude Code |
| CC-Connect | 60 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 16k | 3 天前 | Go | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:用户ID白名单限制访问,命令需确认(如自定义命令),数据流透明(仅与本地OpenCode和Telegram API通信),敏感数据(token、密码)通过环境变量管理并警告保密,依赖有固定版本但未提供安全审计,外部影响限于本地服务器和Telegram,支持回滚(/messages revert),来源归属明确(MIT许可证和作者)。扣分:依赖安全未提供漏洞扫描或审计证据,外部影响未明确限制网络范围。
证据显示:代码结构一致,测试覆盖格式化函数,依赖版本固定,错误消息有文档(如超时标记失败)。扣分:未提供运行时错误处理细节,依赖可用性未验证。
证据显示:面向开发者,支持多平台和多种场景(远程编码、定时任务),能力边界清晰(命令列表),触发精确(仅当无阻塞交互时发送提示),环境适配良好(Node版本、系统支持)。扣分:未提供详细的环境配置示例。
证据显示:信息架构清晰(README、文档、测试),安装说明详细(npx、全局安装),命名稳定(命令和变量),有示例和FAQ(README),已知限制部分提及(如定时任务限制),许可证MIT,版本和变更日志有(package.json版本、发布工作流),维护责任明确(作者和社区)。扣分:已知限制部分不完整,变更日志未直接提供。
证据显示:输出可用(代码作为文件发送),边际价值高(远程监控、定时任务),成本效益合理(免费开源)。扣分:未提供性能或资源消耗数据。
证据显示:README中的功能描述与代码和测试一致,测试覆盖部分功能,事实与推断分离(README区分计划功能)。扣分:跨来源验证不足,仅依赖单一仓库。
- 依赖安全未提供漏洞扫描或审计证据,建议检查依赖版本和已知漏洞。
- 外部影响范围未明确限制网络,确保本地OpenCode服务器仅监听本地接口。
- 已知限制部分不完整,建议查看完整文档。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Changes - Named nested launches — when a subagent launches another one, its card's activity line now says which task it started, as in 🤖 Running Task: Count Kotlin files, and compact mode names the launched task the same way. - Shorter execute lines — long code in OpenCode V2 Code Mode execute calls is cut in the chat the same way long bash commands are, so a big script no longer floods the conversation. …在 GitHub 查看 ↗ -
发布说明摘录
Changes - Prebuilt Docker images — stable releases are now published as multi-arch (linux/amd64, linux/arm64) images on ghcr.io/grinev/opencode-telegram-bot, so you can pull the bot instead of building it locally. ([@mitchellhuang](https://github.com/mitchellhuang)) - Docker health check — the Docker image now reports the container as unhealthy when the bot stops responding, through a loopback-only health endpoint that also tells whether OpenCode is reachable. ([@iagorobo24-hub](https://github.com/iagorobo24-hub)) Fixes …在 GitHub 查看 ↗ -
发布说明摘录
Fixes - No live polls for questions that already ended — a poll delayed by Telegram rate limits no longer appears with live buttons after its question was cancelled or answered elsewhere, and an answer that fails to reach OpenCode keeps the poll answerable with a visible outcome instead of being silently lost. - Queue buttons clear after a reconnect on OpenCode V2 — messages the agent has already picked up no longer keep their ❌ queue buttons on the reply keyboard after OpenCode's event stream reconnects. …在 GitHub 查看 ↗