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 安裝,並支援多種語言擴充。
相關
- 專案
- 專案
- 專案
- 專案