गुरुवार के 4:40 बजे हैं और प्रिया ने एक AI असिस्टेंट से अपने ऐप के सेटिंग्स पेज पर "Delete account" बटन जोड़ने को कहा है। जवाब आता है, "हो गया, 4 फ़ाइलें बदलीं।" शिप करने से पहले वह जानना चाहती है कि वे चार फ़ाइलें कौन-सी हैं, असिस्टेंट ने यह तय करने के लिए क्या-क्या पढ़ा, और क्या वह बिलिंग कोड के आसपास भी गया। एक सामान्य चैट विंडो उसे बस आख़िरी पैराग्राफ़ देती है, और कुछ नहीं।

एक पैराग्राफ़ में Maestro

Maestro, osFoundry डेस्कटॉप ऐप का फ़ुल-पावर AI वर्कस्पेस है। आप अपनी रिक्वेस्ट वैसे ही टाइप करते हैं जैसे किसी भी चैट में, लेकिन जवाब के साथ उसका पूरा वर्क पाथ आता है: हर फ़ाइल जिसे उसने लिस्ट किया, हर सर्च जो उसने चलाई, हर फ़ाइल जिसे पढ़ा या एडिट किया, और हर टर्मिनल कमांड, हर एक अपनी अलग row में, साथ में अवधि, जिसे आप खोलकर देख सकते हैं। यह आपके कंप्यूटर के किसी फ़ोल्डर के अंदर काम कर सकता है, चुपचाप लिखने के बजाय एडिट प्रस्तावित कर सकता है, और कुछ भी छूने से पहले रुककर आपको प्लान दिखा सकता है। यह साइडबार में Maestro के नाम से मिलता है। अगर आपने ब्राउज़र में ChatGPT या Claude इस्तेमाल किया है, तो वही बातचीत सोचिए, बस बगल में एजेंट का एक्टिविटी लॉग और कुछ ब्रेक जुड़े हुए।

स्क्रीन पर एक नज़र

Maestro स्क्रीन, एक रिक्वेस्ट और पहली प्रोसेस rows के साथ: TOOL, GREP और READ, हर एक की अवधि के साथ (उदाहरण)

  • सबसे ऊपर सरफ़ेस टैब। Maestro, Model chat, Multi chat, Research, Wiki और Code सब इसी एक स्क्रीन पर हैं। Maestro वह टैब है जिसमें पूरा टूलसेट मिलता है।
  • बातचीत के ऊपर डिटेल टैब: Chat, Sources, Files, Changelog, Tools, Pipeline और Logs। ये एक ही रन के अलग-अलग व्यू हैं। Sources में रहता है कि जवाब किस आधार पर दिया गया, Changelog उन फ़ाइलों की लिस्ट है जो इस चैट ने लिखीं, और Logs में स्टेप्स दिखते हैं, और Costs के नीचे हर रिक्वेस्ट की लागत।
  • ट्रांसक्रिप्ट में प्रोसेस rows। यहाँ Maestro ने src/ लिस्ट किया (38 फ़ाइलें), deleteUser के लिए grep किया, 0 मैच मिले, फिर account.ts और users.ts पढ़ीं। किसी row पर क्लिक करें तो वह खुलकर उस टूल कॉल का सटीक इनपुट और आउटपुट दिखाती है।
  • मैसेज बॉक्स के ऊपर कंट्रोल स्ट्रिप: sandbox स्विच, Plan OFF/ON, Tools और Goal। बॉक्स के नीचे फ़ोल्डर, प्रोजेक्ट, repo, Router और मॉडल के पिकर हैं।
  • दाईं ओर प्रीव्यू पैनल, जहाँ कोई फ़ाइल, diff या वेब पेज बातचीत को हटाए बिना उसके बगल में खुलता है (Open File / App / Page, Browse Files, Browser)।

लोग इसे तीन तरह से इस्तेमाल करते हैं

एक सोलो डेवलपर जिसे एडिट से पहले प्लान चाहिए

शुरुआत वाला प्रिया का केस। बदलाव अकाउंट और सेशन से जुड़ा है, इसलिए वह किसी अचानक आए diff को रिव्यू करने के बजाय पहले प्लान पढ़ना चाहती है।

  1. वह कंट्रोल स्ट्रिप में Plan पर क्लिक करती है ताकि Plan ON दिखे।
  2. वह "Add a Delete account button to settings" टाइप करके भेज देती है।
  3. Maestro छह फ़ाइलें पढ़ता है और एक भी नहीं बदलता। जब तक plan mode चालू है, डेस्कटॉप ऐप ख़ुद ऐसे किसी भी टूल को मना कर देता है जो फ़ाइल लिखे या कमांड चलाए, यानी "सिर्फ़ पढ़ना" प्रॉम्प्ट में की गई कोई विनम्र गुज़ारिश नहीं है।
  4. "Awaiting approval" लिखा एक Plan कार्ड आता है, जिसमें Approve और Cancel बटन होते हैं।

Plan कार्ड: चार फ़ाइलें बदलनी हैं, src/billing/ को छुआ नहीं जाएगा, छह फ़ाइलें पढ़ी गईं और अभी तक कुछ नहीं बदला (उदाहरण)

उदाहरण वाला प्लान चार फ़ाइलों के नाम बताता है, कहता है कि src/billing/ को नहीं छुआ जाएगा क्योंकि Stripe अपने रिकॉर्ड ख़ुद रखता है, और आख़िर में लिखता है "Nothing has been changed yet." प्लान आते ही plan mode अपने-आप बंद हो जाता है। प्रिया Approve पर क्लिक करती है, और तभी जाकर Maestro चारों फ़ाइलें एडिट करता है और टेस्ट चलाता है (npm test -- account, 3 passed), सब कुछ EDIT और TERMINAL rows के रूप में दिखता है। अगर उसे प्लान पसंद न आता, तो Cancel फ़ोल्डर को बिल्कुल वैसा ही छोड़ देता जैसा वह था।

उसके हाथ में क्या आता है: एक बदलाव जिसे उसने पहले से मंज़ूरी दी, और एक ट्रांसक्रिप्ट जो दिखाता है कि एजेंट ने कहाँ देखा और क्या चलाया।

एक नया टीममेट जो कोडबेस में रास्ता ढूँढ रहा है

डैन सोमवार को टीम में आया है। उसे पता करना है कि लॉगिन लॉकआउट का कोड कहाँ है, लेकिन कोड में कोई उसे "lockout" नहीं कहता, इसलिए टेक्स्ट सर्च से कुछ नहीं मिलता।

  1. Indexes में वह प्रोजेक्ट फ़ोल्डर को एक बार जोड़ता है ताकि उसे मतलब के आधार पर सर्च किया जा सके।
  2. उस फ़ोल्डर पर Maestro चैट में वह पूछता है कि लॉगिन फ़ेल होने के बाद ऐप लोगों को कहाँ लॉक आउट करता है।
  3. वह प्रोसेस rows देखता है: एक फ़ोल्डर सर्च जिसके 2 नतीजे आते हैं, फिर throttle.ts का READ।

फ़ोल्डर सर्च और throttle.ts के READ के बाद Maestro फ़ाइल पाथ और लाइन रेंज के साथ जवाब देता है (उदाहरण)

जवाब src/auth/throttle.ts (लाइन 1–46) और src/routes/session.ts (लाइन 22–61) की ओर इशारा करता है, और समझाता है कि कोड कहीं "lock out" नहीं कहता: पाँच असफल कोशिशों के बाद वह 15 मिनट आगे का cooldown सेट करता है और पासवर्ड चेक करने से पहले ही 429 लौटा देता है। क्योंकि जवाब में फ़ाइल पाथ हैं और rows दिखाती हैं कि क्या पढ़ा गया, डैन वही लाइनें प्रीव्यू पैनल में खोलकर ख़ुद दावे की जाँच कर सकता है, किसी सारांश पर भरोसा करने के बजाय। इस केस में डिस्क पर कुछ नहीं लिखा जाता, इसलिए वह Approval Mode को डिफ़ॉल्ट पर छोड़ सकता है।

उसके हाथ में क्या आता है: वे दो फ़ाइलें जो मायने रखती हैं, यह वजह कि कीवर्ड सर्च उन्हें क्यों नहीं पकड़ पाई, और एक चैट जिस पर वह चैट लिस्ट से वापस आ सकता है।

एक मार्केटर जो किसी और के repo में कॉपी एडिट कर रही है

सैमी लॉन्च पेज की कॉपी लिखती है, लेकिन वह पेज इंजीनियरिंग repo की एक React फ़ाइल है। वह चाहती है कि नया टेक्स्ट docs/ में रखी टोन गाइड से मेल खाए, और बिना देखे कुछ भी commit न हो।

  1. वह composer का Approval Mode मेन्यू खोलकर Permission & Approve चुनती है, जो टूल कॉल से पहले पूछता है। बाक़ी विकल्प हैं Auto Accept (डिफ़ॉल्ट, टूल तुरंत चलते हैं), Plan First (चलाने से पहले प्लान) और Bypass (कोई अप्रूवल नहीं, push और फ़ॉर्म सबमिट के लिए भी नहीं)।
  2. वह sandbox चालू करती है, ताकि लिखी गई चीज़ें वर्किंग फ़ोल्डर में सीधे पहुँचने के बजाय एक branch पर stage हों।
  3. वह Maestro से लॉन्च पेज का ड्राफ़्ट माँगती है जो docs के साथ मेल खाए। वह docs/tone.md पढ़ता है, सोर्स में सर्च करता है, और src/Launch.tsx में एक एडिट प्रस्तावित करता है।
  4. diff प्रीव्यू पैनल में खुलता है। वह उसे स्वीकार करती है, फिर Export to branch इस्तेमाल करती है ताकि कोई इंजीनियर उसे किसी भी दूसरे बदलाव की तरह रिव्यू कर सके।

उसके हाथ में क्या आता है: ऐसी कॉपी जो उस टोन गाइड का हवाला देती है जिसे उसने फ़ॉलो किया (Sources टैब उसे संभालकर रखता है), एक रिव्यू किया हुआ diff, और main पर किसी सरप्राइज़ के बजाय एक branch।

Model chat, Chat और Multi chat के बीच Maestro की जगह

Maestro अपनी स्क्रीन कुछ सरल भाई-बहनों के साथ साझा करता है, और सही वाला चुनने से समय और पैसा दोनों बचते हैं।

  • Model chat इसी स्क्रीन का एक टैब है जो हर टर्न आपके चुने एक मॉडल को भेजता है। यह read-only बातचीत है: न फ़ोल्डर, न कुछ करने वाले टूल, न अप्रूवल। जल्दी के किसी सवाल के लिए बढ़िया।
  • Chat की साइडबार में अपनी जगह है। यह भी पूरी बातचीत के लिए आपके चुने एक मॉडल से जवाब देता है, लेकिन फ़ाइलों वाली क्षमताएँ बनाए रखता है, यानी यह ऐसा एडिट प्रस्तावित कर सकता है जिसे आप Accept या Reject करें, और वह Changelog में दर्ज होता है। इसे तब इस्तेमाल करें जब आप चाहते हों कि कोई ख़ास मॉडल काम करे, बिना किसी router के आपके लिए चुने।
  • Multi chat एक ही सवाल एक साथ कई मॉडलों से पूछता है। Compare में आप जवाब साथ-साथ पढ़ते हैं; Council में मॉडल जवाब देते हैं, एक-दूसरे के जवाबों को बिना नाम जाने रैंक करते हैं, और एक मॉडल सिंथेसिस लिखता है।

Council मोड में Multi chat: तीन मॉडल जवाब देते हैं, एक-दूसरे को रैंक करते हैं, और एक सिंथेसिस असहमतियों की लिस्ट बनाता है (उदाहरण)

Maestro से काम अक्सर ऐप के दूसरे हिस्सों में आगे बढ़ता है। Research एक सवाल को स्रोतों वाली रिपोर्ट में बदलता है, Code अपनी branch पर एक कोडिंग एजेंट चलाता है, Indexes किसी फ़ोल्डर को मतलब के आधार पर सर्च करने लायक बनाता है (जैसे डैन के केस में), और Version → Merge Station वह जगह है जहाँ sandbox वाले बदलाव merge होते हैं। अगर कोई टर्न गड़बड़ हो जाए, तो चैट में /rewind टाइप करने से उस टर्न में बदली गई फ़ाइलें वापस आ जाती हैं। गहराई से समझने के लिए, Maestro orchestration पेज डिटेल टैब्स के बारे में बताता है, और plan mode पेज अप्रूवल फ़्लो समझाता है।

लोग सबसे पहले क्या पूछते हैं

क्या plan mode बस प्रॉम्प्ट में लिखा एक निर्देश है?
नहीं। जब तक Plan ON है, हर वह टूल जो read-only लिस्ट में नहीं है, ऐप द्वारा डिस्पैच किए जाते समय ही मना कर दिया जाता है। यानी एजेंट पढ़ सकता है, सर्च कर सकता है और ब्राउज़ कर सकता है, लेकिन जब तक आप प्लान को अप्रूव न करें, वह एडिट या कमांड नहीं चला सकता।

कंट्रोल स्ट्रिप में Plan ON, जबकि Maestro अभी भी फ़ाइलें पढ़ रहा है (उदाहरण)

Plan स्विच और Approval Mode के Plan First में क्या फ़र्क है?
Plan अगली रिक्वेस्ट के लिए एक बार का स्विच है: जाँच करो, प्लान दिखाओ, इंतज़ार करो। Approval Mode टूल कॉल के लिए चैट का स्थायी नियम है, Auto Accept से लेकर Bypass तक। Plan First उसकी चार सेटिंग्स में से एक है।

प्रोसेस rows बहुत ज़्यादा हैं। क्या मैं इन्हें छिपा सकता हूँ?
हाँ। Process Detail सेटिंग Full और Compact के बीच बदलती है। यह सिर्फ़ स्टेप्स के दिखने का तरीक़ा बदलती है, टर्न के चलने का तरीक़ा नहीं।

Maestro कौन-सा मॉडल इस्तेमाल करता है?
डिफ़ॉल्ट रूप से Router हर टर्न के लिए एक मॉडल चुनता है, और प्रोसेस rows दिखाती हैं कि कौन-सा चला। आप composer से मॉडल मोड (क्लाउड, लोकल या सेल्फ़-होस्टेड) बदल सकते हैं, या पूरी बातचीत के लिए एक ही मॉडल तय रखना हो तो Chat इस्तेमाल कर सकते हैं।

डेस्कटॉप ऐप आप osfoundry.io/hi/download से ले सकते हैं।