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 了解流程。

了解更多


重点总结:PiG 提供与原始 Pi 相同的 AI 驱动终端编码助手体验,但作为一个快速、单一二进制文件的 Go 程序,可通过脚本、npm 或 go install 安装,并支持多种语言扩展。

相关

  • 项目
  • 项目
  • 项目
  • 项目