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

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

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

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

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

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

इन तीन में से एक स्थिति चुनें:

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

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

  • हानिरहित कमांड्स बिना कार्ड के शुरू होते हैं: 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}, भी बिना कार्ड के शुरू होती है: ऐप उन्हें अलग-अलग पथों में बदलता है और सभी की जाँच करता है।
  • हर कार्ड सटीक कमांड दिखाता है और, ऑनलाइन क्रियाओं के लिए, सटीक पता भी। उसके नीचे सहायक का स्पष्टीकरण छोटे अक्षरों में होता है।
  • अगर सैंडबॉक्स उपलब्ध है और आपका प्रशासक स्वचालित निष्पादन की अनुमति देता है, तो सैंडबॉक्स में चलने वाले कमांड के कार्ड पर अब से इस फ़ोल्डर में हमेशा सैंडबॉक्स में स्वचालित बटन भी होता है। यह फ़ोल्डर को स्वचालित रूप से सैंडबॉक्स में पर सेट करता है, ताकि आगे के कमांड बिना कार्ड के शुरू हों। नेटवर्क की आवश्यकता वाले कमांड्स एक बार और पूछेंगे, जब तक कि पैकेज इंस्टॉलेशन की अनुमति नहीं है।
  • किसी फ़ोल्डर में सैंडबॉक्स में चलने वाले और नेटवर्क न माँगने वाले पहले कार्ड पर एक बार के लिए इस प्रोजेक्ट पर भरोसा करें दिखता है। यह कमांड चलाता है, फ़ोल्डर को स्वचालित रूप से सैंडबॉक्स में सेट करता है और बिना पूछे पैकेज इंस्टॉलेशन की अनुमति चालू करता है। इसके बाद 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> और package.json से npm install, 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)। सहायक पैकेज कैसे इंस्टॉल करता है, इसके लिए पैकेज इंस्टॉल करना देखें।

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

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

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

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

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

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

उदाहरण:

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

सहायक से देखने के लिए कहना​

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

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

संस्करण और GitHub​

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

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

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

ऑफ़लाइन मोड

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

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

प्रशासक लोकल कमांड्स या स्वचालित निष्पादन को वातावरण के सभी लोगों के लिए बंद कर सकते हैं। वे यह प्रशासनिक वातावरण में विशेषताएँ (पर्यावरण स्तर पर), Desktop-app कार्ड में करते हैं:

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