मुख्य सामग्री पर जाएं

लोकल कमांड सुरक्षित रूप से चलाना

डेस्कटॉप ऐप्लिकेशन में सहायक आपकी चैट की वर्किंग डायरेक्टरी में कमांड और टेस्ट चला सकता है। यह चैट में कैसे काम करता है, यह लोकल फ़ाइल पहुँच में पढ़ें। इस पेज पर आप तय करते हैं कि यह बिना पूछे कब हो सकता है और कमांड कितनी सुरक्षित तरह से चलें।

कमांड सेटिंग्स खोलना​

किसी चैट में कमांड्स पैनल खोलें और इस फ़ोल्डर के लिए कमांड सेटिंग्स चुनें। ये सेटिंग्स प्रति फ़ोल्डर लागू होती हैं।

सहायक कब कमांड चला सकता है?​

इन तीन मोड में से एक चुनें:

  • हमेशा पूछें: आप हर कमांड को मंज़ूरी देते हैं।
  • विश्वसनीय कमांड्स स्वतः: आपने जो कमांड सहेजे हैं, वे बिना पूछे शुरू होते हैं। अन्य कमांड्स के लिए अभी भी अनुमति माँगी जाती है।
  • सैंडबॉक्स में स्वतः: सब कुछ बिना पूछे शुरू होता है, लेकिन एक अलग सुरक्षित वातावरण में।

हर मोड में ये नियम भी लागू होते हैं:

  • हानिरहित कमांड्स बिना कार्ड के शुरू होते हैं: mkdir, ls, cat, head, tail, wc, grep, find (बिना -exec या -delete के), touch, pwd, tree और वर्ज़न चेक (node, npm, npx, python, pip और aischool-python के लिए --version, -v या -V)। ये उससे ज़्यादा कुछ नहीं करते जो बिल्ट-इन फ़ाइल टूल्स पहले से बिना पूछे कर सकते हैं। ये सैंडबॉक्स में बिना नेटवर्क और केवल वर्किंग डायरेक्टरी के भीतर के पथों के साथ चलते हैं, लिंक फॉलो करने के बाद भी (कोई absolute पथ, ~ या .. नहीं)। अगर कोई लिंक फ़ोल्डर के बाहर जाता है, तो कार्ड दिखता है। इसके लिए सैंडबॉक्स (macOS) और लोकल कमांड्स चाहिए, लेकिन आपके एडमिन से स्वचालित चलाने की अनुमति की ज़रूरत नहीं होती। कमांड्स पैनल में तब स्वतः (हानिरहित कमांड) दिखाई देता है। जैसे mkdir -p src/{components,utils} जैसी braces वाली सूची भी बिना कार्ड के शुरू होती है: ऐप इसे अलग-अलग पथों में बदल देता है और सबको जाँचता है।
  • हर कार्ड में सटीक कमांड और, ऑनलाइन कार्रवाइयों के लिए, सटीक पता दिखता है। उसके नीचे सहायक का स्पष्टीकरण छोटे फ़ॉन्ट में होता है।
  • अगर सैंडबॉक्स उपलब्ध है और आपका एडमिन स्वतः चलाने की अनुमति देता है, तो सैंडबॉक्स में चलने वाले कमांड के कार्ड पर आगे से इस फ़ोल्डर में सैंडबॉक्स में स्वतः बटन भी होता है। यह फ़ोल्डर को सैंडबॉक्स में स्वतः पर सेट करता है, ताकि अगले कमांड्स बिना कार्ड के शुरू हों। नेटवर्क की ज़रूरत वाले कमांड्स एक बार और पूछेंगे, जब तक कि पैकेज इंस्टॉलेशन की अनुमति नहीं है।
  • किसी फ़ोल्डर में सैंडबॉक्स में चलने वाले और नेटवर्क न माँगने वाले पहले कार्ड पर एक बार के लिए इस प्रोजेक्ट पर भरोसा करें दिखता है। यह कमांड चलाता है, फ़ोल्डर को सैंडबॉक्स में स्वतः पर सेट करता है और बिना पूछे पैकेज इंस्टॉलेशन की अनुमति चालू करता है। इसके बाद npm test, npm run build और node --test जैसे टेस्ट और बिल्ड बिना कार्ड के, बिना नेटवर्क वाले सैंडबॉक्स में शुरू होते हैं। जिन कमांड्स को आगे नेटवर्क चाहिए या जो सैंडबॉक्स के बाहर चलते हैं, वे पूछते रहेंगे। चलाएँ या अस्वीकार करें के बाद इस फ़ोल्डर में यह सवाल फिर नहीं आएगा; मोड आप कमांड सेटिंग्स में बदलते हैं। अगर स्वतः चलाना बंद है, तो हर कार्ड बताता है कि यह आपके एडमिन या इस कंप्यूटर की नीति द्वारा किया जा रहा है।

विश्वसनीय कमांड्स सहेजना​

किसी कमांड पर इस फ़ोल्डर में हमेशा अनुमति दें चुनें और फिर ठीक यही कमांड या जो भी इससे शुरू हो। सहेजे गए कमांड्स अब से बिना पूछे शुरू होंगे। विशेष चिह्नों वाले कमांड्स (जैसे ; | > $) हमेशा अनुमति माँगते हैं।

सहेजे गए नियम कमांड सेटिंग्स में इस फ़ोल्डर में हमेशा अनुमत के तहत मिलते हैं। वहाँ से आप उन्हें हटा भी सकते हैं।

सैंडबॉक्स और नेटवर्क​

  • सैंडबॉक्स का उपयोग करें: कमांड्स केवल इस फ़ोल्डर में लिख सकते हैं। यह विकल्प macOS पर डिफ़ॉल्ट रूप से चालू होता है।
  • नेटवर्क की अनुमति दें: तय करता है कि कमांड्स के पास इंटरनेट हो या नहीं। यह विकल्प डिफ़ॉल्ट रूप से बंद होता है। सैंडबॉक्स के बिना कमांड्स के पास हमेशा नेटवर्क पहुँच होती है।

हर कमांड कार्ड दिखाता है कि सैंडबॉक्स और नेटवर्क चालू हैं या नहीं।

अगर नेटवर्क की अनुमति दें बंद है और सहायक कुछ डाउनलोड करना चाहता है, जैसे npm install के साथ, तो कमांड कार्ड पूछता है कि क्या आप ठीक वही कमांड नेटवर्क के साथ चलाना चाहते हैं। यानी आपको पूरे फ़ोल्डर के लिए नेटवर्क चालू करने की ज़रूरत नहीं है।

Windows

Windows पर अभी सैंडबॉक्स उपलब्ध नहीं है।

पैकेज इंस्टॉल करना​

ऐप में अपना Node.js और npm शामिल है। इसलिए node, npm और npx जैसे कमांड्स तब भी काम करते हैं जब आपके कंप्यूटर पर Node.js इंस्टॉल न हो। अगर आपने Node.js खुद इंस्टॉल किया है, तो ऐप वही संस्करण इस्तेमाल करता है। अपवाद: कोई प्रोजेक्ट जो खुद Electron शुरू करता है (electron .), उसे आपके द्वारा इंस्टॉल किया गया Node.js चाहिए।

बिना पूछे पैकेज इंस्टॉलेशन की अनुमति देना​

इस फ़ोल्डर के लिए कमांड सेटिंग्स में बिना पूछे पैकेज इंस्टॉलेशन की अनुमति स्विच चालू करें। तब नाम वाले पैकेज इंस्टॉलेशन बिना कार्ड के शुरू होंगे: npm install <naam> और npm install package.json से, pnpm, yarn या bun के install या add के साथ, और pip install <naam> (यह uv के ज़रिए भी)। ये हमेशा सैंडबॉक्स में, नेटवर्क के साथ चलते हैं। अन्य कमांड्स उस मोड का पालन करते हैं जो आपने फ़ोल्डर के लिए चुना है।

ये इंस्टॉलेशन फिर भी कार्ड दिखाते हैं:

  • प्रोजेक्ट स्टार्टर जैसे npm create vite@latest और npx create-…, क्योंकि वे अपना खुद का कोड चलाते हैं;
  • pip install ., pip install -r requirements.txt, किसी दूसरे रजिस्ट्री से इंस्टॉलेशन (--registry, -i, --index-url) और git पता, URL या पथ से आने वाले पैकेज।

यह स्विच केवल सैंडबॉक्स (macOS) के साथ और तब काम करता है जब आपका एडमिन स्वतः चलाने की अनुमति देता है। वरना आप इसे चालू नहीं कर सकते।

कोई इंस्टॉलेशन स्क्रिप्ट नहीं

इस तरह इंस्टॉल किए गए पैकेज कभी अपनी खुद की इंस्टॉलेशन स्क्रिप्ट नहीं चलाते (npm --ignore-scripts के साथ चलता है)। Python पैकेज केवल तैयार wheels के रूप में इंस्टॉल होते हैं।

लोकल सर्वर और बिल्ट-इन ब्राउज़र​

सहायक एक ऐसा डेवलपमेंट सर्वर भी शुरू कर सकता है जो चलता रहता है, जैसे Vite वाले छोटे React प्रोजेक्ट के लिए npm run dev। इसके लिए वही नियम लागू होते हैं जो दूसरे कमांड्स पर होते हैं: आप सटीक कमांड को मंज़ूरी देते हैं, या यह सहेजे गए नियम से शुरू होता है, या स्वतः सैंडबॉक्स में चलता है। अधिकतम रन टाइम की जगह कार्ड पर लिखा होता है "इसे लोकल सर्वर के रूप में तब तक चलाते रहें जब तक आप इसे रोक न दें।"

सर्वर सहायक के जवाब देने के बाद भी चलता रहता है। कमांड्स पैनल में कार्ड की स्थिति सर्वर चल रहा है दिखती है, साथ में ब्राउज़र में खोलें और रोकें बटन। एक साथ अधिकतम 4 सर्वर चल सकते हैं। आप उन्हें रोकें या ऐप बंद करें तो सर्वर रुक जाते हैं।

सैंडबॉक्स में बिना नेटवर्क के सर्वर केवल इस कंप्यूटर पर (localhost) सुन सकता है। सहायक पैकेज कैसे इंस्टॉल करता है, यह पैकेज इंस्टॉल करना में पढ़ें।

एक साधारण वेबपेज दिखाना​

एक सामान्य वेबपेज के लिए (CSS और JavaScript वाला index.html, बिना build step के) किसी कमांड की ज़रूरत नहीं होती। तब सहायक ऐप का बिल्ट-इन वेब सर्वर इस्तेमाल करता है:

  • फ़ोल्डर केवल इस कंप्यूटर पर http://127.0.0.1 पर, एक यादृच्छिक पोर्ट के साथ, देखा जा सकता है।
  • छिपी हुई फ़ाइलें, जैसे .git और .env, कभी नहीं दिखाई जातीं।
  • यदि कोई फ़ाइल बदलती है, तो पेज अपने आप फिर लोड हो जाता है।

इसके लिए कोई अनुमति कार्ड नहीं दिखता। सर्वर कमांड्स पैनल में होता है, ब्राउज़र में खोलें और रोकें के साथ, और 4 सर्वरों की अधिकतम सीमा में गिना जाता है।

आप परिणाम बिल्ट-इन ब्राउज़र में देखते हैं: ऊपर की टॉप बार में दाईं ओर ब्राउज़र बटन (ग्लोब आइकन)। पैनल चैट के बगल में खुलता है, जिसमें पीछे, आगे, फिर से लोड करना (लोडिंग के दौरान रोकना), एक एड्रेस बार और अपने डिफ़ॉल्ट ब्राउज़र में खोलें होते हैं।

  • सहायक स्थानीय सर्वर का परिणाम दिखाने के लिए खुद ब्राउज़र खोलता है। यह केवल स्थानीय पतों के साथ ही हो सकता है, जैसे http://localhost:5173.
  • अगर आप किसी जवाब में localhost लिंक पर क्लिक करते हैं, तो वह बिल्ट-इन ब्राउज़र में खुलता है। अन्य लिंक आपके डिफ़ॉल्ट ब्राउज़र में खुलते हैं।
  • आप चाहें तो खुद कोई भी वेब पता टाइप कर सकते हैं।
  • ब्राउज़र की अपनी अलग सत्र होती है: आप वहाँ AI-School में लॉग इन नहीं होते, वेबसाइटों को कैमरा या माइक्रोफ़ोन जैसी अनुमतियाँ नहीं मिलतीं और डाउनलोड करना संभव नहीं है।
  • जब तक ऐप का कोई मेनू या डायलॉग खुला रहता है, पेज अस्थायी रूप से छिप जाता है।

उदाहरण:

इस फ़ोल्डर में Vite के साथ एक छोटा React ऐप बनाइए, जिसमें एक काउंटर हो। dependencies इंस्टॉल करें, dev-server शुरू करें और परिणाम ब्राउज़र में दिखाएँ।

सहायक को देखने देना​

अगर आप सहायक से बिल्ट-इन ब्राउज़र में पेज देखने को कहते हैं, तो वह पता, शीर्षक, दिखाई देने वाला टेक्स्ट, स्क्रीनशॉट और पेज के आख़िरी error संदेश पढ़ता है। ये AI मॉडल को भेजे जाते हैं।

  • इस कंप्यूटर पर मौजूद कोई पेज (localhost या 127.0.0.1) सहायक बिना पूछे देख लेता है।
  • किसी अन्य वेबसाइट पर, जैसे कोई पेज जहाँ आप लॉग इन हैं, सहायक पहले एक कार्ड दिखाता है: "सहायक onedrive.live.com पर देखने की अनुमति चाहता है।" देखने की अनुमति दें या अस्वीकार करें पर क्लिक करें। वह हर बार फिर पूछता है।
  • अगर आपकी अनुमति के बाद पेज किसी दूसरी वेबसाइट पर चला जाता है, तो सहायक कुछ नहीं पढ़ता।
  • केवल इस कंप्यूटर पर मौजूद पेज पर ही सहायक खुद क्लिक और टाइप करता है, ताकि वह जो बनाया है उसे टेस्ट कर सके। अन्य वेबसाइटों पर वह क्लिक, टाइप या नेविगेट नहीं करता। उसे cookies या passwords नहीं मिलते।
  • ऑफ़लाइन मोड में सहायक केवल इस कंप्यूटर पर मौजूद पेजों को देखता है।

संस्करण और GitHub​

सहायक में बिल्ट-इन git है। इसलिए आपको git इंस्टॉल करने की ज़रूरत नहीं, Windows पर भी नहीं। सहायक संस्करण सहेज सकता है, बदलाव दिखा सकता है, branches बना सकता है और किसी प्रोजेक्ट को ऑनलाइन डाल सकता है।

  • इस फ़ोल्डर में कार्रवाइयाँ, जैसे संस्करण सहेजना, बिना पूछे शुरू होती हैं। जो फ़ाइलें रहस्यों जैसी लगती हैं (जैसे .env फ़ाइलें, code में keys या tokens, जिनमें AIza से शुरू होने वाली Google API keys भी शामिल हैं) वे कभी भी किसी संस्करण में शामिल नहीं होतीं। अगर सहायक कुछ छोड़ता है, तो वह आपको बताता है।
  • ऑनलाइन कार्रवाइयाँ (प्रोजेक्ट डाउनलोड करना, नवीनतम संस्करण लाना, ऑनलाइन डालना और GitHub repository बनाना) पहले एक कार्ड दिखाती हैं, जिसमें सटीक पता और ऐप में बिल्ट-इन तथा नेटवर्क चालू labels होते हैं। अगर पता github.com नहीं है या नई repository सार्वजनिक होगी, तो कार्ड चेतावनी देता है। ऑनलाइन डालते समय कार्ड दिखाता है कि कौन-सी फ़ाइलें भेजी जाएँगी। चलाएँ या अस्वीकार करें चुनें।
  • github.com के बाहर किसी repository को कनेक्ट करने के लिए भी पहले अनुमति चाहिए।

GitHub को कैसे कनेक्ट करें और प्रोजेक्ट को ऑनलाइन कैसे डालें, यह Vibe कोडिंग में पढ़ें।

ऑफ़लाइन मोड

ऑफ़लाइन मोड में कमांड्स हमेशा बिना नेटवर्क वाले सैंडबॉक्स में चलते हैं। नेटवर्क वाली पैकेज इंस्टॉलेशन और बिल्ट-इन git की ऑनलाइन कार्रवाइयाँ (डाउनलोड करना, लाना, ऑनलाइन डालना और GitHub) तब काम नहीं करतीं। संस्करण सहेजना और एक साधारण वेबपेज दिखाना काम करते हैं।

प्रशासकों के लिए सेटिंग्स​

प्रशासक सभी के लिए वातावरण में स्थानीय कमांड्स या स्वतः चलाने की सुविधा बंद कर सकते हैं। वे इसे प्रशासनिक वातावरण में फ़ीचर्स (environment स्तर पर), Desktop-app कार्ड में करते हैं:

  • लोकल कमांड्स की अनुमति दें: अगर यह बंद है, तो सहायक कोई कमांड नहीं चला सकता। बिल्ट-इन git की ऑनलाइन कार्रवाइयाँ भी तब काम नहीं करतीं। संस्करण सहेजना और branches फिर भी काम करते हैं: वे केवल फ़ोल्डर की फ़ाइलें बदलते हैं, ठीक फ़ाइल टूल्स की तरह।
  • स्वचालित चलाने की अनुमति दें: अगर यह बंद है, तो हर कमांड अनुमति माँगेगा और आप बिना पूछे पैकेज इंस्टॉलेशन की अनुमति चालू नहीं कर सकते।
  • Office फ़ाइलों के लिए ऐप की Python की अनुमति दें: टेम्पलेट, चार्ट और विश्लेषण के लिए। यह Python बिना इंटरनेट के काम करती है, केवल वर्किंग डायरेक्टरी में लिखती है और कोई अन्य प्रोग्राम शुरू नहीं कर सकती। अगर कुछ सेट नहीं है, तो यह लोकल कमांड्स की अनुमति दें का पालन करती है। बिना सैंडबॉक्स (Windows) के, यह केवल तब होती है जब लोकल कमांड्स चालू हों, और हर बार अनुमति माँगती है।