Mã nguồn mở bởi DietrichGebert
Ponytail là một prompt dạng skill và plugin mã nguồn mở, khiến trợ lý lập trình AI viết ít code hơn: tận dụng thứ đã có trong dự án, thư viện chuẩn và tính năng sẵn của nền tảng trước khi tự viết mới. Plugin cài được vào Claude Code, Codex, OpenCode, Cursor và nhiều trợ lý khác.
Ảnh và video lấy từ README của dự án trên GitHub, bản quyền thuộc nhóm phát triển.
Kiểm tra tự động ngày 04/11/2026 từ dữ liệu GitHub, OSV.dev và docker-compose. Đây không phải chứng nhận bảo mật; Tino không phát triển hay bảo trì repo này.
Trợ lý AI hay viết thừa: cài thêm thư viện hoặc tự dựng cả một thành phần trong khi dự án đã có sẵn thứ tương tự. Ponytail đưa vào trợ lý một bậc thang câu hỏi trước khi viết code: việc này có cần không, dự án đã có chưa, thư viện chuẩn hay tính năng của nền tảng có làm được không, dependency đã cài có dùng được không, có viết được một dòng không. Chỉ khi không bậc nào đáp ứng mới viết phần tối thiểu, kèm một test nhỏ nếu có logic.
README nhấn mạnh quy tắc không phải là ít token nhất: không bao giờ cắt kiểm tra dữ liệu đầu vào, xử lý lỗi, bảo mật hay trợ năng. Code có nhánh, vòng lặp, bộ phân tích, tiền hoặc bảo mật phải để lại một test nhỏ. Mỗi câu trả lời kết thúc bằng phần đã bỏ qua hoặc chưa kiểm tra.
Về con số: tác giả công bố bản 5 cho ra ít hơn khoảng một nửa số dòng code và nhanh hơn khoảng 41%, đo trong Claude Code trên 39 task, mỗi task 5 lần. Đây là benchmark tác giả tự chạy, kết quả với dự án của bạn có thể khác.
Lõi của Ponytail là một file prompt (skills/ponytail/SKILL.md), bản rút gọn là AGENTS.md. Phần còn lại của repo nạp prompt đó vào từng trợ lý. Với Claude Code và Codex, plugin chạy hai hook nhỏ bằng Node.js và mặc định chèn bộ quy tắc vào cả các subagent. Mã nguồn theo giấy phép MIT.
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytailcodex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytailopencode plugin add @dietrichgebert/ponytailgit clone https://github.com/DietrichGebert/ponytail
node ponytail/scripts/cursor-hooks.js installnpx skills add DietrichGebert/ponytailLệnh chép từ README của dự án. Đọc kỹ trước khi chạy và đối chiếu với README mới nhất, vì lệnh có thể đổi theo phiên bản.
| Mục | Ý nghĩa |
|---|---|
PONYTAIL_DEFAULT_MODE | Mức mặc định cho phiên mới: lite, full, ultra hoặc off (mặc định full) |
~/.config/ponytail/config.json | File cài đặt tuỳ chọn, trường defaultMode; trên Windows là %APPDATA%\ponytail\config.json |
PONYTAIL_SUBAGENT_MATCHER | Biểu thức regex chọn loại subagent được chèn quy tắc; không đặt thì chèn vào mọi subagent |
README không nêu lệnh cập nhật riêng, cập nhật theo cơ chế plugin của từng trợ lý.
Khi gỡ: chạy node scripts/uninstall.js trước, rồi mới gỡ plugin (Claude Code: /plugin remove ponytail; Codex: codex plugin remove ponytail). Script này dọn các file Ponytail ghi bên ngoài thư mục plugin, như cờ chế độ, file config và mục statusLine. Dữ liệu band và board nằm trong ~/.config/ponytail/band/, sao lưu thư mục này nếu muốn giữ lịch sử.
Không. File ~/.config/ponytail/config.json hoặc biến PONYTAIL_DEFAULT_MODE chỉ dùng khi muốn đổi mức mặc định.
Theo README, Ponytail không cắt kiểm tra dữ liệu đầu vào, xử lý lỗi, bảo mật và trợ năng. Dù vậy vẫn nên review diff như mọi thay đổi do AI tạo.
Đó là đánh dấu chỗ cố ý làm tắt và lúc nên xem lại. /ponytail-debt gom chúng thành danh sách. Muốn đổi từ khác hoặc bỏ, ghi trong CLAUDE.md hoặc AGENTS.md của dự án.
Chạy node scripts/uninstall.js trước khi gỡ plugin, vì script nằm trong plugin. Sau đó gỡ bằng lệnh của trợ lý, ví dụ /plugin remove ponytail trong Claude Code.
Tino không phát triển, không sở hữu và không liên kết với Ponytail hay nhóm phát triển DietrichGebert. Tên, logo và nhãn hiệu thuộc về chủ sở hữu tương ứng; việc nhắc tới chỉ để mô tả, không có nghĩa là dự án xác nhận hay hợp tác với Tino.
Ponytail được phân phối theo giấy phép MIT của nhóm phát triển. Tino không bảo đảm về tính năng, bảo mật hay mức độ phù hợp của phần mềm; bạn tự chịu trách nhiệm khi cài đặt, cấu hình và sử dụng.
Lệnh cài và thông tin trên trang lấy từ tài liệu công khai của dự án tại thời điểm cập nhật và có thể đã thay đổi. Đọc tài liệu chính thức và sao lưu dữ liệu trước khi chạy trên máy chủ thật.