核心功能
tg-canvas 是一个专为大语言模型 Agent 设计的内容展示基础设施。它将 Node.js 服务器与 Telegram Mini App 深度集成,让 AI 能够即时将生成的 HTML、Markdown 或 A2UI 结构化内容推送到用户手机端,无需用户手动复制粘贴或离开 Telegram 环境。
技术架构亮点:
- Telegram 原生集成:基于 Telegram Bot API 与 Mini App 框架,用户通过 Bot 菜单按钮一键进入全屏交互界面
- 多层安全认证:initData HMAC-SHA256 验证 → JWT 会话 → 用户白名单三重防护,确保只有 ALLOWED_USER_IDS 列表内的用户可访问
- 实时推送机制:CLI (
tg-canvas push) 与 HTTP POST/push双通道,支持 HTML/Markdown/A2UI 三种格式,内容通过 WebSocket 即时同步到客户端 - OpenClaw 生态融合:内置
/oc/*代理路径,可将本地 OpenClaw 控制 UI 安全穿透到公网,实现远程 Agent 管理
显著优点:
1. 开箱即用:单仓库包含完整前后端,Cloudflare tunnel 一键暴露 HTTPS 端点,无需域名和证书管理
2. 格式灵活:自动 Markdown→HTML 转换,原生支持 A2UI(Agent-to-User Interface)结构化交互协议
3. 开发友好:热重载推送、health 检查端点、清晰的 CLI 错误提示
潜在局限:
- 托管依赖:必须维持 Node.js 进程与 Cloudflare tunnel 长期运行,适合开发者自用或团队私有部署,不适合完全无服务器场景
- 用户管理粗放:白名单依赖手动配置的 Telegram 数字 ID,无动态邀请或 RBAC 细粒度权限
- 单实例设计:无内置水平扩展或多租户隔离,并发场景需自行架构
安全考量:
作者明确警示 cloudflared 的 loopback bypass 风险——隧道流量在 socket 层伪装成本地 127.0.0.1,因此强制要求 PUSH_TOKEN 作为 push/clear 端点的唯一防线。建议生产环境配合反向代理 IP 白名单或 mTLS 加固。
适合人群: 个人开发者、AI Agent 研究者、需要向 Telegram 用户实时展示生成式内容的产品原型团队。