Ferret का इस्तेमाल

Agents को भेजना

अपने coding agent को बिल्ट-इन टर्मिनल में चलाएँ और एक क्लिक में उसे review सौंप दें। आम उदाहरण Claude Code और Codex हैं, पर नीचे की सूची का कोई भी agent काम करता है, और आपका खुद जोड़ा गया CLI भी। आप कहीं और चल रहे agent के लिए निर्देश कॉपी भी कर सकते हैं, या review को GitHub पर पोस्ट कर सकते हैं।

#Findings की समीक्षा

Findings टैब का हर कार्ड इन कामों को सपोर्ट करता है:

  • शीर्षक और अनुरोध को वहीं संपादित करना
  • भेजें / न भेजें टॉगल
  • रिकॉर्डिंग देखें (उस समय पर पहुँचता है) और इमेज बदलें (दूसरा frame चुनें)
  • पुष्टि करें / जाँच ज़रूरी के रूप में चिह्नित करें, अगले के साथ मर्ज करें, हटाएँ

प्रगति के अनुसार फ़िल्टर करें स्थिति के आधार पर findings दिखाता या छिपाता है (जैसे केवल वे जो आपकी समीक्षा का इंतज़ार कर रहे हैं); सभी दिखाएँ फ़िल्टर हटा देता है।

हेडर में पूर्ववत करें, फ़ोल्डर खोलें, Agent के लिए कॉपी करें, GitHub / GitLab पर भेजें, व्यवस्थित करें और Agent को भेजें हैं। जो बोली finding नहीं बनी, वह बाहर रखी गई बोली में सूचीबद्ध होती है, जहाँ Finding के रूप में वापस लाएँ उसे वापस ले आता है।

Findings टैब

#बिल्ट-इन टर्मिनल में agents चलाएँ

जब कोई प्रोजेक्ट खुलता है, तो Ferret Settings → Agents → प्रोजेक्ट खुलने पर शुरू करें में चुने गए हर agent के लिए एक टर्मिनल टैब शुरू करता है, प्रोजेक्ट फ़ोल्डर में और agent के सामान्य मोड में। डिफ़ॉल्ट Claude Code और Codex हैं:

claude
codex

इनकी जगह समर्थित सूची से कोई भी agents चुनें (वे उसी क्रम में शुरू होते हैं जिसमें आप उन्हें चुनते हैं), या कोई भी नहीं।

अनुमति पूछना चालू रहता है

किसी प्रोजेक्ट को रजिस्टर या clone करने से Ferret उस पर भरोसा नहीं करने लगता। Claude Code और Codex जैसे agents पहली बार पूछते हैं कि क्या आप फ़ोल्डर पर भरोसा करते हैं, और फ़ाइलें संपादित करने या commands चलाने से पहले पूछते रहते हैं। किसी भरोसेमंद प्रोजेक्ट में agents को अनुमति पूछना, approvals और sandbox छोड़ने देने के लिए, उस प्रोजेक्ट के लिए Settings → Agents → अनुमति पूछना छोड़ें (प्रति प्रोजेक्ट) में इसे चालू करें और पुष्टि करें। जहाँ किसी agent का अपना skip flag ज्ञात है, Ferret उसे जोड़ता है; जिन agents का कोई ज्ञात flag नहीं है, वे पूछते रहते हैं। यह सिर्फ़ उन agents पर लागू होता है जिन्हें आप उस प्रोजेक्ट फ़ोल्डर में खुद खोलते हैं; प्रोजेक्ट खुलने पर शुरू होने वाले agents हमेशा पूछते रहते हैं। Arguments में टाइप किए गए skip-permission flags अनदेखे किए जाते हैं।

अगर कोई agent नहीं चुना गया है, तो एक सामान्य shell खुलता है। + मेन्यू नया Terminal खोलता है, आपके किसी भी agent को नए टैब में शुरू करता है, या Agent सेटिंग्स… पर ले जाता है। इसका search box टैब, सेव किए गए URL और फ़ाइलें भी ढूँढता है।

टैब agent की स्थिति दिखाते हैं: चल रहा है, इनपुट का इंतज़ार, पूरा (नहीं पढ़ा), निष्क्रिय। साइडबार में जिस प्रोजेक्ट में कोई agent चल रहा हो, उस पर निशान लगा होता है, ताकि प्रोजेक्ट बदले बिना आप इसे देख सकें।

टर्मिनल टैब और panes को drag करके विभाजित करना, हिलाना, और वापस टैब बनाना।

Drag करके विभाजित करें। किसी टैब को, या किसी pane को उसके handle से (जो टैब विभाजित होने के बाद दिखता है) drag करें और drop करें:

  • किसी pane के किनारे के बाहरी चौथाई हिस्से पर: बाईं ओर विभाजित करें / दाईं ओर विभाजित करें / ऊपर विभाजित करें / नीचे विभाजित करें
  • किसी pane के बीच में: टैब के रूप में खोलें (pane अपने विभाजन से निकलकर अलग टैब बन जाता है)
  • पूरे टर्मिनल क्षेत्र के चारों ओर की पतली पट्टी पर: पूरे क्षेत्र को बाईं ओर विभाजित करें आदि (जब 2 या ज़्यादा panes हों)
  • टैब बार पर: यहाँ टैब के रूप में रखें

हिलाते समय processes चलते रहते हैं, और खाली रह गया टैब बंद हो जाता है। कीबोर्ड से विभाजन:

कामmacOSWindows / Linux
नया Terminal⌘TCtrlT
दाईं ओर विभाजित करें⌘DCtrlShiftD
नीचे विभाजित करें⌘⇧DAltShiftD
Pane / टैब बंद करें⌘WCtrlW

#समर्थित agents

Ferret किसी एक agent से बँधा नहीं है। यह नीचे दिए coding agents को पहचानता है: यह उन्हें शुरू कर सकता है, Agent को भेजें के लिए उन्हें टर्मिनल में पहचान सकता है, और दिखा सकता है कि वे इंस्टॉल हैं या नहीं। Settings → Agents उन्हें इंस्टॉल है / नहीं मिला के साथ सूचीबद्ध करता है, जहाँ vendor एक-लाइन installer देता है वहाँ इंस्टॉल करें बटन के साथ, और हर एक के command और arguments के साथ।

सूची में नहीं है? Settings → Agents → Custom Agent जोड़ें कोई भी CLI या wrapper script रजिस्टर करता है (एक नाम, एक command, और चाहें तो वह process नाम जिससे उसे पहचाना जाए), या उसे settings.json में agents.customAgents में जोड़ें। Ferret के बाहर चलने वाले agents Agent के लिए कॉपी करें इस्तेमाल कर सकते हैं।

कुछ फ़ीचर agent पर निर्भर हैं और फ़िलहाल Claude Code और Codex तक सीमित हैं:

  • अकाउंट और usage: कई logins के बीच बदलना और फ़ुटर में rate-limit मीटर।
  • व्यवस्थित करें: आपके Claude Code या Codex login पर, या आपके कॉन्फ़िगर किए गए LLM API पर चलता है।

#Agent को भेजें / Agent के लिए कॉपी करें

Findings टैब से Agent को भेजें के ज़रिए बिल्ट-इन टर्मिनल के agent तक।
  1. Agent को भेजें पर क्लिक करें। डिफ़ॉल्ट रूप से (अपने-आप (मौजूदा tab या चल रहा Agent)) यह मौजूदा टर्मिनल टैब के agent को, या किसी चल रहे agent को जाता है। किसी खास agent या टैब को चुनने के लिए बटन के बगल का तीर (भेजने के लिए Agent चुनें) इस्तेमाल करें।
  2. Ferret agent के इनपुट में निर्देश लिखकर उसे submit करता है। प्रगति टर्मिनल में देखें।

अगर कोई agent नहीं चल रहा, तो Ferret पहले एक शुरू करता है और तैयार होते ही भेज देता है। जब agent किसी अनुमति के जवाब का इंतज़ार कर रहा हो, तब कुछ नहीं भेजा जाता। पहले टर्मिनल में जवाब दें।

Agent के लिए कॉपी करें वही निर्देश कहीं और (दूसरे टर्मिनल, IDE या ऐप में) चल रहे agent के लिए clipboard पर रख देता है। सिर्फ़ भेजें पर टॉगल किए गए findings ही शामिल होते हैं। वीडियो कभी शामिल नहीं होता।

#Decision model से स्वीकृति जाँच

Agent findings ठीक करता है और हर एक को decision model से तब तक जाँचता है जब तक सभी पास न हो जाएँ।

इसे चालू करने पर आपका coding agent "पूरा" बताने से पहले हर finding के सामने अपने काम की जाँच करता है। Ferret खुद कुछ भी तय नहीं करता: यह agent को एक decision model (कोई भी System One compatible API) देता है और feedback.md में उसे बताता है कि जब तक हर finding पास न हो, तब तक दोहराता रहे।

  1. Agent findings लागू करता है।
  2. हर finding के लिए वह एक AFTER screenshot लेता है (BEFORE still जैसा ही viewport और पेज की स्थिति) और finding का टेक्स्ट, उसकी "Done when" लाइन और BEFORE/AFTER इमेज के साथ decision model को एक request भेजता है।
  3. कोई finding तब पास होता है जब P(done) कम से कम threshold (डिफ़ॉल्ट 0.7) हो और choice done हो। Agent बाकी को ठीक करता है और हर round में सभी findings को फिर से जाँचता है, और सिर्फ़ तब रुकता है जब एक ही round में हर finding पास हो जाए, या किसी ईमानदार कारण से जो उसे बताना होगा: API तक पहुँच नहीं हो पा रही, कोई finding दायरे से बाहर है, या कोई finding बिना बदले scores के अटका हुआ है।
  4. अंतिम "पूरा / पूरा नहीं" सूची में हर finding के scores और rounds की संख्या होती है।

इसे Settings → Decision model में सेट करें और Agent निर्देशों में decision model जाँच जोड़ें चालू करें। Presets सिर्फ़ fields भरते हैं; हर field संपादित किया जा सकता है, और Custom किसी भी compatible API के साथ काम करता है।

PresetRequest URLमॉडलKey
Ollama (डिफ़ॉल्ट)http://localhost:11434/v1/systemoneclef-flash, clef (इमेज पढ़ते हैं); nimble, tev1 (सिर्फ़ टेक्स्ट)कोई नहीं, मुफ़्त
Cloudflare Workers AIhttps://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run/@cf/cloudflare/{model}clef-flash, clef (इमेज पढ़ते हैं)CLOUDFLARE_API_TOKEN (Workers AI अनुमति); account ID field से या CLOUDFLARE_ACCOUNT_ID से
Vercel AI Gatewayhttps://ai-gateway.vercel.sh/typesafe/v1/systemonetypesafe-ai/jev, convaiinnovations/laya (सिर्फ़ टेक्स्ट)AI_GATEWAY_API_KEY
TypeSafehttps://api.typesafe.ai/v1/systemonejev-latest, jev-preview (सिर्फ़ टेक्स्ट)TYPESAFE_API_KEY
Customकोई भी पूरा URLकोई भीBearer, कोई custom header, या कुछ नहीं; अतिरिक्त headers की अनुमति है

Ollama के लिए उसे इंस्टॉल करें (Clef / Clef Flash के लिए 0.35.1 या बाद का) और टर्मिनल में मॉडल pull करें। Ferret installers नहीं चलाता:

ollama pull clef-flash

Keys key field से (आपकी दूसरी API keys के साथ सेव होती हैं), आपके बताए environment variable से (ऐप का environment, प्रोजेक्ट का .env, या ~/.ferret/.env), या settings.json के apiKey से आती हैं। अतिरिक्त headers ${VAR} के ज़रिए environment variables से मान पढ़ सकते हैं।

Key prompts से बाहर कैसे रहती है

Agents आपकी key कभी नहीं देखते। Ferret 127.0.0.1 पर एक local relay चलाता है और हर टर्मिनल को FERRET_DECISION_URL (relay, हर टर्मिनल के अलग token के साथ), FERRET_DECISION_MODEL और FERRET_DECISION_IMAGES देता है (एक release के लिए पुराने MOVIE_ADE_DECISION_* नाम भी सेट किए जाते हैं)। Relay key और headers जोड़कर request को बिना बदले आगे भेजता है, इसलिए prompts, feedback.md और agent transcripts में कोई secret नहीं होता। Settings बदलने के बाद खोले गए टर्मिनलों को नए मान मिलते हैं।

Cloudflare दो बातों में System One के दस्तावेज़ों से अलग है (live API से जाँचा गया): इमेज data URI होनी चाहिए (data:image/jpeg;base64,…, वरना 422 "image must be an embedded base64 data URI"), और जवाब { "result": { … }, "success": true } में लिपटा होता है (errors { "success": false, "errors": [ … ] } के रूप में आते हैं)। Cloudflare preset इमेज एन्कोडिंग को data URI पर सेट करता है, agents को यह FERRET_DECISION_IMAGE_FORMAT के रूप में मिलता है, और निर्देश उन्हें बताते हैं कि .result मौजूद हो तो उसे पढ़ें। Relay दोनों दिशाओं में सब कुछ बिना बदले आगे भेजता है। API token के बजाय Global API Key इस्तेमाल करने के लिए ऑथेंटिकेशन को कोई key नहीं पर सेट करें और headers X-Auth-Email: ${CLOUDFLARE_EMAIL} और X-Auth-Key: ${CLOUDFLARE_API_KEY} जोड़ें।

सिर्फ़ Clef और Clef Flash इमेज पढ़ते हैं। सिर्फ़-टेक्स्ट मॉडल के साथ BEFORE/AFTER इमेज भेजें बंद करें; तब agent सिर्फ़ टेक्स्ट से तय करता है, जो कम भरोसेमंद है।

Ollama और बड़ी इमेज

Ollama 0.35.0 /v1/systemone requests को 64 KiB तक सीमित करता है, इसलिए screenshots वाली requests HTTP 413 के साथ fail होती हैं। निर्देश agent से कहते हैं कि दोनों इमेज को अधिकतम 1024px चौड़ाई तक छोटा करके JPEG (quality लगभग 70) बनाए। अगर फिर भी 413 मिले, तो Ollama को 0.35.1 या बाद के version पर अपडेट करें, या Cloudflare Workers AI पर जाएँ।

#फ़ुटर में API usage

Decision calls relay से होकर जाते हैं, इसलिए Ferret उन्हें गिन सकता है। फ़ुटर में agent usage मीटर के बगल वाला आइटम decision model और आज के calls, tokens और खर्च दिखाता है (जैसे clef-flash · 42 calls · 18.3k tok)। आज, इस महीने, हर प्रोजेक्ट, हर मॉडल और हर प्रकार (decision / transcription / organize) के हिसाब से, और पिछले 50 calls देखने के लिए उस पर क्लिक करें।

खर्च सिर्फ़ तब दिखता है जब API उसे बताता है (Vercel AI Gateway बताता है) या जब आप Settings → Decision model में प्रति 1M tokens कीमतें सेट करते हैं; वरना "—" दिखता है। सिर्फ़ metadata (समय, प्रोजेक्ट, मॉडल, status, latency, size, इमेज की संख्या, tokens, खर्च) दर्ज होता है, इमेज, टेक्स्ट या keys कभी नहीं, ~/.ferret/usage/decision-YYYY-MM.jsonl में, हर महीने एक फ़ाइल।

#निर्देश बदलें

Settings → Agents → Agent के लिए निर्देश संपादित करें। दो variables expand होते हैं:

Variableकिसमें बदलता है
{{path}}feedback.md का absolute path
{{relpath}}प्रोजेक्ट के सापेक्ष path: .ferret/reviews/<id>/feedback.md

डिफ़ॉल्ट इस्तेमाल करने के लिए इसे खाली छोड़ दें। अधिकतम लंबाई 2000 अक्षर है, और निर्देश रीसेट करें डिफ़ॉल्ट वापस ले आता है। उदाहरण:

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

यह सेटिंग settings.json में agentPrompt के रूप में सेव होती है।

#GitHub या GitLab पर भेजें (Issue / PR या MR comment)

GitHub पर भेजें review को एक नए issue के रूप में, या आपके किसी खुले pull request पर comment के रूप में पोस्ट करता है। Authentication GitHub CLI (नए टैब में खुलता है) को सौंपा जाता है। Ferret कभी कोई token नहीं पढ़ता या सेव करता।

  1. gh इंस्टॉल करें: brew install gh (macOS), winget install --id GitHub.cli (Windows), या cli/cli (नए टैब में खुलता है) देखें।
  2. Settings → GitHub / GitLab → Terminal में साइन इन करें बिल्ट-इन टर्मिनल में gh auth login --web -h github.com चलाता है।
  3. GitHub पर भेजें पर क्लिक करें, नया issue बनाएँ या कोई PR चुनें, और शीर्षक और Body (संपादित किए जा सकते हैं) जाँचें।
  4. पुष्टि वाला checkbox टिक करें, फिर Issue बनाएँ या Comment पोस्ट करें।

विवरण:

  • Repository git remote get-url origin से ली जाती है।
  • Ferret gh issue create --repo … --title … --body-file - या gh pr comment <n> --repo … --body-file - चलाता है।
  • Body इमेज वाली लाइनों के बिना feedback.md होती है (इमेज अपलोड नहीं होतीं), अधिकतम 60,000 अक्षर।
  • PR के विकल्प आपके अपने खुले PRs होते हैं (अधिकतम 30)।

अगर GH_TOKEN या GITHUB_TOKEN सेट है, तो gh पहले उसी का इस्तेमाल करता है, और settings पैनल इसकी चेतावनी देता है।

GitLab। जब origin कोई GitLab प्रोजेक्ट हो (gitlab.com या self-managed GitLab), तो वही बटन GitLab CLI (नए टैब में खुलता है) (glab) के ज़रिए GitLab पर भेजता है: एक नया issue, या आपके किसी खुले merge request पर comment। Settings → GitHub / GitLab से साइन इन करें, जो बिल्ट-इन टर्मिनल में glab auth login चलाता है (self-managed GitLab के लिए --hostname के साथ)। Ferret कभी token नहीं पढ़ता या सेव करता, और GITLAB_TOKEN सेट होने पर चेतावनी देता है।

स्टार का अनुरोध। आपके पहले Agent को भेजें के बाद, और जब आप 3, 10 और 30 पूरे reviews तक पहुँचते हैं, Ferret आपसे GitHub पर उसे स्टार देने के लिए कह सकता है। यह अधिकतम 3 बार पूछता है, कम से कम 3 दिन के अंतर पर, और रिकॉर्डिंग के दौरान कभी नहीं। GitHub पर स्टार दें आपके अपने gh login से स्टार देता है (या gh उपलब्ध न हो तो GitHub खोलता है), और फिर न पूछें अनुरोध बंद कर देता है। आप सहायता → GitHub पर Ferret को स्टार दें से भी स्टार दे सकते हैं।

#CLI tools इंस्टॉल करें और उनमें साइन इन करें

Settings → CLI टूल उन command-line tools की सूची देता है जिनकी आपके agents को अक्सर ज़रूरत होती है, दिखाता है कि कौन-से इंस्टॉल हैं और उनका version क्या है, और आपके OS के लिए आधिकारिक install या sign-in command एक नए टर्मिनल टैब में चलाता है:

  • Git hosting: gh, glab
  • AI और मॉडल: Ollama, Cloudflare wrangler
  • Deploy: Vercel, Netlify, Fly.io, Railway, Heroku
  • Cloud और सेवाएँ: Supabase, Firebase, Stripe, Google Cloud (gcloud), AWS, Azure, Docker

जहाँ किसी tool का आपके OS के लिए कोई एक-लाइन आधिकारिक installer नहीं है, वहाँ दस्तावेज़ उसकी जगह उसका install पेज खोलता है। Install पूरा होने पर सूची अपने-आप फिर से जाँच करती है।

GitHub पर इस पेज के अनुवाद में मदद करें (नए टैब में खुलता है)