环境搭建与调试
本文档带你从零开始搭建 Pi 的本地开发环境,并学会用断点追踪一次输入。内容基于 Pi v0.85.1。
第一步:克隆与安装
上游是 npm workspaces。安装时不要跑依赖的生命周期脚本:
npm run check 做 lint、类型检查和依赖/导入检查,不会跑 E2E 测试。这是改完代码后的标准验证。
Node.js 要求 >= 22.19.0。官方开发文档还会用 npm run build 和 ./pi-test.sh 从源码启动;读码阶段直接 tsx 也够用。
第二步:先建立一张地图
仓库比四个核心包更大,但读 pi 命令本身时,先盯这些目录:
同一仓库里还有 chord、telemetry、protocol/client/server、session-backends、evals。它们服务插件、遥测、实验性远程 harness 和评估,不是读 pi hello 的起点。
第三步:直接运行源码
日常调试不必先编译。两种常见方式:
发布构建使用 tsgo:
第四步:VS Code 断点调试
在仓库根目录创建 .vscode/launch.json:
关键断点
第五步:理解 TypeScript 执行方式
Pi 使用 Node.js strip-only 模式(tsx 或 tsgo):
- 类型注解被擦除,不生成额外 JS emit。
- 不能使用需要 emit 的语法:
enum、namespace、参数属性。 - 类必须用显式字段 + 构造函数赋值。
第六步:运行测试
不要直接跑根目录 npm test。完整套件包含 E2E,需要 API key,也会消耗 token。单个文件用 vitest:
下一步
→ 从终端到 TUI — 理解输入 pi 后发生了什么

