गाइड - AI और स्वचालन

समर्पित Mac mini पर NanoClaw को 24/7 सेल्फ-होस्ट कैसे करें

NanoClaw एक ओपन-सोर्स (MIT, 30k+ स्टार) AI असिस्टेंट है जो WhatsApp, Telegram, Discord, Slack, iMessage और अन्य से आपको जवाब देता है, और हर एजेंट सेशन को अपने स्वयं के Docker कंटेनर में चलाता है ताकि प्रॉम्प्ट-इंजेक्टेड एजेंट के पास चुराने के लिए कुछ न हो और जाने के लिए कोई जगह न हो। एक समर्पित Mac mini इसे पूर्ण root, SSH और VNC के साथ एक हमेशा-चालू Apple Silicon ठिकाना देता है, $85/माह से।

30 मिनट पढ़ें 28 सितंबर, 2026 को अपडेट किया गया

1. NanoClaw को समर्पित Mac mini पर क्यों चलाएं?

NanoClaw केवल तभी जवाब देता है जब इसका होस्ट चालू और कनेक्टेड हो, क्विकस्टार्ट यह साफ़ शब्दों में कहता है, जो स्लीप में जाने वाले लैपटॉप को बाहर कर देता है। इसे कम से कम 4 GB RAM और Docker (macOS पर Docker Desktop) वाली Mac या Linux मशीन चाहिए, और इसका GitHub विवरण इसे OpenClaw के एक हल्के विकल्प के रूप में प्रस्तुत करता है जो सुरक्षा के लिए कंटेनरों में चलता है। एक शेयर्ड Linux VPS Mac mini से सस्ता हो सकता है, इसलिए यह स्पष्ट रखें कि आप क्या खरीद रहे हैं: एक समर्पित 1:1 भौतिक Apple Silicon Mac जिसे कोई और साझा नहीं करता, एकमात्र प्लेटफ़ॉर्म जहां NanoClaw का लोकल iMessage बैकएंड काम करता है, Docker Desktop के लिए एक वास्तविक डेस्कटॉप सेशन, और एक ऐसी मशीन जिसे आप Xcode बिल्ड या लोकल मॉडल के लिए भी उपयोग कर सकते हैं।

विशेषता क्लाउड VPS (शेयर्ड इंस्टेंस) Mac mini (MyRemoteMac)
मासिक लागत आकार के अनुसार भिन्न; समर्पित इंस्टेंस अधिक महंगे हैं $85/माह (M4) या $149/माह (M6), समान दर, 1 Gbps शामिल
हार्डवेयर शेयर्ड, वर्चुअलाइज़्ड CPU और RAM (NanoClaw Google Compute Engine VMs को असमर्थित बताता है) समर्पित 1:1 भौतिक Apple Silicon Mac
कंटेनर रनटाइम Linux पर Docker Engine Docker Desktop for Mac (वही प्रति-सेशन Linux कंटेनर)
iMessage (लोकल बैकएंड) संभव नहीं (केवल macOS) iMessage में साइन-इन किए हुए Mac पर समर्थित
एक्सेस SSH पूर्ण root, SSH, VNC, WireGuard VPN
अपटाइम प्रदाता पर निर्भर 99.9% SLA

NanoClaw क्या है: एक Node.js होस्ट प्रोसेस आपके चैट ऐप्स के संदेशों को प्रति-सेशन Docker कंटेनरों तक रूट करता है, जहां एजेंट Anthropic के Claude Agent SDK के माध्यम से Claude Code पर चलते हैं। .env और एक SQLite डेटाबेस के अलावा कोई कॉन्फ़िगरेशन फ़ाइल नहीं है: आप इसे अपने स्वयं के चेकआउट में कोड बदलने के लिए Claude Code से कहकर कस्टमाइज़ करते हैं। लेखन के समय वर्शन: v2.4.0 (23 सितंबर, 2026), Gavriel Cohen द्वारा बनाया गया और NanoCo द्वारा मेंटेन किया गया।

2. पूर्वापेक्षाएं

शुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित हैं। नीचे दी गई हर बात आधिकारिक NanoClaw README, क्विकस्टार्ट और इंस्टॉलेशन पेजों से ली गई है, साथ ही प्लेटफ़ॉर्म तथ्यों के लिए Docker और Anthropic की शर्तों से:

  • MyRemoteMac से एक समर्पित Mac mini, M4 $85/माह से (16 GB / 256 GB) या Mac mini M6 $149/माह से। NanoClaw कम से कम 4 GB RAM मांगता है (इंस्टॉलर 3,700 MB से नीचे चेतावनी देता है); हर प्लान इसे बड़े अंतर से पार करता है।
  • SSH और VNC एक्सेस (दोनों आपकी सदस्यता में शामिल)। VNC की एक बार आवश्यकता होती है: Docker Desktop एक GUI एप्लिकेशन है और इसे पहली बार डेस्कटॉप से लॉन्च करना होगा।
  • Docker Desktop for Mac, जो जब भी NanoClaw शुरू हो, चल रहा हो। Docker की शर्तें: व्यक्तिगत उपयोग, शिक्षा, गैर-व्यावसायिक ओपन सोर्स और 250 से कम कर्मचारियों और US$10 मिलियन से कम वार्षिक राजस्व वाली कंपनियों के लिए मुफ़्त; बड़ी कंपनियों और सरकारी संस्थाओं को सशुल्क सदस्यता चाहिए।
  • Homebrew, git, Node.js 22+ और pnpm 10। git मौजूद होना चाहिए; इंस्टॉलर Homebrew इंस्टॉल करने की पेशकश करता है और Node व pnpm गायब होने पर उन्हें स्वयं इंस्टॉल करता है (Node 20 2.3.0 से असमर्थित है)।
  • Mac पर Claude Code CLI। यह वैकल्पिक नहीं है: हर /add-<channel> स्किल, /customize, /debug, /update-nanoclaw और इंस्टॉलर की एरर रिकवरी प्रोजेक्ट रूट से Claude Code के अंदर चलती है।
  • console.anthropic.com से एक Anthropic API key (sk-ant-api…), जो प्रति टोकन बिल की जाती है। विज़ार्ड Claude सदस्यता से साइन इन करने की पेशकश भी करता है, लेकिन Anthropic की कानूनी शर्तें कहती हैं कि OAuth Claude Code और नेटिव Anthropic ऐप्स के सामान्य उपयोग के लिए है, और Agent SDK पर बनाए गए उत्पादों को API key प्रमाणीकरण का उपयोग करना चाहिए, इसलिए व्यावसायिक या हमेशा-चालू डिप्लॉयमेंट के लिए, key का उपयोग करें।
  • अपने एजेंट को कनेक्ट करने के लिए Telegram, WhatsApp या Discord पर एक मैसेजिंग अकाउंट (बिल्ट-इन टर्मिनल चैनल को कुछ नहीं चाहिए)।

3. चरण 1: SSH के माध्यम से कनेक्ट करें, Docker Desktop और Claude Code इंस्टॉल करें

सबसे पहले, अपने MyRemoteMac डैशबोर्ड के क्रेडेंशियल से अपने Mac mini में SSH करें और उन दो टूल की जांच करें जिन्हें इंस्टॉलर खोजने की उम्मीद करता है। NanoClaw इंस्टॉलर आपके लिए Homebrew, Node और Docker इंस्टॉल कर देगा, लेकिन Docker Desktop को पहले से इंस्टॉल करने से आप विज़ार्ड को इसकी आवश्यकता पड़ने से पहले इसे शुरू कर सकते हैं और डेमन को सत्यापित कर सकते हैं।

SSH के माध्यम से कनेक्ट करें

# Connect to your Mac mini
ssh admin@your-server-ip

# Verify you're on Apple Silicon
uname -m
# Expected output: arm64

# git is required (not auto-installed); Homebrew is offered by the installer if missing
git --version
brew --version

Docker Desktop for Mac इंस्टॉल और शुरू करें

यह ठीक वही कमांड है जो NanoClaw की अपनी setup/install-docker.sh macOS पर तब चलाती है जब docker गायब हो। Docker Desktop एक डेस्कटॉप एप्लिकेशन है: इसे VNC के माध्यम से Mac के डेस्कटॉप से एक बार लॉन्च करें, फिर SSH से पुष्टि करें कि डेमन जवाब देता है। यदि NanoClaw के शुरू होते समय यह नहीं चल रहा है, तो होस्ट "FATAL: Container runtime failed to start" के साथ बंद हो जाता है।

# Install Docker Desktop for Mac (the same Homebrew cask NanoClaw's installer uses)
brew install --cask docker

# Start Docker Desktop, a GUI app: do the first launch from the desktop (VNC)
open -a Docker

# The daemon must answer before NanoClaw can start
docker info

होस्ट पर Claude Code इंस्टॉल करें

NanoClaw की setup/install-claude.sh वही कमांड चलाती है जब claude गायब हो। अब से आप हर चैनल, प्रोवाइडर और अपडेट के लिए Claude Code का उपयोग करेंगे:

# Official Claude Code installer (the command NanoClaw's setup/install-claude.sh runs)
curl -fsSL https://claude.ai/install.sh | /bin/bash
claude --version

4. चरण 2: NanoClaw इंस्टॉल करें और अपनी Claude API key कॉन्फ़िगर करें

NanoClaw कोई ऐसा npm पैकेज नहीं है जिसे आप ग्लोबली इंस्टॉल करते हैं: आप रिपॉज़िटरी क्लोन करते हैं और एक वन-शॉट इंस्टॉलर चलाते हैं जो चेकआउट को आपके अपने इंस्टॉल में बदल देता है। बाद में फ़ोल्डर को वहीं रखें जहां वह है, launchd लेबल, इमेज नाम और इंस्टॉल slug इसके पथ से निकाले जाते हैं। 30 से 60 मिनट की योजना बनाएं; विज़ार्ड इंटरैक्टिव है।

क्लोन करें और इंस्टॉलर चलाएं

# Clone the canonical repo (nanocoai: the old qwibitai URL redirects here)
cd ~
git clone https://github.com/nanocoai/nanoclaw.git
cd nanoclaw

# One-shot installer: Node 22 + pnpm + Docker if missing, OneCLI gateway,
# credential registration, sandbox image, launchd service, optional channel
bash nanoclaw.sh

विज़ार्ड आपको प्रलेखित विकल्पों से गुज़ारता है: Standard setup → Fresh agent → सैंडबॉक्स इमेज: Echo द्वारा बनाई गई प्रीबिल्ट हार्डन्ड इमेज फ़ेच करें (मुफ़्त NanoClaw साइन-इन चाहिए, एक ही US रीजन से लगभग 800 MB) या इसे लोकली बिल्ड करें (3–10 मिनट, कोई अकाउंट नहीं, किसी से संपर्क नहीं करता, यूरोप या एशिया से तेज़ हो सकता है) → AI रनटाइम: Claude → अपनी Anthropic API key पेस्ट करें (अनुशंसित; "Sign in with my Claude subscription" भी दिया जाता है, पूर्वापेक्षाओं में नोट देखें) → मैसेजिंग चैनल के लिए Skip for now। इंस्टॉलर आपकी key को OneCLI Agent Vault में संग्रहीत करता है, एक क्रेडेंशियल गेटवे जो 2.4.0 से अनिवार्य है: एजेंट कंटेनर कभी कच्ची API key नहीं रखते।

स्क्रिप्टेड विकल्प और पहला संदेश

यदि आप नॉन-इंटरैक्टिव रन पसंद करते हैं, तो इंस्टॉलेशन पेज सेटअप-टाइम वेरिएबल्स का दस्तावेज़ीकरण करता है जो प्रॉम्प्ट का पहले से उत्तर देते हैं। किसी भी तरह, प्रोजेक्ट फ़ोल्डर से बिल्ट-इन टर्मिनल चैनल के साथ परीक्षण करें, कंटेनर के शुरू होते समय पहले जवाब में थोड़ा समय लग सकता है:

# Scripted setup (documented alternative to the wizard)
pnpm install
pnpm run setup:auto
# Pre-answer prompts with NANOCLAW_AGENT_PROVIDER, NANOCLAW_CHANNELS,
# NANOCLAW_HARDENED_IMAGE, NANOCLAW_SKIP; NANOCLAW_NO_DIAGNOSTICS=1 disables setup diagnostics

# First message through the built-in CLI channel (no credentials needed)
pnpm run chat "hello, who are you?"

# Re-run individual steps later: rebuild the image, reinstall the service, health check
pnpm run setup -- --step container
pnpm run setup -- --step service
pnpm run setup -- --step verify

.env में मॉडल चुनें और बुनियादी सेटिंग करें

इंस्टॉल-व्यापी सेटिंग्स प्रोजेक्ट रूट पर .env में रहती हैं (सेटअप द्वारा मोड 0600 के साथ बनाई गई); प्रति-एजेंट-ग्रुप सेटिंग्स डेटाबेस में रहती हैं और ncl एडमिन CLI से संपादित की जाती हैं। 2.4.0 से, जिन Claude ग्रुप में कोई मॉडल सेट नहीं है वे Opus 5.5 (claude-opus-5-5, $4 इनपुट / $20 आउटपुट प्रति मिलियन टोकन) उपयोग करते हैं; Claude Sonnet 5 की लागत $2 / $10 है, इसलिए यदि लागत मायने रखती है तो व्यक्तिगत सहायक के लिए इसे पिन करें। अन्य प्रोवाइडर प्रति एजेंट ग्रुप हैं: /add-codex (OpenAI) और /add-opencode (OpenRouter, OpenAI, Google, DeepSeek)। लोकल मॉडल: README /add-ollama-provider सूचीबद्ध करता है, लेकिन docs.nanoclaw.dev का प्रोवाइडर पेज कहता है कि यह वर्तमान main पर समर्थित ड्रॉप-इन स्विच नहीं है, इसे एक प्रयोग मानें, Claude को बदलने का तरीका नहीं।

# Install-wide model for every Claude group with no model set
# (aliases sonnet | opus | haiku, or a full id such as claude-sonnet-5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env

# Timezone for scheduled tasks and timestamps (IANA name)
echo 'TZ=Europe/Paris' >> .env

# .env is read only by the host process: restart it after edits
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>

# Per-group overrides via the ncl admin CLI (symlinked at ~/.local/bin/ncl by setup)
ncl groups config update --id <group-id> --model opus
ncl groups config update --id <group-id> --timezone Europe/Lisbon
# Switch a group to another provider (takes effect on the next container spawn)
ncl groups config update --id <group-id> --provider opencode

5. चरण 3: मैसेजिंग चैनल कनेक्ट करें

चैनल बंडल नहीं किए गए हैं: हर एक को प्रोजेक्ट रूट से चलाई गई Claude Code स्किल के रूप में मांग पर इंस्टॉल किया जाता है, जो आपके चेकआउट में एडाप्टर जोड़ती है। Telegram को चालू करना सबसे तेज़ है, @BotFather से एक बॉट बनाएं, स्किल के पूछने पर टोकन पेस्ट करें (यह .env में TELEGRAM_BOT_TOKEN के रूप में संग्रहीत होता है), फिर बॉट को वन-टाइम 6-अंकीय पेयरिंग कोड एक ऐसे संदेश के रूप में भेजें जिसमें केवल अंक हों। पोलिंग मोड का मतलब है कोई सार्वजनिक URL, वेबहुक या खुला पोर्ट नहीं:

# Step 1: Open Telegram and search for @BotFather
# Step 2: Send /newbot and follow the prompts
# Step 3: Copy the token

# Every channel is a Claude Code skill run from the project root
cd ~/nanoclaw && claude
/add-telegram
# Paste the token when asked (stored as TELEGRAM_BOT_TOKEN in .env).
# The wizard prints a one-time 6-digit pairing code: send exactly those digits to the bot.

# Groups: BotFather -> /mybots -> Bot Settings -> Group Privacy -> Turn off

WhatsApp कनेक्ट करें

नेटिव एडाप्टर WhatsApp Web प्रोटोकॉल बोलता है (Baileys, Meta का आधिकारिक API नहीं): QR कोड स्कैन करें, जो लगभग हर 60 सेकंड में बदलता है, या WhatsApp → Linked Devices के अंतर्गत 8-अक्षर का पेयरिंग कोड दर्ज करें। शेयर्ड-नंबर मोड में असिस्टेंट आपकी अपनी "You" सेल्फ-चैट में जवाब देता है; समर्पित नंबर के लिए एक अलग SIM का उपयोग करें और ASSISTANT_HAS_OWN_NUMBER=true सेट करें। यदि अनुपालन मायने रखता है, तो इसके बजाय /add-whatsapp-cloud (Meta Cloud API) का उपयोग करें:

claude
/add-whatsapp
# Scan the QR (rotates ~60 s) or enter the 8-character code in WhatsApp -> Linked Devices
# Auth state persists in store/auth/: keep that folder private

# Dedicated number (separate SIM) instead of your own chat:
# ASSISTANT_HAS_OWN_NUMBER=true in .env

# Meta's official Cloud API instead of the Web-protocol adapter:
# /add-whatsapp-cloud

Discord, iMessage और बाकी कनेक्ट करें

Discord एक बॉट टोकन और एक Gateway लिसनर का उपयोग करता है (कोई सार्वजनिक URL नहीं)। कैटलॉग में Slack, Mattermost (2.4.0 में नया), Signal, iMessage, Microsoft Teams, Google Chat, Matrix, Webex, WeChat, GitHub, Linear, Delta Chat, Emacs, Resend के माध्यम से ईमेल और Dial के माध्यम से एक वास्तविक फ़ोन नंबर भी शामिल हैं। लोकल iMessage बैकएंड केवल-macOS फ़ीचर है: Mac mini को Apple ID से iMessage में साइन-इन होना चाहिए और सटीक node बाइनरी को Full Disk Access चाहिए (होस्टेड Photon बैकएंड को इनमें से कुछ नहीं चाहिए)। बाद में किसी /add-<channel> स्किल को फिर से चलाने से एडाप्टर रिफ़्रेश होता है; /manage-channels हर बातचीत को एक एजेंट ग्रुप से जोड़ता है:

claude
/add-discord
# others: /add-slack /add-imessage /add-signal /add-teams /add-mattermost /add-matrix ...

# Wire conversations to agent groups
/manage-channels

# Silent agent? Check why messages were dropped (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list

6. चरण 4: launchd के साथ 24/7 चलाएं, फिर सुरक्षित रूप से अपडेट करें

24/7 संचालन के लिए NanoClaw को बूट पर शुरू होना और विफलता पर पुनः शुरू होना चाहिए। इंस्टॉलर ने यह पहले ही संभाल लिया है: इसका सर्विस चरण RunAtLoad और KeepAlive के साथ com.nanoclaw-v2-<slug> नाम का एक प्रति-उपयोगकर्ता launchd LaunchAgent लिखता है (slug = प्रोजेक्ट पथ के SHA-1 के पहले 8 हेक्स अक्षर; पुराने ट्यूटोरियल अभी भी 2.3.0 से पहले का लेबल com.nanoclaw दिखाते हैं), जो logs/nanoclaw.log और logs/nanoclaw.error.log में लॉग करता है। plist केवल PATH और HOME सेट करता है और .env को सोर्स नहीं करता, इसलिए हर .env संपादन के बाद होस्ट को पुनः शुरू करें।

सर्विस सत्यापित और प्रबंधित करें

# Is the LaunchAgent loaded? Find your label (com.nanoclaw-v2-<slug>)
launchctl list | grep nanoclaw
ls ~/Library/LaunchAgents/ | grep nanoclaw

# Health: host + connected adapters (ncl status is new in 2.4.0)
ncl status
pnpm run setup -- --step verify
docker ps --filter label=nanoclaw-install

# Live logs
tail -f logs/nanoclaw.log logs/nanoclaw.error.log

# Restart (also after every .env edit) / stop / start / reinstall the service
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
launchctl unload ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw-v2-<slug>.plist
pnpm run setup -- --step service   # regenerates the plist (wipes manual edits)

हेडलेस Mac mini पर रीबूट के बाद भी चालू रहें

यह भाग हमारी ऑपरेशंस अनुशंसा है, Apple और Docker के डॉक्यूमेंटेशन से संकलित, NanoClaw के डॉक्स हेडलेस Mac को कवर नहीं करते। LaunchAgent आपके उपयोगकर्ता सेशन में रहता है और Docker Desktop एक GUI ऐप है, इसलिए रीबूट के बाद जब तक कोई लॉग इन न करे, कुछ नहीं चलता। उसी उपयोगकर्ता अकाउंट के लिए Automatic login सक्षम करें जिसने bash nanoclaw.sh चलाया था, LaunchAgent और Docker Desktop की स्टार्ट-एट-साइन-इन सेटिंग दोनों प्रति-उपयोगकर्ता हैं, इसलिए किसी अन्य अकाउंट को ऑटो-लॉग-इन करने से सर्विस अनलोडेड और Docker बंद रह जाएगा (Apple: FileVault चालू रहते Automatic login उपलब्ध नहीं है)। याद रखें कि जो कोई भी Mac को पुनः शुरू करता है वह उसी सेशन में पहुंचता है, जो केवल SSH, VNC और WireGuard के माध्यम से ही पहुंच योग्य समर्पित Mac mini पर ही स्वीकार्य है; यदि आप इसके लिए एक गैर-एडमिन अकाउंट पसंद करते हैं, तो NanoClaw को उस अकाउंट के अंतर्गत इंस्टॉल करें, यह जानते हुए कि Homebrew इंस्टॉल करने और sudo pmset चलाने के लिए अभी भी एक एडमिनिस्ट्रेटर चाहिए (Docker Desktop स्वयं एक अनप्रिविलेज्ड उपयोगकर्ता के रूप में चलता है और केवल विशिष्ट फ़ीचर्स के लिए विशेषाधिकार प्राप्त एक्सेस मांगता है)। फिर Docker Desktop की "Start Docker Desktop when you sign in to your computer" सेटिंग चालू करें, और स्लीप अक्षम करें:

# 1. System Settings > Users & Groups > Automatic login = the user that ran bash nanoclaw.sh
#    (over VNC; not available with FileVault on; LaunchAgent + Docker Desktop are per-user)
# 2. Docker Desktop > Settings > General > "Start Docker Desktop when you sign in to your computer"

# 3. Keep the Mac awake (same as in our OpenClaw guide)
sudo pmset -a sleep 0 disksleep 0 standby 0 powernap 0

# 4. Reboot-test, then log back in over SSH and check
sudo reboot
docker info
launchctl list | grep nanoclaw

NanoClaw अपडेट करें (कभी git pull नहीं)

अपग्रेडिंग पेज स्पष्ट है: "Do not update with a raw git pull." NanoClaw हर स्वीकृत अपग्रेड को data/upgrade-state.json में दर्ज करता है और एक स्टार्टअप ट्रिपवायर बेमेल होने पर शुरू होने से इनकार कर देता है। एकमात्र समर्थित पथ Claude Code में /update-nanoclaw है: यह एक बैकअप ब्रांच और टैग बनाता है, अपस्ट्रीम को एक अलग worktree में स्टेज करता है, सत्यापित करता है (install, build, tests), सर्विस और कंटेनर रोकता है, .env, data, groups और store का स्नैपशॉट लेता है, कट-ओवर करता है, पुनः शुरू करता है और हेल्थ-चेक करता है। डर्टी वर्किंग ट्री पर या जब NanoClaw launchd के अंतर्गत नहीं चल रहा हो, यह अवरुद्ध रहता है। 2.4.0 पर जाने से पहले, यदि आप नहीं चाहते कि बिना मॉडल सेट वाले Claude ग्रुप Opus 5.5 पर स्विच हों तो अपना मॉडल पिन करें:

# Optional: pin the model BEFORE upgrading (2.4.0 default for unset Claude groups is Opus 5.5)
echo 'NANOCLAW_DEFAULT_MODEL=sonnet' >> .env

# The only supported update path: inside Claude Code, from the project root
cd ~/nanoclaw && claude
/update-nanoclaw
# Refresh installed channel/provider skills only:
/update-skills

# After resolving merge conflicts, or to roll back after cutover:
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"

# Remove this checkout only (service, containers, image, data; .env backed up to .env.bak)
bash nanoclaw.sh --uninstall --dry-run
bash nanoclaw.sh --uninstall

7. सुरक्षा हार्डनिंग (न्यूनतम विशेषाधिकार)

NanoClaw का थ्रेट मॉडल है "मान लें कि एजेंट प्रॉम्प्ट-इंजेक्टेड हो जाता है, फिर सुनिश्चित करें कि समझौता किए गए एजेंट के पास चुराने के लिए कुछ न हो और जाने के लिए कोई जगह न हो।" डिफ़ॉल्ट रूप से हर सेशन अपने स्वयं के कंटेनर में अनप्रिविलेज्ड node उपयोगकर्ता के रूप में --cap-drop=ALL, --security-opt no-new-privileges, --init, एक pids सीमा और हटाए गए setuid बिट्स के साथ चलता है; कोई होस्ट होम नहीं, कोई .ssh नहीं, कोई Docker सॉकेट नहीं, और OneCLI गेटवे auth हेडर को रास्ते में ही फिर से लिखता है ताकि कंटेनर कभी आपकी API key न देखें। अप्रूवल कार्ड (पैकेज, MCP सर्वर, सब-एजेंट, नई चैट पंजीकरण) को एडमिन के उत्तर की आवश्यकता होती है और अनुत्तरित रहने पर स्वतः अस्वीकृत हो जाते हैं, इन्हें रखें। सबसे सुरक्षित प्रलेखित कॉन्फ़िगरेशन निम्नलिखित जोड़ता है, और कभी अप्रूवल या गेटवे अक्षम नहीं करता:

  • अज्ञात प्रेषक: हर उस मैसेजिंग ग्रुप पर जहां अजनबी पहुंच सकते हैं, --unknown-sender-policy strict (चुपचाप छोड़ दिया जाता है) या request_approval सेट करें।
  • माउंट: allowlist (~/.config/nanoclaw/mount-allowlist.json) को अनुपस्थित या न्यूनतम रखें, इसके बिना सभी अतिरिक्त माउंट अवरुद्ध रहते हैं, और .ssh.gnupg.aws.kube.docker, credentials.env और .netrc वैसे भी अवरुद्ध पैटर्न हैं। माउंट तब तक रीड-ओनली हैं जब तक स्पष्ट रूप से अनुमति न दी जाए।
  • आइसोलेशन: "संदेह होने पर, अधिक आइसोलेटेड शुरू करें।" एक पारिवारिक चैट और एक क्लाइंट चैनल एक ही एजेंट नहीं होने चाहिए; माउंट किए गए रिपो और डिप्लॉय क्रेडेंशियल वाले एजेंट को अजनबियों से बात करने वाले एजेंट के साथ एजेंट ग्रुप साझा नहीं करना चाहिए। एक ग्रुप के अंदर अलग-अलग सेशन गोपनीयता की सीमा नहीं हैं।
  • सीमाएं और इग्रेस: CONTAINER_CPU_LIMIT और CONTAINER_MEMORY_LIMIT सेट करें, और जब आपके टूल प्रॉक्सी के माध्यम से काम करने लगें तब NANOCLAW_EGRESS_LOCKDOWN=true सक्षम करें (सारा ट्रैफ़िक गेटवे के माध्यम से, कंटेनर एक आंतरिक नेटवर्क पर), यह डिफ़ॉल्ट रूप से बंद है क्योंकि यह उन टूल को तोड़ देता है जो प्रॉक्सी से अनजान हैं।
  • डिस्क पर सीक्रेट: .env मोड 0600 के साथ बनाई जाती है और केवल चैनल टोकन रखती है; एजेंट API key वॉल्ट में रहती हैं। store/auth/ (WhatsApp सेशन) को भी निजी रखें, यह हमारी अनुशंसा है, NanoClaw का दावा नहीं। जब तक NANOCLAW_NO_DIAGNOSTICS=1 न हो, सेटअप डायग्नोस्टिक्स भेजता है।
# Unknown senders: drop silently (or route to an approval card) on every reachable group
ncl messaging-groups list
ncl messaging-groups update --id <mg-id> --unknown-sender-policy strict
# or: --unknown-sender-policy request_approval

# Opt-in per-container caps (passed to docker create --cpus / --memory)
echo 'CONTAINER_CPU_LIMIT=2' >> .env
echo 'CONTAINER_MEMORY_LIMIT=8g' >> .env

# Once every tool works through the OneCLI proxy: no direct internet route for containers
echo 'NANOCLAW_EGRESS_LOCKDOWN=true' >> .env
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>

# Mounts are deny-by-default and read-only unless the allowlist root sets allowReadWrite
ncl groups config add-mount --id <group-id> --host /path/on/mac --container /path/in/container

# Secrets on disk: .env must stay 0600 (setup creates it that way)
ls -l .env

अवशिष्ट जोखिम जिन्हें सैंडबॉक्स कवर नहीं करता: एक समझौता किया गया एजेंट अभी भी उस हर गंतव्य को संदेश भेज सकता है जिससे वह जुड़ा है, अपना स्वयं का वर्कस्पेस और मेमोरी पढ़ या नष्ट कर सकता है, उसे दिए गए क्रेडेंशियल खर्च कर सकता है और ग्रुप की मेमोरी को दूषित कर सकता है, इसलिए हर एजेंट ग्रुप का दायरा संकीर्ण रखें।

8. सामान्य समस्याओं का निवारण

"FATAL: Container runtime failed to start"

होस्ट के शुरू होते समय Docker Desktop नहीं चल रहा था, लॉग-इन सेशन के बिना रीबूट के बाद की क्लासिक समस्या। डेमन जांचें, Docker Desktop शुरू करें, फिर NanoClaw पुनः शुरू करें:

# Is the Docker daemon up?
docker info

# Not running? Start Docker Desktop (first launch must be from the desktop over VNC)
open -a Docker

# Then restart NanoClaw and watch the logs
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
tail -f logs/nanoclaw.error.log

"NanoClaw stopped: update did not go through the supported path"

किसी ने git pull चलाया (या अन्यथा चेकआउट बदला) और data/upgrade-state.json अब मेल नहीं खाता। समर्थित अपडेट से फिर से गुज़रें, या स्टेज किए गए अपडेट को रिज़्यूम/रोल बैक करें:

# Never `git pull`. Run the supported update from the project root:
cd ~/nanoclaw && claude
/update-nanoclaw

# A staged update stuck in conflict, or a bad cutover?
pnpm exec tsx scripts/update-nanoclaw.ts resume --id "$id"
pnpm exec tsx scripts/update-nanoclaw.ts rollback --id "$id"

# The update is blocked on a dirty working tree, detached HEAD or a host not under launchd
git status

एजेंट चैट में कभी जवाब नहीं देता

आमतौर पर यह क्रैश के बजाय वायरिंग या ट्रिगर की समस्या होती है: एजेंट केवल तभी जवाब देता है जब उसका ट्रिगर (डिफ़ॉल्ट रूप से @Andy, ASSISTANT_NAME से; WhatsApp विज़ार्ड का डिफ़ॉल्ट Nano है) मेल खाता है, और चैट का एक एजेंट ग्रुप से जुड़ा होना ज़रूरी है। छोड़े गए संदेश और सेशन सूचीबद्ध करें:

# Why were messages dropped? (no_agent_wired, no_agent_engaged, ...)
ncl dropped-messages list
ncl sessions list

# Wire the chat to an agent group
claude
/manage-channels

# Telegram: pending pairing codes live here; the message must contain only the 6 digits
cat data/telegram-pairings.json

हाथ से मर्ज किए गए अपडेट के बाद होस्ट शुरू होने से इनकार करता है (कोई क्रेडेंशियल गेटवे नहीं)

2.4.0 से होस्ट पंजीकृत क्रेडेंशियल गेटवे के बिना शुरू होने से इनकार करता है। हाथ से मर्ज किए गए फ़ोर्क को OneCLI (या Iron Proxy) पंजीकृत करना होगा और .env में NANOCLAW_GATEWAY_PROVIDER जांचना होगा; OpenCode इंस्टॉल को /add-opencode फिर से चलाना, इमेज रीबिल्ड करना और अपने ग्रुप पुनः शुरू करना भी होगा (कमांड 2.4 रिलीज़ नोट से):

# Register the gateway (OneCLI is the default; Iron Proxy is the alternative)
claude
/add-onecli
# or: /add-iron-proxy

# Check the provider recorded in .env (onecli | iron-proxy)
grep NANOCLAW_GATEWAY_PROVIDER .env

# OpenCode installs: re-run /add-opencode, then rebuild the image, restart the host and the groups
./container/build.sh build
launchctl kickstart -k gui/$(id -u)/com.nanoclaw-v2-<slug>
ncl groups restart --id <group-id>

Mac mini के रीबूट के बाद कुछ नहीं चलता

LaunchAgent और Docker Desktop दोनों उपयोगकर्ता सेशन में रहते हैं। जांचें कि सर्विस पंजीकृत है, इंस्टॉलर चलाने वाले उपयोगकर्ता के लिए Automatic login चालू है और Docker Desktop साइन-इन पर शुरू होता है, फिर रीबूट-टेस्ट करें:

# Is the LaunchAgent registered?
launchctl list | grep nanoclaw

# Not listed? Reinstall it (regenerates the plist)
pnpm run setup -- --step service

# Docker not up after login? Enable "Start Docker Desktop when you sign in" (Settings > General)
docker info

# Then reboot-test again
sudo reboot

9. क्लाउड VPS बनाम लागत विश्लेषण

NanoClaw स्वयं मुफ़्त है (MIT)। आप होस्ट और अपनी Anthropic API key पर मॉडल उपयोग के लिए भुगतान करते हैं, जो किसी भी होस्ट पर समान है, क्योंकि NanoClaw समर्थित तरीके से लोकल मॉडल नहीं चलाता। Mac mini एक समर्पित भौतिक मशीन है, इसलिए उचित तुलना एक समर्पित या AI-टियर क्लाउड इंस्टेंस से है, सबसे सस्ते शेयर्ड VPS से नहीं:

उपयोग मामला AI कॉल/माह क्लाउड VPS लागत MyRemoteMac लागत मासिक बचत
व्यक्तिगत सहायक, एक चैनल ~500 कॉल $120/माह (समर्पित AI-टियर इंस्टेंस) $85/माह (Mac mini M4) $35/माह
छोटी टीम, कई चैनल + शेड्यूल्ड टास्क ~5,000 कॉल $200/माह $85/माह (Mac mini M4) $115/माह
समवर्ती कंटेनरों वाले कई एजेंट ग्रुप 10,000+ कॉल $350+/माह $149/माह (Mac mini M6) $201+/माह

मान्यताएं: VPS कीमतें वही रेंज हैं जो हमारी गाइड्स में समर्पित AI-टियर इंस्टेंस के लिए उपयोग की जाती हैं और किसी विशिष्ट प्रदाता के कोटेशन नहीं हैं; एक शेयर्ड 4 GB Linux VPS किसी भी Mac mini प्लान से सस्ता होगा। MyRemoteMac कीमतें USD में वर्तमान मासिक दरें हैं, कर को छोड़कर, 1 Gbps शामिल। मॉडल उपयोग दोनों तरफ़ अतिरिक्त है: Opus 5.5 $4 / $20 प्रति मिलियन इनपुट / आउटपुट टोकन है और Sonnet 5 $2 / $10 है (platform.claude.com, सितंबर 2026)। NanoClaw होस्ट, Docker Desktop VM या प्रति-सेशन कंटेनरों के लिए कोई RAM या CPU फ़ुटप्रिंट आंकड़े प्रकाशित नहीं करता, इसलिए प्लान की सलाह गुणात्मक रहती है।

कौन सा प्लान: $85/माह पर 16 GB Mac mini M4 व्यक्तिगत सहायक या छोटी टीम के बॉट के लिए एक आरामदायक होस्ट है, NanoClaw का अपना न्यूनतम 4 GB है। Mac mini M6 तब चुनें जब आप Docker Desktop VM के साथ-साथ समवर्ती कंटेनरों वाले कई एजेंट ग्रुप चलाते हैं, या जब वही Mac iOS ऐप्स भी बिल्ड करता है। टोकन बिल को पूर्वानुमेय रखने के लिए, NANOCLAW_DEFAULT_MODEL=sonnet सेट करें और Opus को केवल उस ग्रुप के लिए आरक्षित रखें जिसे इसकी ज़रूरत है।

10. NanoClaw बनाम OpenClaw

NanoClaw स्पष्ट रूप से खुद को OpenClaw के मुकाबले में रखता है: इसका README दावा करता है कि OpenClaw में लगभग आधा मिलियन लाइन कोड, 53 कॉन्फ़िग फ़ाइलें और 70+ डिपेंडेंसी हैं, और OS-स्तरीय आइसोलेशन के बजाय एप्लिकेशन स्तर पर सुरक्षा (allowlist, पेयरिंग कोड) है, ये आंकड़े NanoClaw के README से हैं, स्वतंत्र रूप से मापे नहीं गए। हमारी OpenClaw गाइड के आधार पर, Mac mini पर व्यावहारिक अंतर ये हैं। OpenClaw एक ग्लोबल npm इंस्टॉल है (Node 26.1+ अनुशंसित), एक Gateway प्रोसेस, एक JSON5 कॉन्फ़िग फ़ाइल, बंडल किए गए चैनल, कोई Docker नहीं। NanoClaw है git clone + bash nanoclaw.sh, Node 22+ और pnpm 10, होस्ट पर Docker Desktop, Homebrew और Claude Code चाहिए, कोई कॉन्फ़िग फ़ाइल नहीं (कस्टमाइज़ेशन आपके अपने चेकआउट में कोड है), हर सेशन को cap-drop और no-new-privileges के साथ एक Linux कंटेनर में चलाता है, डिफ़ॉल्ट रूप से माउंट अवरुद्ध करता है और क्रेडेंशियल गेटवे के माध्यम से API key को सैंडबॉक्स से बाहर रखता है; चैनल स्किल्स के रूप में मांग पर इंस्टॉल होते हैं और अपडेट केवल /update-nanoclaw के माध्यम से होते हैं। संक्षेप में: NanoClaw अपनी बनावट से ही अधिक सुरक्षित है लेकिन चलाने में भारी है (हमेशा चालू एक Docker Desktop VM, एक GUI लॉगिन सेशन, बड़ी कंपनियों के लिए Docker का लाइसेंस नियम, 30–60 मिनट का इंटरैक्टिव सेटअप और एक फ़ोर्क जिसे आप मेंटेन करते हैं); OpenClaw इंस्टॉल और कॉन्फ़िगर करने में हल्का है लेकिन एप्लिकेशन-स्तरीय अनुमति जांच पर निर्भर करता है। दोनों डिफ़ॉल्ट रूप से Claude उपयोग करते हैं; NanoClaw प्रति एजेंट ग्रुप Codex और OpenCode जोड़ता है। Mac mini की लागत दोनों के लिए समान है।

पहले से OpenClaw पर हैं? NanoClaw /migrate-from-openclaw देता है, एक निर्देशित Claude Code बातचीत जो OpenClaw एजेंट को एजेंट ग्रुप, चैट को जुड़े हुए मैसेजिंग ग्रुप, IDENTITY.md/SOUL.md को instructions.prepend.md और memory/, स्किल्स को container/skills, चैनल टोकन को .env, API key को OneCLI वॉल्ट, cron जॉब्स को ncl tasks, MCP सर्वर को प्रति-ग्रुप कॉन्फ़िग और allowlist को unknown_sender_policy और roles में मैप करती है। WhatsApp को फिर से प्रमाणित करना होगा; human delay और TTS का कोई v2 समकक्ष नहीं है। इसके बजाय शून्य से शुरू कर रहे हैं? चुनने से पहले हमारी Mac mini पर OpenClaw गाइड और हमारी Hermes Agent गाइड पढ़ें।

11. FAQ

क्या NanoClaw उपयोग के लिए मुफ़्त है?

हां। NanoClaw 30k+ GitHub स्टार के साथ MIT-लाइसेंस प्राप्त है, Gavriel Cohen द्वारा बनाया गया और NanoCo द्वारा मेंटेन किया गया। आप Mac mini (MyRemoteMac पर M4 के लिए $85/माह से, M6 के लिए $149/माह) और अपनी Anthropic API key पर Claude उपयोग के लिए भुगतान करते हैं। Docker Desktop व्यक्तिगत उपयोग और 250 कर्मचारियों व US$10 मिलियन राजस्व से कम वाली कंपनियों के लिए मुफ़्त है; बड़ी कंपनियों और सरकारी संस्थाओं को सशुल्क Docker सदस्यता चाहिए।

क्या मुझे Mac mini पर वाकई Docker Desktop चाहिए?

हां। macOS पर NanoClaw को Docker Desktop चाहिए, जिसे इसका इंस्टॉलर brew install --cask docker से जोड़ता है; Docker ही शिप किया गया रनटाइम है (NANOCLAW_RUNTIME_DRIVER=docker, 2.3.0 से एक चयन योग्य ड्राइवर सीम के पीछे)। Apple का अपना कंटेनर टूल आज समर्थित रनटाइम नहीं है, v2 /add-apple-container का काम एक खुला ड्राफ़्ट पुल रिक्वेस्ट है। हर एजेंट सेशन अपने स्वयं के Linux कंटेनर में चलता है, जो NanoClaw के सुरक्षा मॉडल का पूरा सार है।

क्या मैं API key के बजाय अपनी Claude सदस्यता उपयोग कर सकता हूं?

NanoClaw का विज़ार्ड "Sign in with my Claude subscription" की पेशकश करता है और एक OAuth टोकन स्वीकार करता है। हालांकि, Anthropic की कानूनी शर्तें कहती हैं कि OAuth प्रमाणीकरण विशेष रूप से सब्सक्राइबरों द्वारा Claude Code और नेटिव Anthropic एप्लिकेशन के सामान्य उपयोग के लिए है, कि Agent SDK पर बनाने वाले डेवलपर्स को API key प्रमाणीकरण का उपयोग करना चाहिए, और कि Anthropic इसे बिना सूचना के लागू कर सकता है। व्यावसायिक या हमेशा-चालू डिप्लॉयमेंट के लिए, Console से API key का उपयोग करें, और अपने Claude.ai क्रेडेंशियल कभी संग्रहीत या साझा न करें।

NanoClaw के लिए मुझे कौन सा Mac mini प्लान चुनना चाहिए?

NanoClaw कम से कम 4 GB RAM मांगता है और इससे आगे कोई फ़ुटप्रिंट आंकड़े प्रकाशित नहीं करता, इसलिए सलाह गुणात्मक है: $85/माह पर 16 GB Mac mini M4 कुछ चैनलों वाले व्यक्तिगत सहायक या छोटी टीम के बॉट को आराम से होस्ट करता है। $149/माह से Mac mini M6 तब चुनें जब कई एजेंट ग्रुप Docker Desktop VM के साथ-साथ एक ही समय में कंटेनर चलाते हैं, या जब वही Mac Xcode बिल्ड या अन्य वर्कलोड भी चलाता है।

क्या NanoClaw Mac mini के रीबूट के बाद भी चलता रहता है?

हां, बशर्ते एक उपयोगकर्ता सेशन वापस आए: इंस्टॉलर एक प्रति-उपयोगकर्ता LaunchAgent (com.nanoclaw-v2-<slug>, KeepAlive) पंजीकृत करता है और Docker Desktop एक GUI ऐप है, इसलिए हेडलेस Mac mini पर उसी उपयोगकर्ता अकाउंट के लिए Automatic login सक्षम करें जिसने bash nanoclaw.sh चलाया था (दोनों प्रति-उपयोगकर्ता हैं; FileVault चालू रहते उपलब्ध नहीं), Docker Desktop की स्टार्ट-एट-साइन-इन सेटिंग चालू करें और pmset से स्लीप अक्षम करें। एक टेस्ट रीबूट के बाद launchctl list | grep nanoclaw और docker info से सत्यापित करें। यह हेडलेस रेसिपी हमारी अनुशंसा है; NanoClaw के डॉक्स केवल कंप्यूटर को चालू और कनेक्टेड रखने को कहते हैं।

क्या मैं अपना मौजूदा OpenClaw सेटअप NanoClaw में माइग्रेट कर सकता हूं?

हां। NanoClaw प्रोजेक्ट रूट से Claude Code में /migrate-from-openclaw चलाएं: यह OpenClaw एजेंट को एजेंट ग्रुप, चैट को मैसेजिंग ग्रुप, IDENTITY.md और SOUL.md को instructions.prepend.md और memory/, स्किल्स को container/skills (समान फ़ॉर्मेट), चैनल टोकन को .env, API key को OneCLI वॉल्ट, cron जॉब्स को ncl tasks और allowlist को प्रेषक नीतियों में मैप करता है। WhatsApp जानबूझकर माइग्रेट नहीं किया जाता, आप QR फिर से स्कैन करते हैं, और human delay व TTS का कोई v2 समकक्ष नहीं है।

12. स्रोत और आगे पढ़ें

इस गाइड की हर कमांड, पथ, वेरिएबल और आवश्यकता को 28 सितंबर, 2026 को आधिकारिक NanoClaw रिपॉज़िटरी (nanocoai/nanoclaw, v2.4.0 23 सितंबर, 2026 को जारी, पुराना qwibitai URL वहीं रीडायरेक्ट होता है) और docs.nanoclaw.dev के विरुद्ध जांचा गया था, साथ ही प्लेटफ़ॉर्म तथ्यों के लिए Docker, Anthropic और Apple के डॉक्यूमेंटेशन के विरुद्ध। एजेंट के अंदर Claude Code बिल्ड जैसे वर्शन पिन हर रिलीज़ के साथ बदलते हैं, इसलिए वर्तमान मानों के लिए इन पेजों को देखें:

संबंधित गाइड्स

NanoClaw को 24/7 चलाने के लिए तैयार हैं?

अपने सैंडबॉक्स्ड AI असिस्टेंट होस्ट के रूप में एक समर्पित Mac mini डिप्लॉय करें। Mac mini M4 $85/माह से, Mac mini M6 $149/माह से।

और जानकारी चाहिए?

चरण-दर-चरण सेटअप, कॉन्फ़िगरेशन संदर्भ और समस्या-निवारण के लिए संपूर्ण दस्तावेज़ देखें।

दस्तावेज़ खोलें →