💻 Code & Trình soạn thảo•Mã nguồn mở•Đang hoạt động

Pi Coding Agent

Coding agent terminal mã nguồn mở, tối giản và có thể tùy biến sâu bằng extension TypeScript, skill, RPC và SDK.

#pi-coding-agent
Danh mục
💻 Code & Trình soạn thảo
Giá
Mã nguồn mở
GitHub Stars
⭐ 110,267
Ngôn ngữ
TypeScript
License
MIT
Ngày thêm
2026-08-14
Tóm tắt từ README GitHub
New issues and PRs from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. See CONTRIBUTING.md. Pi Agent Harness This is the home of the Pi agent harness project including our self extensible coding agent. @earendil-works/pi-coding-agent : Interactive coding agent CLI @earendil-works/pi-agent-core : Agent runtime with tool calling and state management @earendil-works/pi-ai : Unified multi-provider LLM API (OpenAI, Anthropic, Google, …) To learn more about Pi: Visit pi.dev, the project website with demos Read the documentation, but you can also ask the agent to explain itself All Packages Package Description --------- ------------- @earendil-works/chord Standalone application-composition runtime for services, replicated state, RPC, and plugins @earendil-works/pi-telemetry Vendor-neutral telemetry contracts, reference adapter, conformance tests, and typed schemas @earendil-works/pi-ai Unified multi-provider LLM API (OpenAI, Anthropic, Google, etc.) @earendil-works/pi-durable Durable conversation, task, and document runtime @earendil-works/pi-agent-core Agent runtime with tool calling and state management @earendil-works/pi-codin
Xem thêm từ README.md

Đánh giá chi tiết

Tổng quan

Pi là một coding agent chạy trong terminal, nhưng điểm đáng chú ý không nằm ở việc nó cố gom thật nhiều tính năng vào lõi. Dự án tự mô tả mình là một “minimal agent harness”: một khung chạy agent tối giản để lập trình viên tự điều chỉnh bằng extension TypeScript, skill, prompt template, theme và package. Cách tiếp cận này trái ngược với những coding agent đóng gói sẵn plan mode, sub-agent, permission popup và quy trình làm việc cố định.

Ở cấu hình mặc định, mô hình chỉ có các công cụ cơ bản như đọc, ghi, chỉnh sửa file và chạy lệnh shell. Từ nền tảng nhỏ đó, người dùng có thể biến Pi thành công cụ riêng cho từng dự án. Pi hỗ trợ giao diện TUI tương tác, chế độ print/JSON cho script, giao thức RPC qua stdin/stdout và SDK để nhúng agent vào ứng dụng Node.js.

Dự án có giấy phép MIT, phát hành qua npm dưới tên @earendil-works/pi-coding-agent, đồng thời cung cấp script cài đặt cho macOS, Linux và Windows. Chi phí sử dụng phụ thuộc model hoặc gói thuê bao của nhà cung cấp; bản thân Pi là mã nguồn mở.

Tính năng chính

  • Hỗ trợ nhiều model và nhà cung cấp: Pi có adapter cho Anthropic, OpenAI, Google, Azure OpenAI, Amazon Bedrock, Mistral, Groq, xAI, OpenRouter, Ollama/llama.cpp và nhiều dịch vụ khác. Có thể đổi model ngay trong phiên làm việc.
  • Lịch sử dạng cây: Session được lưu thành JSONL với quan hệ cha–con. Lệnh /tree cho phép quay lại một điểm cũ, tạo nhánh khác mà vẫn giữ toàn bộ lịch sử trong cùng file. Session có thể xuất HTML hoặc chia sẻ qua GitHub Gist.
  • Steering khi agent đang chạy: Người dùng có thể gửi chỉ dẫn mới sau tool call hiện tại hoặc xếp một yêu cầu tiếp theo vào hàng đợi, thay vì phải hủy cả phiên.
  • Context engineering rõ ràng: Pi đọc AGENTS.md, CLAUDE.md, system prompt theo dự án, skill tải theo nhu cầu và prompt template. Cơ chế compaction có thể thay thế bằng extension riêng.
  • Extension TypeScript: Extension có thể đăng ký tool, command, phím tắt, event hook và thành phần TUI. Các ví dụ chính thức bao gồm permission gate, bảo vệ path, sandbox, SSH, sub-agent và plan mode.
  • Bốn chế độ vận hành: TUI dành cho làm việc trực tiếp; print/JSON cho automation; RPC cho tiến trình không viết bằng Node.js; SDK cho ứng dụng muốn quản lý session và model runtime bên trong code.
  • Project trust: Tài nguyên cục bộ như .pi/extensions, package và thiết lập dự án chỉ được nạp sau khi thư mục được tin cậy. Chế độ không tương tác có tùy chọn --approve và --no-approve để quyết định rõ ràng.

Stack kỹ thuật và độ trưởng thành

Pi là monorepo TypeScript gồm các package cho LLM API, agent core, TUI, protocol, client/server, SQLite session backend và coding-agent CLI. Tại thời điểm đánh giá, repository có gần 90.000 sao GitHub, hơn 11.000 fork, release v0.84.1 và hoạt động phát triển gần như hằng ngày. Gói npm cũng ghi nhận mức sử dụng lớn, cho thấy dự án không còn ở giai đoạn thử nghiệm nhỏ.

Mình kiểm tra trên commit 9d2ec7ffabe927bfad2214c1cee25b6632a78dcf. Quy trình build và static check chính thức chạy thành công. CI tương ứng trên GitHub cũng hoàn tất thành công. Khi chạy test trong checkout cô lập, phần lớn suite đạt; một test resource-loader bị ảnh hưởng bởi thư mục skill toàn cục có sẵn trên máy kiểm thử, thay vì lỗi logic được tái hiện trong source Pi. Đây là bằng chứng build/test cục bộ và CI, không phải kiểm thử live với mọi nhà cung cấp model.

Điểm mạnh

Điểm mạnh nhất của Pi là không giả vờ rằng một workflow phù hợp với tất cả mọi người. Lõi nhỏ giúp người dùng kiểm soát context, tool và UI thay vì mang theo nhiều hướng dẫn mặc định không cần thiết. Điều này đặc biệt hữu ích với đội kỹ thuật đã có quy trình riêng hoặc muốn xây agent chuyên dụng trên một runtime có sẵn.

Lịch sử dạng cây cũng thực dụng hơn kiểu danh sách hội thoại tuyến tính. Khi thử một hướng sửa code rồi đổi ý, người dùng có thể quay lại và tạo nhánh mà không phải mất phiên cũ. Bốn chế độ tương tác, JSON, RPC và SDK giúp Pi vừa là CLI vừa là khối xây dựng cho automation.

Tài liệu bảo mật của dự án khá thẳng thắn: project trust không phải sandbox; prompt injection từ source code hoặc output build vẫn là rủi ro; extension chạy với quyền đầy đủ của user. Việc mô tả đúng ranh giới này đáng tin hơn các tuyên bố an toàn chung chung.

Hạn chế và rủi ro

Pi không có sandbox tích hợp. Tool bash, thao tác file và extension đều chạy với quyền của tiến trình Pi. Permission gate, protected paths hay sandbox chỉ là extension hoặc cấu hình bổ sung, không phải lớp bảo vệ mặc định. Vì vậy không nên chạy Pi trên repository không tin cậy hoặc máy có credential sản xuất mà không đặt nó trong container, VM hay môi trường cô lập.

Extension và Pi package có thể thực thi code tùy ý. Người dùng cần đọc source, pin phiên bản và chỉ cài từ nguồn tin cậy. Project trust ngăn repository âm thầm nạp extension trước khi được duyệt, nhưng không kiểm soát các lệnh mà model chạy sau khi phiên đã bắt đầu.

Sự tối giản cũng là một đánh đổi: sub-agent, plan mode, todo, background bash và MCP không có sẵn trong lõi. Người thích trải nghiệm “cài xong dùng đủ” sẽ phải chọn package hoặc tự xây extension. Khả năng tùy biến cao kéo theo chi phí duy trì cấu hình riêng.

Trong cây dependency đầy đủ dùng để phát triển, npm audit tại thời điểm kiểm tra báo một advisory mức high ở dependency gián tiếp nanoid với bản vá khả dụng. Tuy nhiên workflow audit production của dự án dùng npm audit --omit=dev đang xanh; vì thế phát hiện này nên được hiểu là vấn đề của cây dependency kiểm thử/phát triển đã quan sát, không phải bằng chứng rằng CLI production có thể bị khai thác.

Phù hợp khi nào

Pi phù hợp với lập trình viên quen terminal, muốn tự kiểm soát model, context và tool; đội kỹ thuật cần nhúng coding agent qua SDK/RPC; hoặc người muốn xây một agent chuyên biệt mà không fork một sản phẩm lớn. Nó cũng hợp với người coi coding agent là “harness để lắp ghép” hơn là trợ lý đóng gói sẵn.

Nếu ưu tiên giao diện IDE, sandbox và permission flow có sẵn, hoặc không muốn bảo trì extension, một coding agent tích hợp nhiều tính năng mặc định sẽ thuận tiện hơn. Với Pi, giá trị lớn nhất xuất hiện khi bạn thực sự muốn biến agent theo workflow của mình — và chấp nhận chịu trách nhiệm cho ranh giới bảo mật đó.