开发
要求
- Bun 用于工作区安装和脚本
- Node.js 20+
- tmux 和 cloudflared 用于端到端测试
- Daytona API 密钥 + git 凭据 用于沙盒集成测试(可选)
- Playwright 用于 UI 端到端测试
安装
命令行
bun install
运行应用
命令行
bun run dev:beam
此命令会构建 CLI,在端口 8787 上启动本地服务器(可通过 TERMBRIDGE_DEV_PORT 覆盖),使用 tmux 会话 codex(可通过 TERMBRIDGE_DEV_SESSION 覆盖),并启动 Vite 开发 UI,将 /__tb(包括 WebSockets)代理到该服务器。它会打印一个开发兑换 URL,供你在浏览器中打开。设置 TERMBRIDGE_SKIP_BUILD=1 可跳过 CLI 构建。
多个会话
命令行
TERMBRIDGE_SESSIONS=2 bun run dev:beam
也可以使用快捷方式:
命令行
bun run dev:beam:multi
本地 Cookie 模式
dev:beam 会在你未自行设置时设置 TERMBRIDGE_INSECURE_COOKIE=1,因此会话 Cookie 可通过普通 HTTP 使用。直接运行 CLI 且不使用 HTTPS 时,请显式设置它:
命令行
TERMBRIDGE_INSECURE_COOKIE=1 node cli/dist/bin.js --no-tunnel --public-url http://127.0.0.1:8080 --port 8080
测试
命令行
bun run test
test:mocked使用 100% 覆盖率运行单元测试和集成测试。test:cli运行真实的 CLI + UI 端到端测试(tmux + cloudflared + Playwright)。test:cli中的 Daytona 沙盒测试只会从本仓库旁边termbridge-test-app目录中的.env文件读取设置(../termbridge-test-app/.env)。仅当该文件设置了TERMBRIDGE_E2E_DAYTONA=1和TERMBRIDGE_DAYTONA_API_KEY时才会运行。请在那里将TERMBRIDGE_SANDBOX_REPO设置为你可以克隆的仓库;默认测试仓库是私有仓库,还需要TERMBRIDGE_SANDBOX_GIT_USERNAME和TERMBRIDGE_SANDBOX_GIT_TOKEN。
文档
文档是存放在 docs/ 中的纯 Markdown 文件,每个页面都带有 frontmatter,并使用 meta.json 文件指定导航顺序。文档发布于 termbridge.dev。使用以下命令进行验证:
命令行
node scripts/check-docs-content.mjs --root docs --expected-docs 16 --expected-nav 3
对于涉及 docs/ 的拉取请求,文档内容工作流会运行相同的检查。