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

相關

  • 專案
  • 專案
  • 專案
  • 專案