MichaelKinsy/PiG
PiG (Pi in Go) is a faithful Go port of upstream Pi, the TypeScript codebase behind the Pi coding agent. It is a parity-bound translation, not a rewrite: upstream behavior is the contract, and Go is the implementation language.
PiG – 用 Go 原生打造的 Pi 编码代理程序版本
这是什么
- PiG 是 Pi 终端型编码助手的重新实现,用 Go 编写并编译为单一原生二进制文件。它旨在与原始 Pi(固定于版本 0.87.1)保持行为兼容,同时让用户无需 Node.js 运行时即可运行代理程序。
- 与 Pi(TypeScript)兼容的扩展功能可原封不动地运行,开发者也可以使用 Go、Rust 或 Python 编写新的扩展功能。
为何重要
- 原始 Pi 是一个轻量级、由 AI 驱动的编码代理程序,存在于终端中,可以回答问题、生成代码并运行工具。PiG 让相同的体验启动更快、更容易安装在服务器或 CI 环境中,并可打包为单一可执行文件。
- 通过与上游 Pi 源代码保持严格的兼容性映射,PiG 可以作为偏好 Go 静态二进制文件或需要将代理程序嵌入其他 Go 程序的用户的直接替代方案。
如何获取
| 平台 | 安装方式 |
|---|---|
| macOS / Linux | curl -fsSL https://pi-in-go.dev/install.sh | sh |
| Windows (PowerShell) | `irm https://pi-in-go.dev/install.ps1 |
| 任何平台 (Node) | npm install -g @pi-in-go/pig |
| 任何平台 (Go) | go install github.com/MichaelKinsy/PiG/cmd/pig@latest |
| 手动 | 从 GitHub Releases 页面下载发布存档,或从源代码构建(需要 Go 1.27.1)。 |
快速开始
cd /path/to/your/project
pig # 启动交互式代理程序
/pig login # 提供 OpenAI(或其他)API 密钥
# 现在您可以要求代理程序编写代码、解释文件等。
/login 命令默认会遮蔽密钥;您可以在 /settings 中禁用遮蔽。
关键概念
- Piglet – 以 YAML 描述的扩展功能、技能和提示组合,可以打包成自己的可执行文件。仓库附带一个默认的 PiG Standard piglet(
piglets/standard/pig-standard.yaml)。 - 扩展 SDK – 用于以 Go、Rust、Python 或 TypeScript 编写扩展功能的公开包。使用
pig extension init <dir>创建新的扩展功能。 - 对等层 – 仓库包含完整的映射(
PORT_MAP.md)和测试覆盖率(parity/coverage.md),用于验证 Go 代码的行为与原始 Pi 源代码一致。差异记录在DIVERGENCES.md中。 - 安全边界 – PiG 以调用用户的权限运行,且不对模型输出或执行的工具进行沙箱隔离。用户应使用容器或虚拟机隔离不受信任的扩展功能。
项目结构(高层级)
agent/– 核心代理程序循环和会话处理。ai/– 提供者适配器、模型目录、认证辅助工具。coding/– 编码代理程序功能、扩展合约和“Piglet”打包的 SDK。tui/– 终端 UI 组件。extensions/– 适用于 Go、Rust、Python 和 TypeScript 的语言特定 SDK。tests/– 针对上游 Pi 的集成和兼容性测试。docs/– 公开文档网站(位于 https://pi-in-go.dev)。
开发与验证
make check运行主要测试门;make verify刷新对等覆盖率。make upstream-mirror获取 PiG 所固定的确切 Pi 源代码。- CI 徽章显示持续集成、CodeQL 安全扫描、OpenSSF 分数卡和最佳实践合规性。
许可与治理
- 以 MIT 许可(请参阅
LICENSE)。 - 项目遵循开放治理模式(请参阅
GOVERNANCE.md和MAINTAINERS.md)。 - 欢迎贡献;请参阅
CONTRIBUTING.md了解流程。
了解更多
- 完整文档:https://pi-in-go.dev/docs/latest
- 上游 Pi 参考:https://github.com/earendil-works/pi
- 社区:Discord 邀请、Reddit 社区,以及专属的 X(Twitter)账号。
重点总结:PiG 提供与原始 Pi 相同的 AI 驱动终端编码助手体验,但作为一个快速、单一二进制文件的 Go 程序,可通过脚本、npm 或 go install 安装,并支持多种语言扩展。
相关
- 项目
- 项目
- 项目
- 项目