macOS companion app
macOS अनुमतियाँ
macOS में अनुमति प्रदान करना नाज़ुक होता है। TCC किसी अनुमति को ऐप के कोड हस्ताक्षर, बंडल पहचानकर्ता और डिस्क पर उसके पथ से संबद्ध करता है। यदि इनमें से कुछ भी बदलता है, तो macOS ऐप को नया मानता है और संकेतों को हटा या छिपा सकता है।
स्थिर अनुमतियों के लिए आवश्यकताएँ
- समान पथ: ऐप को किसी निश्चित स्थान से चलाएँ (OpenClaw के लिए,
dist/OpenClaw.app)। - समान बंडल पहचानकर्ता: OpenClaw का बंडल ID
ai.openclaw.macहै; इसे बदलने पर एक नई अनुमति पहचान बनती है। - हस्ताक्षरित ऐप: अहस्ताक्षरित या तदर्थ हस्ताक्षरित बिल्ड में अनुमतियाँ बनी नहीं रहतीं।
- सुसंगत हस्ताक्षर: वास्तविक Apple Development या Developer ID प्रमाणपत्र का उपयोग करें, ताकि दोबारा बिल्ड करने पर भी हस्ताक्षर स्थिर रहे।
तदर्थ हस्ताक्षर प्रत्येक बिल्ड के साथ एक नई पहचान बनाते हैं। macOS पिछली अनुमतियाँ भूल जाता है और पुरानी प्रविष्टियाँ हटाए जाने तक संकेत पूरी तरह गायब हो सकते हैं।
Node और CLI रनटाइम के लिए Accessibility अनुमतियाँ
किसी सामान्य node बाइनरी के बजाय OpenClaw.app, Peekaboo.app या अपने स्वयं के बंडल पहचानकर्ता वाले किसी अन्य हस्ताक्षरित सहायक को Accessibility अनुमति देना बेहतर है।
macOS TCC उस प्रक्रिया की कोड पहचान को Accessibility अनुमति देता है जिसे वह देखता है। यदि Homebrew, nvm, pnpm या npm वर्कफ़्लो के कारण किसी साझा node निष्पादन योग्य को Accessibility मिलती है, तो उसी निष्पादन योग्य के माध्यम से शुरू किए गए किसी भी JavaScript पैकेज को GUI स्वचालन विशेषाधिकार मिल सकते हैं।
System Settings में किसी node प्रविष्टि को एक npm पैकेज की अनुमति नहीं, बल्कि उस Node रनटाइम के लिए व्यापक अनुमति मानें। node को Accessibility अनुमति देने से बचें, जब तक कि आप उस विशिष्ट Node इंस्टॉलेशन के माध्यम से चलने वाली प्रत्येक स्क्रिप्ट और पैकेज पर भरोसा न करते हों।
Accessibility की स्वीकृति गतिविधि साझा करना सक्षम नहीं करती। Settings -> Permissions -> Active computer detection आपके Gateway के साथ सीमित निष्क्रियता अवधि साझा करने के लिए एक अलग नियंत्रण है, जो डिफ़ॉल्ट रूप से बंद रहता है। इसे बंद करने पर सुरक्षित रखी गई गतिविधि साफ़ हो जाती है, लेकिन Accessibility अनुमति रद्द नहीं होती और Node डिस्कनेक्ट नहीं होता।
यदि आपने गलती से node को Accessibility अनुमति दे दी है, तो System Settings -> Privacy & Security -> Accessibility से वह प्रविष्टि हटाएँ। फिर उस हस्ताक्षरित ऐप या सहायक को अनुमति दें जिसे UI स्वचालन का स्वामी होना चाहिए।
संकेत गायब होने पर पुनर्प्राप्ति जाँच-सूची
- ऐप बंद करें।
- System Settings -> Privacy & Security में ऐप की प्रविष्टि हटाएँ।
- ऐप को उसी पथ से दोबारा शुरू करें और अनुमतियाँ फिर से प्रदान करें।
- यदि संकेत फिर भी दिखाई नहीं देता, तो
tccutilसे TCC प्रविष्टियाँ रीसेट करें और दोबारा प्रयास करें। - कुछ अनुमतियाँ macOS को पूरी तरह पुनः आरंभ करने के बाद ही दोबारा दिखाई देती हैं।
रीसेट के उदाहरण (OpenClaw के बंडल ID, ai.openclaw.mac, का उपयोग करते हुए):
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEventsफ़ाइलों और फ़ोल्डरों की अनुमतियाँ (Desktop/Documents/Downloads)
macOS टर्मिनल/पृष्ठभूमि प्रक्रियाओं के लिए Desktop, Documents और Downloads तक पहुँच को भी नियंत्रित कर सकता है। यदि फ़ाइल पढ़ना या निर्देशिका सूचीबद्ध करना अटक जाए, तो उसी प्रक्रिया संदर्भ को पहुँच प्रदान करें जो फ़ाइल संचालन करता है (उदाहरण के लिए Terminal/iTerm, LaunchAgent द्वारा शुरू किया गया ऐप या SSH प्रक्रिया)।
वैकल्पिक उपाय: यदि आप प्रत्येक फ़ोल्डर के लिए अलग अनुमति देने से बचना चाहते हैं, तो फ़ाइलों को OpenClaw कार्यस्थान (~/.openclaw/workspace) में ले जाएँ।
यदि आप अनुमतियों का परीक्षण कर रहे हैं, तो हमेशा वास्तविक प्रमाणपत्र से हस्ताक्षर करें। तदर्थ बिल्ड केवल ऐसे त्वरित स्थानीय संचालन के लिए स्वीकार्य हैं, जिनमें अनुमतियाँ मायने नहीं रखतीं।