Tóm tắt nhanh: Pi là coding agent mã nguồn mở chạy trong terminal, giữ lõi nhỏ và để bạn tự thêm tính năng bằng extension. Pi hợp với bạn nếu bạn muốn một agent đọc hiểu được từ đầu tới cuối và sẵn sàng tự lắp thứ mình cần. Pi không hợp nếu bạn muốn mở ra là có sẵn subagent, plan mode và một hệ thống duyệt quyền dựng sẵn; khi đó Claude Code hợp hơn, hoặc Oh-my-pi (OMP) nếu bạn bật chế độ duyệt tool của nó. MCP (Model Context Protocol) và codemode đã có sẵn từ bản 0.99.0, ngay trước 1.0, còn Pi Durable vẫn là experimental.
Pi ra bản 1.0.0 ngày 1/10/2026 và lên 1.3.0 ngày 15/10/2026. Nếu bạn đang dùng Claude Code hoặc OMP, câu hỏi thực tế không phải Pi làm được gì, mà là có đáng bỏ công học thêm một công cụ nữa không.
Chọn sai công cụ, bạn sẽ mất công theo một trong hai kiểu. Nếu cần mọi thứ có sẵn mà lại chọn Pi, bạn phải tự viết hoặc đi tìm package cho những tính năng công cụ khác đã có. Ngược lại, nếu chỉ cần một công cụ gọn mà lại chọn công cụ nhiều tính năng, bạn phải mang theo nhiều thứ chạy ngầm mà mình không kiểm soát hết.
Viết cho Pi 1.3.0, dựa trên README, docs và CHANGELOG chính thức.
Mình sẽ tách quyết định này thành bốn câu hỏi: Pi hợp với ai, vì sao Pi cố ý bỏ trống một số tính năng, Pi khác OMP và Claude Code ở điểm nào, cuối cùng là phần nào của Pi vẫn còn experimental.
Pi hợp với ai, không hợp với ai
Pi dành cho người muốn tự uốn công cụ theo cách làm việc của mình, không phải để công cụ áp sẵn quy trình. Câu mở đầu README của Pi nói đúng tinh thần này: "Adapt Pi to your workflows, not the other way around."
| Nếu bạn | Pi | Vì sao |
|---|---|---|
| Muốn biết agent đang làm gì | Hợp | Mặc định chỉ bật bốn tool read, bash, edit, write (CLI docs). Tool khác như grep, find, ls, codemode thì bạn tự bật, ví dụ pi --tools +codemode. |
| Muốn workflow theo ý mình | Hợp | Tùy biến qua extension TypeScript, skill, prompt template và theme, rồi đóng gói thành Pi package chia sẻ qua npm hoặc git. |
| Dùng nhiều nhà cung cấp model | Hợp | /login nhận subscription có sẵn (Claude Pro hoặc Max, ChatGPT, GitHub Copilot) hoặc API (Application Programming Interface) key (pi-ai README), và chạy được model local qua llama.cpp (Models). |
| Muốn gọi agent từ script, CI (Continuous Integration) hoặc app khác | Hợp | Có print mode, JSON mode, RPC (Remote Procedure Call) và TypeScript SDK (Software Development Kit), cùng chạy trên một cơ chế agent và session. |
| Cần agent hỏi trước khi chạy lệnh | Không hợp | Pi không có hệ thống quyền dựng sẵn, chạy với quyền của user khởi động nó và không hỏi trước mỗi tool call (Security). Extension mẫu permission-gate và protected-paths có sẵn để bật, nhưng không chạy mặc định và không thay được việc cô lập môi trường. |
| Muốn subagent hay plan mode dùng được ngay | Không hợp | Pi cố ý để hai thứ này ngoài lõi, chỉ có extension mẫu plan-mode và subagent trong thư mục examples. |
| Ngại cài thêm hay viết thêm code | Không hợp | Tính năng ngoài lõi nghĩa là cài package, bật extension có sẵn hoặc tự viết. |
| Mới vibe coding, chưa quen chạy agent trong container | Không hợp | Cô lập môi trường là trách nhiệm của bạn, không phải của công cụ. |
Vì sao Pi cố ý thiếu subagent và plan mode
Vì Pi muốn là một harness nhỏ mà bạn tự lắp thêm. Harness (lớp điều khiển hành vi agent) là toàn bộ phần code nằm quanh model: system prompt, danh sách tool, cách giữ session, cách chạy lệnh. Cùng một model, hai harness khác nhau cho ra hai cách làm việc khác nhau.
README của Pi nói thẳng lựa chọn này: "Pi ships with powerful defaults but skips features like sub-agents and plan mode. Ask Pi to build what you want, or install a package that does it your way." Nghĩa là Pi giữ lõi gọn, còn tính năng nào vượt ra ngoài lõi thì bạn tự dựng hoặc cài package của người khác.
Lấy plan mode làm ví dụ. Trong Claude Code, plan mode có sẵn: agent đọc code, lập kế hoạch và không sửa file mã nguồn cho tới khi bạn duyệt, trừ khi phiên đang cho phép bypass quyền. Còn với Pi, bạn cần một extension tắt các tool ghi file và giới hạn bash ở lệnh chỉ đọc cho tới khi kế hoạch được duyệt. Bạn có thể tự viết extension này, nhờ chính Pi viết hộ, hoặc lấy extension mẫu plan-mode trong repo làm điểm bắt đầu. Phần 4 của series sẽ dựng một extension như vậy từng bước.
Nhờ lõi gọn, bạn cũng dễ nắm luồng chạy của một session. Theo tài liệu How Pi works, mỗi lượt diễn ra như sau:
- Pi dựng request từ system prompt, nhánh session đang active, danh sách tool và cài đặt model.
- Model trả về text và các tool call.
- Pi chạy từng tool call, ghi kết quả vào session.
- Nếu kết quả tool cần model xử lý tiếp, Pi bắt đầu lượt mới; nếu không, lần chạy kết thúc.
Session được lưu thành file JSONL (JSON Lines, mỗi dòng một bản ghi) dạng cây, nên bạn rẽ nhánh từ một điểm cũ mà không mất lịch sử. Khi context đầy, compaction (nén ngữ cảnh) chèn một bản tóm tắt thay cho các tin nhắn cũ trong những request sau, nhưng bản gốc vẫn nằm trong cây. Phần 3 của series sẽ đi sâu vào cơ chế này.
Đổi lại sự gọn gàng đó, phần việc kiểm soát dồn sang bạn. Càng ít thứ chạy ngầm, bạn càng dễ nắm agent đang làm gì. Nhưng những gì công cụ khác làm sẵn, như hỏi quyền trước khi chạy lệnh hay chia việc cho subagent, bạn phải tự lắp hoặc chấp nhận là không có.
Pi, OMP và Claude Code khác nhau ở đâu
Cả ba đều là coding agent chạy trong terminal, nhưng mỗi công cụ chọn một điểm cân bằng khác nhau giữa sự tối giản và tính năng có sẵn. Mình so theo các tiêu chí ảnh hưởng trực tiếp tới việc chọn: độ tối giản, khả năng tùy biến, model, cơ chế duyệt quyền và chi phí. Bảng tổng hợp từ README và tài liệu chính thức của từng công cụ, đọc ngày 18/10/2026, không phải kết quả benchmark.
| Tiêu chí | Pi | Oh-my-pi (OMP) | Claude Code |
|---|---|---|---|
| Hướng tiếp cận | Lõi nhỏ, bạn tự lắp | Fork của Pi, có sẵn nhiều tính năng | Sản phẩm trọn gói của Anthropic |
| Tool có sẵn | read, bash, edit, write; MCP có sẵn (cần thêm server), codemode bật thêm | Nhiều tool dựng sẵn: LSP (Language Server Protocol), debugger, trình duyệt, tìm kiếm | Bộ tool đầy đủ cho đọc, sửa, chạy lệnh, tìm kiếm |
| Subagent và plan mode | Không có trong lõi; có extension mẫu, hoặc cài package | Có subagent, có role plan cho plan mode | Tích hợp sẵn cả hai |
| Hỏi quyền | Không có hệ thống quyền; cô lập toàn bộ Pi bằng container, máy ảo hoặc sandbox | Có chế độ duyệt tool (tools.approvalMode); mặc định yolo tự duyệt cả ghi file lẫn chạy lệnh, write hỏi trước khi chạy lệnh, always-ask hỏi cả trước khi ghi file; policy riêng của tool hoặc của bạn vẫn có thể ghi đè | Có hệ thống quyền theo chế độ và quy tắc: chế độ Manual hỏi trước khi sửa file hay chạy lệnh (trừ một tập lệnh chỉ đọc dựng sẵn), chế độ auto tự duyệt kèm kiểm tra an toàn chạy nền; chế độ khởi động mặc định tùy phiên bản, cách chạy và cấu hình |
| Model | Nhiều provider, subscription, API key, model local | Nhiều provider, định tuyến model theo role | Model Claude của Anthropic |
| Tùy biến | Extension TypeScript, skill, prompt template, theme, package | Extension, hook, skill và cấu hình role | Skill, hook, subagent, plugin, MCP |
| Chi phí | Mã nguồn MIT, không tính phí; bạn trả tiền model | Mã nguồn MIT, không tính phí; bạn trả tiền model | Cần gói Claude, tài khoản Anthropic Console hoặc nền tảng cloud (Amazon Bedrock, Google Cloud Agent Platform, Microsoft Foundry) |
Nguồn: README và docs của Pi, README và tài liệu approval mode của OMP, tài liệu Claude Code, trang subagent, trang quyền, trang chế độ quyền và trang nhà cung cấp bên thứ ba.
Quan hệ giữa Pi và OMP cần nói rõ, vì tên dễ gây hiểu nhầm. README của OMP ghi OMP là "a fork of pi-mono by Mario Zechner, extended with a batteries-included coding workflow", do Stencil Labs phát triển. Pi do Mario Zechner viết, nay được phát triển trong tổ chức earendil-works. OMP không phải một gói extension cài lên Pi, mà là một harness độc lập có release riêng. Nếu bạn thích triết lý thiết kế của Pi nhưng muốn có sẵn đủ tính năng ngay từ đầu, OMP là lựa chọn ở giữa. Series Inside OMP trên site mổ xẻ OMP theo cách tương tự, bắt đầu bằng bài định tuyến model trong OMP.
Claude Code đi theo hướng khác hẳn: đây là sản phẩm trọn gói của Anthropic, gắn với model Claude và tích hợp sẵn subagent, plan mode cùng hệ thống duyệt quyền. Bạn vẫn tùy chỉnh được hành vi qua skill, hook, subagent và plugin, nhưng phần lõi do Anthropic phát triển và kiểm soát. Nếu bạn chỉ dùng model Claude và cần sẵn một lớp duyệt quyền, Claude Code đỡ tốn công thiết lập hơn Pi.
Một lưu ý về chi phí: Pi miễn phí nhưng model thì không. Khi bạn đăng nhập Pi bằng subscription Anthropic, cài đặt warnings.anthropicExtraUsage (bật mặc định) cảnh báo khi lượt dùng có thể tính vào phần usage trả thêm (Settings). Cách định tuyến model để giảm chi phí sẽ là chủ đề của phần 6.
Pi có gì, phần nào còn experimental
Phần bạn dùng hằng ngày là coding agent chạy trong terminal. README không gắn nhãn experimental cho phần này. Nhãn đó nằm ở Pi Durable, gói để dựng sản phẩm agent chạy dài, cùng vài tính năng riêng lẻ mà tài liệu ghi rõ.
Theo CHANGELOG, những thay đổi lớn nhất quanh bản 1.0:
| Bản | Ngày | Thay đổi chính |
|---|---|---|
| 0.99.0 | 29/9/2026 | Đưa MCP vào làm extension dựng sẵn (pi mcp add, stdio, streamable HTTP (Hypertext Transfer Protocol), đăng nhập OAuth) (MCP). Thêm codemode: model viết JavaScript gọi tool khác trong sandbox QuickJS, chỉ output quay về context (Codemode). Virtual model ra mắt với nhãn experimental. |
| 1.0.0 | 1/10/2026 | Giao diện terminal fullscreen mặc định (đặt tuiMode thành "regular" để cuộn như cũ), codemode tốn ít prompt token hơn và gọi được model tạo ảnh. |
| 1.1.0 | 7/10/2026 | --tools nhận +tên hoặc -tên để thêm, bớt tool so với bộ mặc định. |
| 1.2.0 | 12/10/2026 | Gỡ lớp server thử nghiệm chưa từng phát hành; pi-server, pi-protocol, pi-client không còn được release. |
| 1.3.0 | 15/10/2026 | Resume session giữ lại tool đã bật; đổi model giữa phiên thì bỏ phần thinking của model cũ; /share có thêm sessionShareDestination (release notes). |
Earendil có bài You said no MCP về quyết định đưa MCP vào Pi. Phần 5 của series sẽ đi vào chuyện này và cách codemode giữ context gọn khi gọi nhiều tool MCP.
Còn experimental: Pi Durable (
@earendil-works/pi-durable), runtime cho conversation, task và document sống sót qua crash. README của gói ghi: "Experimental. The API changes without notice between releases." Phần lớn những gì bạn chạy trong terminal không mang nhãn này, ngoại trừ vài tính năng tài liệu ghi rõ như virtual model. Nếu định xây sản phẩm trên Pi Durable, hãy tính trước việc API sẽ đổi giữa các bản. Phần 8 sẽ dành riêng cho Pi Durable.
Câu hỏi thường gặp
Ba câu dưới đây là những thứ bạn nên biết trước khi cài Pi lần đầu.
Chạy Pi có an toàn không?
Độ an toàn của Pi phụ thuộc vào môi trường bạn cho nó chạy. Tài liệu Security khuyên coi mọi lệnh và code do model sinh ra là không đáng tin. Tài liệu cũng nói chạy toàn bộ Pi trong container, máy ảo hoặc sandbox thường là cách bảo vệ mạnh nhất. Tính năng project trust chỉ quyết định Pi có nạp cấu hình và extension của một thư mục hay không, chứ không chặn tool call. Tài liệu Containerization hướng dẫn các cách cô lập: Docker thường, Docker Sandboxes, OpenShell và extension Gondolin.
Có cần biết TypeScript mới dùng được Pi không?
Không, để dùng Pi bạn chỉ cần terminal. TypeScript chỉ cần khi bạn viết extension. Ngay cả khi đó, README gợi ý nhờ chính Pi viết extension cho bạn. Bạn vẫn nên đọc lại code trước khi bật, vì extension chạy với cùng quyền như Pi.
Pi có chạy trên Windows không?
Có. Pi có installer cho macOS, Linux và Windows, cần Node.js 22.19 trở lên. Installer cài được Node.js nếu máy chưa có (README).
Nên đọc gì tiếp theo
Điều đáng nhớ nhất từ bài này: chọn Pi khi bạn muốn tự làm chủ harness của mình, chọn OMP hoặc Claude Code khi bạn muốn có sẵn một harness đủ tính năng. Nếu đã chọn Pi, bạn đọc tiếp tùy nhu cầu:
- Muốn thử Pi ngay: phần 2, từ cài đặt, đăng nhập tới một task thật trong repo của bạn, kèm cách chạy Pi an toàn.
- Phiên làm việc kéo dài và agent bắt đầu quên ngữ cảnh: phần 3 (sắp ra), về session và compaction.
Các phần sau đang được viết và sẽ ra dần:
- Muốn có plan mode hoặc hỏi quyền: phần 4, dựng bằng extension.
- Dùng nhiều tool MCP: phần 5, về codemode và MCP.
- Muốn giảm chi phí hoặc tách model theo việc: phần 6, về routing, virtual model và cache.
- Muốn gọi Pi từ script, CI hoặc app khác: phần 7, về print mode, JSON mode, RPC và SDK.
- Muốn dựng sản phẩm agent chạy dài: phần 8, về Pi Durable.
Nếu bạn đang dùng OMP và muốn chạy cả Pi lẫn OMP trên một máy, bài chạy nhiều profile Pi và OMP trên một máy chỉ cách tách cấu hình để chúng không đụng nhau. Hai phần đầu của Inside Pi để public, từ phần 3 trở đi dành cho Subscriber.
Dùng bài này trong agent của bạn
Lấy API keyChép đoạn dưới, dán vào Claude Code, Codex hay agent bạn đang dùng. Agent đọc bài rồi đối chiếu với repo đang mở.
Đọc bài "Pi có hợp với bạn không? Pi so với Oh-my-pi và Claude Code" trên modernEngineer rồi áp dụng vào repo này.
1. Gọi tool content_get của MCP server modernengineer với locale "vi", slug "pi-coding-agent-is-it-for-you". Nếu chưa nối MCP hoặc bị từ chối quyền, đọc thẳng trang https://modernengineer.dev/vi/library/pi-coding-agent-is-it-for-you.
2. Tóm tắt các bước chính của bài, chỉ ra bước nào áp dụng được cho repo này.
3. Đề xuất thay đổi cụ thể và hỏi tôi trước khi sửa file.Nối MCP cho Claude Code (một lần)
claude mcp add --transport http modernengineer \
https://api.modernengineer.dev/mcp \
--header "Authorization: Bearer <API key>"Bài mở cho mọi người: chưa nối MCP thì agent vẫn đọc được thẳng từ link bài.
- Phiên bản
- v1.0.0
- Cập nhật
- 07/10/2026
- Giấy phép
- Bảo lưu mọi quyền
- Slug
- pi-coding-agent-is-it-for-you


