Sử dụng Ferret

Gửi cho agent

Chạy coding agent của bạn trong terminal tích hợp và giao cho nó một review chỉ với một cú bấm. Claude Code và Codex là các ví dụ thường gặp, nhưng mọi agent trong danh sách bên dưới đều dùng được, kể cả một CLI do bạn tự thêm. Bạn cũng có thể sao chép chỉ dẫn cho một agent chạy ở nơi khác, hoặc đăng review lên GitHub.

#Xem lại các góp ý

Mỗi thẻ trong tab Góp ý hỗ trợ:

  • Sửa trực tiếp tiêu đề và yêu cầu
  • Bật/tắt Gửi / Không gửi
  • Xem bản ghi (tua tới thời điểm đó) và Thay ảnh (chọn khung hình khác)
  • Xác nhận / Đánh dấu cần xem lại, Gộp với mục sau, Xóa

Lọc theo tiến độ hiện hoặc ẩn góp ý theo trạng thái (ví dụ Chỉ những góp ý đang chờ bạn review); Hiện tất cả bỏ bộ lọc.

Phần đầu có Hoàn tác, Mở thư mục, Sao chép cho Agent, Gửi lên GitHub / GitLab, Sắp xếp và Gửi cho Agent. Lời nói không trở thành góp ý được liệt kê trong Lời nói bị loại, nơi Khôi phục thành góp ý đưa nó trở lại.

Tab Góp ý
Tab Góp ý

#Chạy agent trong terminal tích hợp

Khi mở một dự án, Ferret khởi động một tab terminal cho mỗi agent trong Cài đặt → Agent → Khởi chạy khi mở dự án, trong thư mục dự án và ở chế độ thường của agent. Mặc định là Claude Code và Codex:

claude
codex

Bạn có thể chọn bất kỳ agent nào trong danh sách được hỗ trợ (chúng khởi động theo thứ tự bạn chọn), hoặc không chọn agent nào.

Yêu cầu cấp quyền vẫn được giữ

Đăng ký hay clone một dự án không khiến Ferret tin cậy nó. Các agent như Claude Code và Codex sẽ hỏi bạn có tin cậy thư mục ở lần đầu, và tiếp tục hỏi trước khi sửa tệp hoặc chạy lệnh. Để cho agent bỏ qua yêu cầu cấp quyền, phê duyệt và sandbox trong một dự án bạn tin cậy, hãy bật cho dự án đó trong Cài đặt → Agent → Bỏ qua yêu cầu cấp quyền và xác nhận. Ferret thêm cờ bỏ qua riêng của từng agent khi biết cờ đó; agent không có cờ đã biết vẫn giữ yêu cầu xác nhận. Thiết lập này chỉ áp dụng cho các agent bạn tự mở trong thư mục dự án đó; agent tự khởi động khi mở dự án luôn giữ yêu cầu xác nhận. Cờ bỏ qua quyền gõ trong ô tham số sẽ bị bỏ qua.

Nếu không chọn agent nào, một shell thường sẽ mở ra. Menu + mở Terminal mới, khởi chạy bất kỳ agent nào của bạn trong tab mới, hoặc chuyển tới Cài đặt Agent…. Ô tìm kiếm của nó cũng tìm được tab, URL đã lưu và tệp.

Tab hiển thị trạng thái của agent: Đang chạy, Đang chờ nhập, Xong (chưa đọc), Rảnh. Ở thanh bên, dự án có agent đang chạy được đánh dấu, nên bạn thấy được mà không cần chuyển dự án.

Kéo tab và pane của terminal để chia, di chuyển và biến chúng trở lại thành tab.

Kéo để chia. Kéo một tab, hoặc một pane bằng tay nắm của nó (xuất hiện khi tab đã được chia), rồi thả:

  • vào một phần tư bên ngoài ở cạnh của pane: Chia sang trái / Chia sang phải / Chia lên trên / Chia xuống dưới
  • vào giữa pane: Mở dưới dạng tab (pane rời khỏi vùng chia và trở thành tab riêng)
  • vào dải mỏng quanh toàn bộ vùng terminal: Chia toàn bộ vùng sang trái, v.v. (khi có từ 2 pane trở lên)
  • vào thanh tab: Đặt làm tab tại đây

Tiến trình vẫn tiếp tục chạy trong lúc bạn di chuyển, và tab bị bỏ trống sẽ đóng lại. Chia bằng bàn phím:

Thao tácmacOSWindows / Linux
Terminal mới⌘TCtrlT
Chia sang phải⌘DCtrlShiftD
Chia xuống dưới⌘⇧DAltShiftD
Đóng pane / tab⌘WCtrlW

#Các agent được hỗ trợ

Ferret không gắn với một agent duy nhất. Nó nhận biết các coding agent dưới đây: có thể khởi động chúng, phát hiện chúng trong terminal để dùng Gửi cho Agent, và cho biết chúng đã được cài hay chưa. Cài đặt → Agent liệt kê chúng kèm Đã cài đặt / Không tìm thấy, nút Cài đặt khi nhà cung cấp có trình cài đặt một dòng, và lệnh cùng tham số của từng agent.

Không có trong danh sách? Cài đặt → Agent → Thêm agent tùy chỉnh đăng ký bất kỳ CLI hoặc script bọc nào (tên, lệnh, và tùy chọn tên tiến trình dùng để nhận biết nó), hoặc thêm vào agents.customAgents trong settings.json. Agent chạy bên ngoài Ferret có thể dùng Sao chép cho Agent.

Một vài tính năng phụ thuộc vào agent và hiện chỉ dành cho Claude Code và Codex:

  • Tài khoản và mức sử dụng: chuyển qua lại giữa nhiều lần đăng nhập và đồng hồ rate limit ở chân trang.
  • Sắp xếp: chạy bằng thông tin đăng nhập Claude Code hoặc Codex của bạn, hoặc bằng một LLM API do bạn cấu hình.

#Gửi cho Agent / Sao chép cho Agent

Từ tab Góp ý tới agent trong terminal tích hợp bằng Gửi cho Agent.
  1. Bấm Gửi cho Agent. Mặc định (Tự động (tab hiện tại hoặc agent đang chạy)), chỉ dẫn được gửi tới agent trong tab terminal hiện tại, hoặc tới một agent đang chạy. Dùng mũi tên cạnh nút (Chọn agent để gửi) để chọn một agent hoặc tab cụ thể.
  2. Ferret ghi chỉ dẫn vào ô nhập của agent và gửi đi. Theo dõi tiến độ trong terminal.

Nếu chưa có agent nào chạy, Ferret khởi động một agent trước và gửi ngay khi nó sẵn sàng. Không có gì được gửi khi agent đang chờ trả lời về quyền. Hãy trả lời trong terminal trước.

Sao chép cho Agent đưa cùng chỉ dẫn đó vào clipboard cho một agent chạy ở nơi khác (terminal khác, IDE hoặc ứng dụng khác). Chỉ những góp ý được bật Gửi mới được xử lý. Video không bao giờ được đính kèm.

#Kiểm tra nghiệm thu bằng model quyết định

Agent sửa các góp ý và kiểm tra từng góp ý bằng model quyết định cho tới khi tất cả đều đạt.

Bật tính năng này và coding agent của bạn sẽ tự kiểm tra công việc của mình theo từng góp ý trước khi báo Xong. Ferret không tự đánh giá gì cả: nó cung cấp cho agent một model quyết định (bất kỳ API nào tương thích System One) và yêu cầu agent, trong feedback.md, lặp lại cho tới khi mọi góp ý đều đạt.

  1. Agent triển khai các góp ý.
  2. Với mỗi góp ý, agent chụp ảnh màn hình AFTER (cùng viewport và trạng thái trang như ảnh BEFORE) và gửi một request gồm nội dung góp ý, dòng "Done when" của nó và ảnh BEFORE/AFTER tới model quyết định.
  3. Một góp ý đạt khi P(done) ít nhất bằng ngưỡng (mặc định 0.7) và lựa chọn là done. Agent sửa những góp ý còn lại và đánh giá lại tất cả góp ý ở mỗi vòng, và chỉ dừng khi mọi góp ý đều đạt trong cùng một vòng, hoặc vì một lý do chính đáng mà nó phải nêu rõ: không truy cập được API, góp ý nằm ngoài phạm vi, hoặc góp ý bị kẹt với điểm số không đổi.
  4. Danh sách Xong / Chưa xong cuối cùng có điểm số của từng góp ý và số vòng.

Thiết lập trong Cài đặt → Model quyết định và bật Thêm bước kiểm tra bằng model quyết định vào chỉ dẫn cho agent. Preset chỉ điền sẵn các trường; mọi trường vẫn sửa được, và Tùy chỉnh dùng được với bất kỳ API tương thích nào.

PresetURL requestModelKey
Ollama (mặc định)http://localhost:11434/v1/systemoneclef-flash, clef (đọc được ảnh); nimble, tev1 (chỉ văn bản)không cần, miễn phí
Cloudflare Workers AIhttps://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/{model}clef-flash, clef (đọc được ảnh)CLOUDFLARE_API_TOKEN (quyền Workers AI); account ID lấy từ trường nhập hoặc CLOUDFLARE_ACCOUNT_ID
Vercel AI Gatewayhttps://ai-gateway.vercel.sh/typesafe/v1/systemonetypesafe-ai/jev, convaiinnovations/laya (chỉ văn bản)AI_GATEWAY_API_KEY
TypeSafehttps://api.typesafe.ai/v1/systemonejev-latest, jev-preview (chỉ văn bản)TYPESAFE_API_KEY
Tùy chỉnhbất kỳ URL đầy đủ nàobất kỳBearer, header tùy chỉnh, hoặc không có; cho phép thêm header

Với Ollama, hãy cài đặt nó (0.35.1 trở lên cho Clef / Clef Flash) và pull model trong terminal. Ferret không chạy trình cài đặt:

ollama pull clef-flash

Key được lấy từ trường key (lưu cùng các API key khác của bạn), từ một biến môi trường do bạn đặt tên (môi trường của ứng dụng, .env của dự án, hoặc ~/.ferret/.env), hoặc từ apiKey trong settings.json. Header bổ sung có thể đọc giá trị từ biến môi trường bằng ${VAR}.

Cách key được giữ ngoài prompt

Agent không bao giờ thấy key của bạn. Ferret chạy một relay cục bộ trên 127.0.0.1 và cấp cho mỗi terminal FERRET_DECISION_URL (relay, kèm token riêng cho từng terminal), FERRET_DECISION_MODEL và FERRET_DECISION_IMAGES (trong một bản phát hành, các tên cũ MOVIE_ADE_DECISION_* cũng được đặt). Relay thêm key và header rồi chuyển tiếp request nguyên vẹn, nên prompt, feedback.md và transcript của agent không chứa bí mật nào. Các terminal mở sau khi bạn đổi cài đặt sẽ nhận giá trị mới.

Cloudflare khác tài liệu System One ở hai điểm (đã kiểm tra với API thật): ảnh phải là data URI (data:image/jpeg;base64,…, nếu không sẽ nhận 422 "image must be an embedded base64 data URI"), và câu trả lời được bọc dưới dạng { "result": { … }, "success": true } (lỗi trả về dạng { "success": false, "errors": [ … ] }). Preset Cloudflare đặt Mã hóa ảnh thành data URI, agent nhận giá trị này qua FERRET_DECISION_IMAGE_FORMAT, và chỉ dẫn yêu cầu agent đọc .result khi có. Relay chuyển nguyên vẹn cả hai chiều. Để dùng Global API Key thay cho API token, đặt Xác thực thành Không có key và thêm các header X-Auth-Email: ${CLOUDFLARE_EMAIL} và X-Auth-Key: ${CLOUDFLARE_API_KEY}.

Chỉ Clef và Clef Flash đọc được ảnh. Với model chỉ xử lý văn bản, hãy tắt Gửi ảnh BEFORE/AFTER; khi đó agent chỉ đánh giá dựa trên văn bản, kém tin cậy hơn.

Ollama và ảnh lớn

Ollama 0.35.0 giới hạn request /v1/systemone ở 64 KiB, nên request có ảnh chụp màn hình sẽ thất bại với HTTP 413. Chỉ dẫn yêu cầu agent thu nhỏ cả hai ảnh về chiều rộng tối đa 1024px ở dạng JPEG (chất lượng khoảng 70). Nếu vẫn nhận 413, hãy cập nhật Ollama lên 0.35.1 trở lên, hoặc chuyển sang Cloudflare Workers AI.

#Mức sử dụng API ở chân trang

Các lệnh gọi model quyết định đi qua relay, nên Ferret có thể đếm chúng. Mục ở chân trang cạnh đồng hồ mức sử dụng agent hiển thị model quyết định cùng số lệnh gọi, token và chi phí của hôm nay (ví dụ clef-flash · 42 calls · 18.3k tok). Bấm vào để xem theo hôm nay, tháng này, theo dự án, theo model và theo loại (quyết định / chuyển văn bản / sắp xếp), cùng 50 lệnh gọi gần nhất.

Chi phí chỉ hiện khi API báo về (Vercel AI Gateway có báo) hoặc khi bạn đặt giá cho mỗi 1M token trong Cài đặt → Model quyết định; nếu không sẽ hiện "—". Chỉ metadata được ghi lại (thời gian, dự án, model, trạng thái, độ trễ, kích thước, số ảnh, token, chi phí), không bao giờ ghi ảnh, văn bản hay key, trong ~/.ferret/usage/decision-YYYY-MM.jsonl, mỗi tháng một tệp.

#Tùy chỉnh chỉ dẫn

Sửa Cài đặt → Agent → Chỉ dẫn cho Agent. Hai biến được thay thế:

BiếnĐược thay bằng
{{path}}Đường dẫn tuyệt đối của feedback.md
{{relpath}}Đường dẫn tương đối so với dự án: .ferret/reviews/<id>/feedback.md

Để trống để dùng chỉ dẫn mặc định. Độ dài tối đa là 2000 ký tự, và Đặt lại chỉ dẫn khôi phục chỉ dẫn mặc định. Ví dụ:

Read {{relpath}} and the PNGs next to it. Fix only findings marked to send, one commit per finding, then run the tests.

Thiết lập này được lưu dưới dạng agentPrompt trong settings.json.

#Gửi lên GitHub hoặc GitLab (Issue / comment trên PR hoặc MR)

Gửi lên GitHub đăng review thành một issue mới hoặc thành comment trên một pull request đang mở của bạn. Việc xác thực được giao cho GitHub CLI (mở trong tab mới). Ferret không bao giờ đọc hay lưu token.

  1. Cài gh: brew install gh (macOS), winget install --id GitHub.cli (Windows), hoặc xem cli/cli (mở trong tab mới).
  2. Cài đặt → GitHub / GitLab → Đăng nhập trong terminal chạy gh auth login --web -h github.com trong terminal tích hợp.
  3. Bấm Gửi lên GitHub, chọn Tạo Issue mới hoặc một PR, rồi xem lại Tiêu đề và Nội dung (có thể sửa).
  4. Đánh dấu ô xác nhận, rồi bấm Tạo Issue hoặc Đăng comment.

Chi tiết:

  • Repository được lấy từ git remote get-url origin.
  • Ferret chạy gh issue create --repo … --title … --body-file - hoặc gh pr comment <n> --repo … --body-file -.
  • Nội dung là feedback.md đã bỏ các dòng ảnh (ảnh không được tải lên), tối đa 60.000 ký tự.
  • Các PR có thể chọn là PR đang mở của chính bạn (tối đa 30).

Nếu GH_TOKEN hoặc GITHUB_TOKEN được đặt, gh sẽ ưu tiên dùng nó, và panel cài đặt sẽ cảnh báo về điều này.

GitLab. Khi origin là một dự án GitLab (gitlab.com hoặc GitLab tự quản lý), cùng nút đó sẽ gửi lên GitLab qua GitLab CLI (mở trong tab mới) (glab): một issue mới, hoặc comment trên một merge request đang mở của bạn. Đăng nhập bằng Cài đặt → GitHub / GitLab, mục này chạy glab auth login (kèm --hostname cho GitLab tự quản lý) trong terminal tích hợp. Ferret không bao giờ đọc hay lưu token, và sẽ cảnh báo khi GITLAB_TOKEN được đặt.

Lời mời gắn sao. Sau lần Gửi cho Agent đầu tiên, và khi bạn đạt 3, 10 và 30 review đã hoàn tất, Ferret có thể đề nghị bạn gắn sao cho nó trên GitHub. Nó hỏi tối đa 3 lần, cách nhau ít nhất 3 ngày, và không bao giờ hỏi trong lúc đang ghi. Gắn sao trên GitHub gắn sao qua thông tin đăng nhập gh của chính bạn (hoặc mở GitHub nếu không có gh), và Không hỏi lại dừng các lời mời. Bạn cũng có thể gắn sao từ Trợ giúp → Gắn sao Ferret trên GitHub.

#Cài đặt và đăng nhập công cụ CLI

Cài đặt → Công cụ CLI liệt kê các công cụ dòng lệnh mà agent của bạn thường cần, cho biết công cụ nào đã cài và phiên bản của chúng, và chạy lệnh cài đặt hoặc đăng nhập chính thức cho hệ điều hành của bạn trong một tab terminal mới:

  • Lưu trữ Git: gh, glab
  • AI và model: Ollama, Cloudflare wrangler
  • Deploy: Vercel, Netlify, Fly.io, Railway, Heroku
  • Đám mây và dịch vụ: Supabase, Firebase, Stripe, Google Cloud (gcloud), AWS, Azure, Docker

Khi một công cụ không có trình cài đặt chính thức một dòng cho hệ điều hành của bạn, Tài liệu sẽ mở trang cài đặt của nó thay thế. Danh sách tự kiểm tra lại khi quá trình cài đặt kết thúc.

Giúp dịch trang này trên GitHub (mở trong tab mới)