$ cat ~/map/pi-extensions-nicknisi.md
pi-extensions (nicknisi)
Nick Nisi 维护的 pnpm monorepo,提供可独立安装的 pi 编码代理扩展包。
extensions✓ 10月16日
事实速查
- GitHub Stars
- ★ 45
- Forks
- 10
- 许可证
- MIT
- npm / 月
- —
- 最后推送
- 2026年10月16日
安装
pi install ~/Developer/pi-extensions/packages/statusline## 速览
Nick Nisi 的 pi 扩展合集——一个 pnpm monorepo,packages/ 下每个包都是带独立 pi manifest、可单独安装的扩展,覆盖侧聊、子代理编排、状态栏与界面打磨。
## 要点
- $Monorepo 布局:packages/ 下每个包都是自带 pi manifest 的独立 pi 扩展(或共享库),想装哪个装哪个。
- $包不发布到 npm,需从本地 checkout 安装;本地路径加入 pi 设置时不复制文件,仓库里的改动在下次启动 pi 时直接生效,用 pi remove <path> 移除。
- $生产力类包含 btw——浮窗里的侧聊 LLM,绝不触碰主 agent 的上下文;codemode 用模型生成的 TypeScript 组合式编排子代理;llm-council 让多个模型并行作答再由 chairman 汇总;另有 subagents、relay、orchestrate(/goal 与 /loop)和 handoff。
- $界面类包含 statusline——页脚展示模型、成本、上下文条、改动行数、用量限额、git PR 链接,并写入 tmux 状态文件;还有 header、composer、recap 和约 1000 条轮换梗句的 spinner。
- $行为类包含 cloak——按 glob 限定的正则规则从 read 工具结果里抹掉密钥;fast 切换更快的推理档;另有 model-switch、session-name、stash,以及把 markdown 和 HTML 渲染成带热重载浏览器页面的 artifacts。
- $packages/shared(@nicknisi/pi-shared)是辅助库而非扩展:一次性 LLM 调用的 getModelProvider、TUI 工具、进程内子代理运行时和声明式 workflow 引擎都在这里。
- $开发用 pnpm,typecheck 走 tsgo(TypeScript 7 原生预览版),配 oxlint 与 oxfmt;@earendil-works/* 作为 peer 依赖,由 pi 运行时在加载时别名到自身模块。
- $不少扩展依赖 pi 内部实现,auto-theme、statusline 的 tmux 集成和 btw 的 fork-to-window 都假定 macOS、tmux 与 ghostty——pi 升级可能弄坏它们。
## 常见问题
Q 怎么只安装其中一个扩展?
先 clone 仓库,再让 pi install 指向包目录——绝对路径(~/Developer/pi-extensions/packages/statusline)或相对设置文件的路径(../pi-extensions/packages/btw)都行。本地路径加入时不复制文件,仓库改动下次启动即生效。
Q 这些包发布到 npm 了吗?
没有。它们是私有的,从 monorepo 的本地 checkout 安装;跨包的辅助代码集中在 packages/shared,以 workspace:* 方式作为 @nicknisi/pi-shared 引用。
Q 运行时配置放在哪里?
在仓库之外——多数包用 ~/.pi/agent/configs/<name>.json,需要配置的包会随包附带示例配置。
## 参考链接
## 相关条目
## 教程
最后更新: 2026年8月31日