基于 coding-agent-template 重构改造的 AI 编程助手平台,结合腾讯云 CloudBase 打造的 VibeCoding 体验。
- Monorepo 架构: 使用 pnpm workspace 管理多包项目
- 前后端分离:
- Web: React 19 + Vite + Tailwind CSS
- Server: Hono + Node.js
- CloudBase 集成: 腾讯云开发后端服务
- 多 AI Agent 支持: 支持 Claude Code、OpenAI Codex、GitHub Copilot、Gemini 等
- 容器化部署: 支持 TCR(腾讯云容器镜像服务)部署
├── docs/
│ ├── setup.md # setup 详解与排障
│ ├── architecture.md # 系统架构文档
│ ├── scf-session-sharing.md # SCF Session 共享设计
│ └── crontask-cloudfunction-plan.md
├── packages/
│ ├── web/ # React + Vite 前端
│ ├── server/ # Hono 后端服务
│ ├── dashboard/ # CloudBase 管理面板
│ └── shared/ # 共享类型和协议
├── scripts/
│ ├── init.mjs # 主初始化脚本
│ └── setup-tcr.mjs # TCR 镜像仓库配置
├── init.sh # 快速启动入口
└── package.json # Monorepo 配置
packages/web提供面向用户的主交互界面,包括任务、对话、日志和仓库相关能力packages/server负责认证、API 路由、Agent 编排、消息持久化与 SCF Sandbox 管理packages/dashboard提供 CloudBase 资源管理相关界面packages/shared提供前后端共享类型和协议定义- CloudBase 负责数据库、云函数、存储和镜像基础设施,CodeBuddy / 模型层负责智能体能力
更完整的分层图、用户环境绑定机制和任务执行链路见 系统架构文档。
开始前请确认:
- Node.js >= 18
- Docker 已安装并启动
- 已准备 CloudBase 环境和腾讯云 API 密钥
- 已准备 CodeBuddy API Key 或 OAuth 配置
详细要求与排障请先看 Setup 指南。
# 克隆项目
git clone <repository-url>
cd coding-agent-template
# 运行初始化入口
./init.sh./init.sh 负责基础检查,并委托 scripts/init.mjs 完成交互式初始化。
当前初始化流程会依次处理:
- 检查 Node.js
- 检查或安装 pnpm
- 创建
.env.local - 检查 Docker
- 配置 CloudBase 与
TCB_ENV_ID - 生成
packages/server/.env - 安装依赖
- 配置 CodeBuddy 认证
- 配置 TCR
- 初始化数据库
如果你已经准备好环境,也可以直接执行主脚本:
node scripts/init.mjspackages/server/.env是否已生成- CloudBase / CodeBuddy / TCR 配置是否完整
pnpm build是否成功- 启动后
GET /health是否返回{"status":"ok"}
更完整的步骤说明、变量职责与排障方式见 docs/setup.md。
# 同时启动 web 和 server
pnpm dev- Web: http://localhost:5174
- Server API: http://localhost:3001
# 仅启动 web
pnpm dev:web
# 仅启动 server
pnpm dev:serverpnpm buildpnpm start生产模式下,Server 会同时提供 API 和静态文件服务(端口 3001)。
创建 .env.local 文件配置以下变量:
# Session 加密密钥(自动生成)
JWE_SECRET=<base64-encoded-secret>
ENCRYPTION_KEY=<32-byte-hex-string>
# 认证方式
NEXT_PUBLIC_AUTH_PROVIDERS=local# CloudBase 凭证
TCB_SECRET_ID=<secret-id>
TCB_SECRET_KEY=<secret-key>
TENCENTCLOUD_ACCOUNT_ID=<account-id>
# TCR 容器镜像配置
TCR_NAMESPACE=<namespace>
TCR_PASSWORD=<password>
TCR_IMAGE=<image-url># 每日消息限制
MAX_MESSAGES_PER_DAY=50
# Sandbox 最大持续时间(分钟)
MAX_SANDBOX_DURATION=300
# API Keys(可由用户在界面配置)
ANTHROPIC_API_KEY=<key>
OPENAI_API_KEY=<key>
GEMINI_API_KEY=<key>项目支持一键配置腾讯云 TCR 个人版镜像仓库:
pnpm setup:tcr该命令会:
- 自动安装 cloudbase CLI(如未安装)
- 引导完成 cloudbase login 登录
- 初始化 TCR 个人版实例
- 创建命名空间(自动添加随机后缀避免冲突)
- 推送默认镜像到仓库
pnpm setup:tcr --namespace my-app --local-image node:20| 参数 | 说明 | 默认值 |
|---|---|---|
--namespace |
命名空间前缀 | cloudbase-vibecoding |
--local-image |
本地镜像 | ghcr.io/yhsunshining/cloudbase-workspace:latest |
--repo-name |
仓库名称 | sandbox |
--tag |
镜像标签 | latest |
--password |
TCR 密码 | 交互式输入 |
也可通过 .env.local 配置:
TCR_LOCAL_IMAGE=ghcr.io/yhsunshining/cloudbase-workspace:latest
TCR_REPO_NAME=sandbox
TCR_TAG=latest# 开发
pnpm dev # 启动开发环境
pnpm dev:web # 仅启动 web
pnpm dev:server # 仅启动 server
# 构建
pnpm build # 构建所有包
pnpm build:web # 仅构建 web
pnpm build:server # 仅构建 server
# 生产
pnpm start # 启动生产服务
# 代码质量
pnpm lint # ESLint 检查
pnpm type-check # TypeScript 类型检查
pnpm format # Prettier 格式化
# 数据库
pnpm db:generate # 生成迁移
pnpm db:push # 推送 schema
pnpm db:studio # 打开 Drizzle Studio
# TCR
pnpm setup:tcr # 配置容器镜像服务- React 19
- Vite
- Tailwind CSS 4
- shadcn/ui
- Jotai (状态管理)
- Hono
- Node.js
- Drizzle ORM
- SQLite / PostgreSQL
- 云函数
- 云数据库
- 云存储
- 容器镜像服务 (TCR)
- Claude Code
- OpenAI Codex
- GitHub Copilot
- Google Gemini
- @tencent-ai/agent-sdk
本项目 fork 自 Vercel 的 coding-agent-template,主要变化:将 Next.js 全栈架构重构为 Monorepo 前后端分离(React + Vite / Hono),部署平台从 Vercel 迁移到腾讯云 CloudBase,Sandbox 从 Vercel Sandbox 替换为 CloudBase SCF。
欢迎参与贡献。
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/xxx) - 提交修改,确保通过以下检查:
pnpm type-check pnpm lint pnpm format
- 提交 Pull Request
请遵循项目现有的代码风格。日志中不要包含动态值(详见 AGENTS.md 中的安全规则)。
- coding-agent-template by Vercel — 本项目的上游基础
- CloudBase — 云开发基础设施
- CodeBuddy — AI 编程助手能力
- Hono — 轻量级 Web 框架
本项目基于 coding-agent-template (Copyright 2025 Vercel, Inc.) 重构改造,原项目采用 Apache License 2.0 许可。