Anleitung - KI & Automatisierung

Wie Sie NanoClaw rund um die Uhr selbst auf einem dedizierten Mac mini hosten

NanoClaw ist ein quelloffener KI-Assistent (MIT, 30k+ Sterne), der Ihnen aus WhatsApp, Telegram, Discord, Slack, iMessage und mehr antwortet und jede Agentensitzung in einem eigenen Docker-Container ausführt, ein per Prompt-Injection kompromittierter Agent hat so nichts zu stehlen und kommt nirgendwohin. Ein dedizierter Mac mini gibt ihm ein Always-On-Zuhause auf Apple Silicon mit vollem Root-Zugriff, SSH und VNC, ab 85 $/Monat.

30 Min. Lesezeit Aktualisiert am 28. September 2026

1. Warum NanoClaw auf einem dedizierten Mac mini betreiben?

NanoClaw antwortet nur, solange sein Host eingeschaltet und verbunden ist, der Quickstart sagt das ganz offen, was einen Laptop, der in den Ruhezustand geht, ausschließt. Es braucht eine Mac- oder Linux-Maschine mit mindestens 4 GB RAM plus Docker (Docker Desktop unter macOS), und die GitHub-Beschreibung positioniert es als leichtgewichtige Alternative zu OpenClaw, die aus Sicherheitsgründen in Containern läuft. Ein geteilter Linux-VPS kann günstiger sein als ein Mac mini, also seien Sie sich im Klaren, was Sie kaufen: einen dedizierten physischen 1:1-Mac mit Apple Silicon, den niemand sonst nutzt, die einzige Plattform, auf der das lokale iMessage-Backend von NanoClaw funktioniert, eine echte Desktop-Sitzung für Docker Desktop und eine Maschine, die Sie auch für Xcode-Builds oder lokale Modelle verwenden können.

Merkmal Cloud-VPS (geteilte Instanz) Mac mini (MyRemoteMac)
Monatliche Kosten Variiert je nach Größe; dedizierte Instanzen kosten mehr 85 $/Monat (M4) oder 149 $/Monat (M6), Pauschale, 1 Gbps inklusive
Hardware Geteilte, virtualisierte CPU und RAM (NanoClaw führt Google-Compute-Engine-VMs als nicht unterstützt auf) Dedizierter physischer 1:1-Mac mit Apple Silicon
Container-Laufzeit Docker Engine unter Linux Docker Desktop für Mac (dieselben Linux-Container pro Sitzung)
iMessage (lokales Backend) Nicht möglich (nur macOS) Unterstützt auf einem bei iMessage angemeldeten Mac
Zugriff SSH Voller Root-Zugriff, SSH, VNC, WireGuard-VPN
Verfügbarkeit Abhängig vom Anbieter 99,9 % SLA

Was NanoClaw ist: Ein einziger Node.js-Host-Prozess leitet Nachrichten aus Ihren Chat-Apps an Docker-Container pro Sitzung weiter, in denen Agenten auf Claude Code über Anthropics Claude Agent SDK laufen. Es gibt keine Konfigurationsdateien außer .env und einer SQLite-Datenbank: Sie passen es an, indem Sie Claude Code bitten, den Code in Ihrem eigenen Checkout zu ändern. Version zum Zeitpunkt der Erstellung: v2.4.0 (23. September 2026), erstellt von Gavriel Cohen und gepflegt von NanoCo.

2. Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben. Alles Nachstehende stammt aus der offiziellen README, dem Quickstart und den Installationsseiten von NanoClaw sowie aus den Bedingungen von Docker und Anthropic für die Plattformfakten:

  • Einen dedizierten Mac mini von MyRemoteMac, M4 ab 85 $/Monat (16 GB / 256 GB) oder Mac mini M6 ab 149 $/Monat. NanoClaw verlangt mindestens 4 GB RAM (der Installer warnt unter 3.700 MB); jeder Tarif übertrifft das mit großem Abstand.
  • SSH- und VNC-Zugriff (beides in Ihrem Abonnement enthalten). VNC wird einmal benötigt: Docker Desktop ist eine GUI-Anwendung und muss beim ersten Mal vom Desktop aus gestartet werden.
  • Docker Desktop für Mac, das läuft, wann immer NanoClaw startet. Dockers Bedingungen: kostenlos für den persönlichen Gebrauch, Bildung, nicht-kommerzielles Open Source und Unternehmen mit weniger als 250 Mitarbeitern und weniger als 10 Millionen US-Dollar Jahresumsatz; größere Unternehmen und Behörden benötigen ein kostenpflichtiges Abonnement.
  • Homebrew, git, Node.js 22+ und pnpm 10. git muss vorhanden sein; der Installer bietet an, Homebrew zu installieren, und installiert Node und pnpm selbst, falls sie fehlen (Node 20 wird seit 2.3.0 nicht mehr unterstützt).
  • Die Claude Code CLI auf dem Mac. Sie ist nicht optional: Jeder /add-<channel>-Skill, /customize, /debug, /update-nanoclaw und die Fehlerbehebung des Installers laufen in Claude Code aus dem Projektstammverzeichnis.
  • Einen Anthropic API-Schlüssel (sk-ant-api…) von console.anthropic.com, abgerechnet pro Token. Der Assistent bietet auch die Anmeldung mit einem Claude-Abonnement an, aber die rechtlichen Bedingungen von Anthropic besagen, dass OAuth für die gewöhnliche Nutzung von Claude Code und nativen Anthropic-Apps gedacht ist und dass auf dem Agent SDK aufgebaute Produkte die Authentifizierung per API-Schlüssel verwenden sollen, für ein geschäftliches oder dauerhaft laufendes Deployment verwenden Sie daher einen Schlüssel.
  • Ein Messaging-Konto bei Telegram, WhatsApp oder Discord, um Ihren Agenten zu verbinden (der integrierte Terminal-Kanal braucht nichts).

3. Schritt 1: Per SSH verbinden, Docker Desktop und Claude Code installieren

Verbinden Sie sich zunächst per SSH mit Ihrem Mac mini, mit den Zugangsdaten aus Ihrem MyRemoteMac-Dashboard, und prüfen Sie die beiden Tools, die der Installer vorzufinden erwartet. Der NanoClaw-Installer installiert Homebrew, Node und Docker für Sie, aber wenn Sie Docker Desktop vorab installieren, können Sie es starten und den Daemon überprüfen, bevor der Assistent ihn braucht.

Per SSH verbinden

# 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 für Mac installieren und starten

Das ist genau der Befehl, den NanoClaws eigenes setup/install-docker.sh unter macOS ausführt, wenn docker fehlt. Docker Desktop ist eine Desktop-Anwendung: Starten Sie es einmal vom Desktop des Mac aus über VNC und bestätigen Sie dann per SSH, dass der Daemon antwortet. Läuft es nicht, wenn NanoClaw startet, beendet sich der Host mit "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 auf dem Host installieren

NanoClaws setup/install-claude.sh führt denselben Befehl aus, wenn claude fehlt. Sie werden Claude Code von nun an für jeden Kanal, Anbieter und jedes Update verwenden:

# 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. Schritt 2: NanoClaw installieren und Claude API-Schlüssel konfigurieren

NanoClaw ist kein npm-Paket, das Sie global installieren: Sie klonen das Repository und führen einen One-Shot-Installer aus, der den Checkout in Ihre eigene Installation verwandelt. Lassen Sie den Ordner danach, wo er ist, das launchd-Label, der Image-Name und der Installations-Slug werden aus seinem Pfad abgeleitet. Planen Sie 30 bis 60 Minuten ein; der Assistent ist interaktiv.

Klonen und den Installer ausführen

# 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

Der Assistent führt Sie durch die dokumentierten Entscheidungen: Standard setup → Fresh agent → Sandbox-Image: das vorgefertigte gehärtete Image von Echo laden (benötigt eine kostenlose NanoClaw-Anmeldung, etwa 800 MB aus einer einzigen US-Region) oder lokal bauen (3–10 Minuten, kein Konto, kontaktiert nichts, aus Europa oder Asien möglicherweise schneller) → KI-Laufzeit: Claude → Ihren Anthropic API-Schlüssel einfügen (empfohlen; "Sign in with my Claude subscription" wird ebenfalls angeboten, siehe den Hinweis unter Voraussetzungen) → Skip for now für den Messaging-Kanal. Der Installer speichert Ihren Schlüssel im OneCLI Agent Vault, einem Credential Gateway, das seit 2.4.0 Pflicht ist: Agenten-Container halten niemals rohe API-Schlüssel.

Skript-Alternative und erste Nachricht

Wenn Sie einen nicht-interaktiven Durchlauf bevorzugen, dokumentiert die Installationsseite Setup-Variablen, die die Fragen vorab beantworten. In beiden Fällen testen Sie mit dem integrierten Terminal-Kanal aus dem Projektordner, die erste Antwort kann etwas dauern, während der Container startet:

# 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

Modell wählen und die Grundlagen in .env festlegen

Installationsweite Einstellungen liegen in .env im Projektstammverzeichnis (vom Setup mit Modus 0600 erstellt); Einstellungen pro Agentengruppe liegen in der Datenbank und werden mit der Admin-CLI ncl bearbeitet. Seit 2.4.0 verwenden Claude-Gruppen ohne gesetztes Modell Opus 5.5 (claude-opus-5-5, 4 $ Input / 20 $ Output pro Million Token); Claude Sonnet 5 kostet 2 $ / 10 $, pinnen Sie es also für einen persönlichen Assistenten, wenn die Kosten eine Rolle spielen. Andere Anbieter gelten pro Agentengruppe: /add-codex (OpenAI) und /add-opencode (OpenRouter, OpenAI, Google, DeepSeek). Lokale Modelle: Die README führt /add-ollama-provider auf, aber die Anbieterseite auf docs.nanoclaw.dev stellt klar, dass es auf dem aktuellen main kein unterstützter Drop-in-Wechsel ist, betrachten Sie es als Experiment, nicht als Weg, Claude zu ersetzen.

# 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. Schritt 3: Messaging-Kanäle verbinden

Kanäle sind nicht mitgeliefert: Jeder wird bei Bedarf als Claude-Code-Skill aus dem Projektstammverzeichnis installiert, wodurch der Adapter zu Ihrem Checkout hinzugefügt wird. Telegram ist am schnellsten einsatzbereit, erstellen Sie einen Bot mit @BotFather, fügen Sie das Token ein, wenn der Skill danach fragt (es wird als TELEGRAM_BOT_TOKEN in .env gespeichert), und senden Sie dann den einmaligen 6-stelligen Pairing-Code als Nachricht, die nichts als die Ziffern enthält, an den Bot. Polling-Modus bedeutet: keine öffentliche URL, kein Webhook, kein offener Port:

# 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 verbinden

Der native Adapter spricht das WhatsApp-Web-Protokoll (Baileys, nicht die offizielle API von Meta): Scannen Sie den QR-Code, der etwa alle 60 Sekunden wechselt, oder geben Sie den 8-stelligen Pairing-Code unter WhatsApp → Verknüpfte Geräte ein. Im Modus mit geteilter Nummer antwortet der Assistent in Ihrem eigenen "Du"-Selbstchat; für eine eigene Nummer verwenden Sie eine separate SIM und setzen ASSISTANT_HAS_OWN_NUMBER=true. Wenn Compliance eine Rolle spielt, verwenden Sie stattdessen /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 und den Rest verbinden

Discord verwendet ein Bot-Token und einen Gateway-Listener (keine öffentliche URL). Der Katalog deckt außerdem Slack, Mattermost (neu in 2.4.0), Signal, iMessage, Microsoft Teams, Google Chat, Matrix, Webex, WeChat, GitHub, Linear, Delta Chat, Emacs, E-Mail über Resend und eine echte Telefonnummer über Dial ab. Das lokale iMessage-Backend ist die reine macOS-Funktion: Der Mac mini muss mit einer Apple-ID bei iMessage angemeldet sein, und genau die node-Binärdatei braucht Vollzugriff auf die Festplatte (das gehostete Photon-Backend braucht beides nicht). Ein späteres erneutes Ausführen eines /add-<channel>-Skills aktualisiert den Adapter; /manage-channels verknüpft jedes Gespräch mit einer Agentengruppe:

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. Schritt 4: Rund um die Uhr mit launchd betreiben, dann sicher aktualisieren

Für den Betrieb rund um die Uhr muss NanoClaw beim Booten starten und bei einem Fehler neu starten. Der Installer hat das bereits erledigt: Sein Dienst-Schritt schreibt einen launchd-LaunchAgent auf Benutzerebene namens com.nanoclaw-v2-<slug> (slug = die ersten 8 Hex-Zeichen des SHA-1 des Projektpfads; ältere Tutorials zeigen noch das Label com.nanoclaw von vor 2.3.0) mit RunAtLoad und KeepAlive, der nach logs/nanoclaw.log und logs/nanoclaw.error.log protokolliert. Die plist setzt nur PATH und HOME und liest .env nicht ein, starten Sie den Host also nach jeder Änderung an .env neu.

Den Dienst überprüfen und verwalten

# 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)

Einen Neustart auf einem headless Mac mini überstehen

Dieser Teil ist unsere Betriebsempfehlung, zusammengestellt aus der Dokumentation von Apple und Docker, die NanoClaw-Dokumentation behandelt headless Macs nicht. Der LaunchAgent lebt in Ihrer Benutzersitzung und Docker Desktop ist eine GUI-App, nach einem Neustart läuft also nichts, bis sich jemand anmeldet. Aktivieren Sie die automatische Anmeldung für dasselbe Benutzerkonto, das bash nanoclaw.sh ausgeführt hat, der LaunchAgent und die Einstellung von Docker Desktop zum Start bei der Anmeldung sind beide benutzerbezogen, ein anderes Konto automatisch anzumelden würde den Dienst also ungeladen und Docker gestoppt lassen (Apple: Die automatische Anmeldung ist nicht verfügbar, solange FileVault aktiviert ist). Bedenken Sie, dass jeder, der den Mac neu startet, in dieser Sitzung landet, was nur auf einem dedizierten Mac mini akzeptabel ist, der ausschließlich über SSH, VNC und WireGuard erreichbar ist; wenn Sie dafür lieber ein Konto ohne Administratorrechte verwenden, installieren Sie NanoClaw unter diesem Konto, im Wissen, dass die Installation von Homebrew und das Ausführen von sudo pmset weiterhin einen Administrator benötigen (Docker Desktop selbst läuft als unprivilegierter Benutzer und fragt nur für bestimmte Funktionen nach privilegiertem Zugriff). Aktivieren Sie dann in Docker Desktop die Einstellung "Start Docker Desktop when you sign in to your computer" und deaktivieren Sie den Ruhezustand:

# 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 aktualisieren (niemals git pull)

Die Upgrade-Seite ist eindeutig: "Do not update with a raw git pull." NanoClaw hält jedes sanktionierte Upgrade in data/upgrade-state.json fest, und ein Tripwire beim Start verweigert den Start bei einer Abweichung. Der einzige unterstützte Weg ist /update-nanoclaw in Claude Code: Es erstellt einen Backup-Branch und ein Tag, bereitet upstream in einem separaten Worktree vor, validiert (Installation, Build, Tests), stoppt den Dienst und die Container, sichert .env, data, groups und store, schaltet um, startet neu und prüft den Zustand. Es ist bei einem unsauberen Working Tree blockiert oder wenn NanoClaw nicht unter launchd läuft. Pinnen Sie vor dem Wechsel auf 2.4.0 Ihr Modell, wenn Claude-Gruppen ohne gesetztes Modell nicht auf Opus 5.5 wechseln sollen:

# 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. Sicherheitshärtung (Least Privilege)

Das Bedrohungsmodell von NanoClaw lautet: "Gehe davon aus, dass der Agent per Prompt-Injection kompromittiert wird, und stelle dann sicher, dass ein kompromittierter Agent nichts zu stehlen hat und nirgendwohin kommt." Ab Werk läuft jede Sitzung in einem eigenen Container als unprivilegierter Benutzer node mit --cap-drop=ALL, --security-opt no-new-privileges, --init, einem pids-Limit und entfernten setuid-Bits; es gibt kein Host-Home, kein .ssh, keinen Docker-Socket, und das OneCLI-Gateway schreibt Auth-Header im Flug um, sodass Container Ihren API-Schlüssel nie sehen. Genehmigungskarten (Pakete, MCP-Server, Sub-Agenten, Registrierung neuer Chats) brauchen eine Admin-Antwort und werden ohne Antwort automatisch abgelehnt, behalten Sie sie bei. Die sicherste dokumentierte Konfiguration ergänzt Folgendes und deaktiviert niemals die Genehmigungen oder das Gateway:

  • Unbekannte Absender: Setzen Sie --unknown-sender-policy strict (stilles Verwerfen) oder request_approval für jede Messaging-Gruppe, die Fremde erreichen können.
  • Mounts: Lassen Sie die Allowlist (~/.config/nanoclaw/mount-allowlist.json) weg oder halten Sie sie minimal, ohne sie sind alle zusätzlichen Mounts blockiert, und .ssh.gnupg.aws.kube.docker, credentials.env und .netrc sind ohnehin blockierte Muster. Mounts sind schreibgeschützt, sofern nicht ausdrücklich erlaubt.
  • Isolation: "Im Zweifel stärker isoliert beginnen." Ein Familienchat und ein Kundenkanal sollten nicht ein Agent sein; ein Agent mit eingebundenem Repo und Deploy-Zugangsdaten darf keine Agentengruppe mit einem teilen, der mit Fremden spricht. Getrennte Sitzungen sind innerhalb einer Gruppe keine Vertraulichkeitsgrenze.
  • Limits und Egress: Setzen Sie CONTAINER_CPU_LIMIT und CONTAINER_MEMORY_LIMIT und aktivieren Sie NANOCLAW_EGRESS_LOCKDOWN=true (der gesamte Verkehr über das Gateway, Container in einem internen Netzwerk), sobald Ihre Tools über den Proxy funktionieren, es ist standardmäßig aus, weil es Tools ohne Proxy-Unterstützung bricht.
  • Geheimnisse auf der Festplatte: .env wird mit Modus 0600 erstellt und enthält nur Kanal-Tokens; Agenten-API-Schlüssel liegen im Vault. Halten Sie auch store/auth/ (WhatsApp-Sitzung) privat, unsere Empfehlung, keine Aussage von NanoClaw. Das Setup sendet Diagnosedaten, sofern nicht NANOCLAW_NO_DIAGNOSTICS=1 gesetzt ist.
# 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

Restrisiken, die die Sandbox nicht abdeckt: Ein kompromittierter Agent kann weiterhin jedes Ziel anschreiben, mit dem er verknüpft ist, seinen eigenen Arbeitsbereich und sein Gedächtnis lesen oder zerstören, die ihm gewährten Zugangsdaten verbrauchen und das Gedächtnis der Gruppe vergiften, halten Sie den Umfang jeder Agentengruppe daher eng.

8. Häufige Probleme beheben

"FATAL: Container runtime failed to start"

Docker Desktop lief nicht, als der Host startete, der Klassiker nach einem Neustart ohne angemeldete Sitzung. Prüfen Sie den Daemon, starten Sie Docker Desktop und starten Sie dann NanoClaw neu:

# 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"

Jemand hat git pull ausgeführt (oder den Checkout anderweitig verändert), und data/upgrade-state.json stimmt nicht mehr überein. Gehen Sie zurück durch das unterstützte Update oder setzen Sie ein vorbereitetes fort bzw. rollen es zurück:

# 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

Der Agent antwortet in einem Chat nie

Meist ein Verknüpfungs- oder Trigger-Problem statt eines Absturzes: Der Agent antwortet nur, wenn sein Trigger (standardmäßig @Andy, aus ASSISTANT_NAME; der Standard des WhatsApp-Assistenten ist Nano) passt, und der Chat muss mit einer Agentengruppe verknüpft sein. Listen Sie verworfene Nachrichten und Sitzungen auf:

# 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

Host verweigert den Start nach einem von Hand gemergten Update (kein Credential Gateway)

Seit 2.4.0 verweigert der Host den Start ohne registriertes Credential Gateway. Von Hand gemergte Forks müssen OneCLI (oder Iron Proxy) registrieren und NANOCLAW_GATEWAY_PROVIDER in .env prüfen; OpenCode-Installationen müssen außerdem /add-opencode erneut ausführen, das Image neu bauen und ihre Gruppen neu starten (Befehle aus der Release-Notiz zu 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>

Nach dem Neustart des Mac mini läuft nichts

Der LaunchAgent und Docker Desktop leben beide in der Benutzersitzung. Prüfen Sie, ob der Dienst registriert ist, ob die automatische Anmeldung für den Benutzer aktiviert ist, der den Installer ausgeführt hat, und ob Docker Desktop bei der Anmeldung startet, und testen Sie dann einen Neustart:

# 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. Kostenanalyse vs. Cloud-VPS

NanoClaw selbst ist kostenlos (MIT). Sie zahlen für den Host und für die Modellnutzung über Ihren Anthropic API-Schlüssel, auf jedem Host identisch, weil NanoClaw lokale Modelle nicht auf unterstützte Weise ausführt. Der Mac mini ist eine dedizierte physische Maschine, der faire Vergleich ist also eine dedizierte oder KI-Stufen-Cloud-Instanz, nicht der billigste geteilte VPS:

Anwendungsfall KI-Aufrufe/Monat Cloud-VPS-Kosten MyRemoteMac Kosten Monatliche Ersparnis
Persönlicher Assistent, ein Kanal ~500 Aufrufe 120 $/Monat (dedizierte KI-Stufen-Instanz) 85 $/Monat (Mac mini M4) 35 $/Monat
Kleines Team, mehrere Kanäle + geplante Aufgaben ~5.000 Aufrufe 200 $/Monat 85 $/Monat (Mac mini M4) 115 $/Monat
Mehrere Agentengruppen mit gleichzeitigen Containern 10.000+ Aufrufe 350+ $/Monat 149 $/Monat (Mac mini M6) 201+ $/Monat

Annahmen: Die VPS-Preise sind dieselben Spannen, die wir in unseren Anleitungen für dedizierte KI-Stufen-Instanzen verwenden, und keine Angebote eines bestimmten Anbieters; ein geteilter 4-GB-Linux-VPS wäre günstiger als jeder Mac-mini-Tarif. Die MyRemoteMac-Preise sind die aktuellen Monatspreise in USD, ohne Steuern, 1 Gbps inklusive. Die Modellnutzung kommt auf beiden Seiten hinzu: Opus 5.5 kostet 4 $ / 20 $ pro Million Input-/Output-Token und Sonnet 5 kostet 2 $ / 10 $ (platform.claude.com, September 2026). NanoClaw veröffentlicht keine RAM- oder CPU-Angaben für den Host, die Docker-Desktop-VM oder die Container pro Sitzung, die Tarifempfehlung bleibt daher qualitativ.

Welcher Tarif: Der Mac mini M4 mit 16 GB für 85 $/Monat ist ein komfortabler Host für einen persönlichen Assistenten oder einen kleinen Team-Bot, das eigene Minimum von NanoClaw liegt bei 4 GB. Wählen Sie den Mac mini M6, wenn Sie mehrere Agentengruppen mit gleichzeitigen Containern neben der Docker-Desktop-VM betreiben oder wenn der Mac auch iOS-Apps baut. Um die Token-Rechnung vorhersehbar zu halten, setzen Sie NANOCLAW_DEFAULT_MODEL=sonnet und reservieren Sie Opus für eine Gruppe, die es braucht.

10. NanoClaw vs. OpenClaw

NanoClaw positioniert sich ausdrücklich gegen OpenClaw: Seine README behauptet, OpenClaw habe fast eine halbe Million Codezeilen, 53 Konfigurationsdateien und 70+ Abhängigkeiten, mit Sicherheit auf Anwendungsebene (Allowlists, Pairing-Codes) statt Isolation auf Betriebssystemebene, Zahlen aus der README von NanoClaw, nicht unabhängig gemessen. Aus unserer OpenClaw-Anleitung ergeben sich auf einem Mac mini die folgenden praktischen Unterschiede. OpenClaw ist eine globale npm-Installation (Node 26.1+ empfohlen), ein Gateway-Prozess, eine JSON5-Konfigurationsdatei, Kanäle mitgeliefert, kein Docker. NanoClaw ist git clone + bash nanoclaw.sh, Node 22+ und pnpm 10, erfordert Docker Desktop, Homebrew und Claude Code auf dem Host, hat keine Konfigurationsdateien (Anpassung ist Code in Ihrem eigenen Checkout), führt jede Sitzung in einem Linux-Container mit cap-drop und no-new-privileges aus, blockiert Mounts standardmäßig und hält API-Schlüssel über ein Credential Gateway aus der Sandbox heraus; Kanäle werden bei Bedarf als Skills installiert und Updates laufen ausschließlich über /update-nanoclaw. Kurz gesagt: NanoClaw ist konstruktionsbedingt sicherer, aber schwerer zu betreiben (eine dauerhaft laufende Docker-Desktop-VM, eine GUI-Anmeldesitzung, Dockers Lizenzregel für große Unternehmen, ein 30–60-minütiges interaktives Setup und ein Fork, den Sie pflegen); OpenClaw ist leichter zu installieren und zu konfigurieren, verlässt sich aber auf Berechtigungsprüfungen auf Anwendungsebene. Beide verwenden standardmäßig Claude; NanoClaw ergänzt Codex und OpenCode pro Agentengruppe. Die Kosten für den Mac mini sind bei beiden identisch.

Bereits auf OpenClaw? NanoClaw liefert /migrate-from-openclaw mit, ein geführtes Claude-Code-Gespräch, das OpenClaw-Agenten auf Agentengruppen abbildet, Chats auf verknüpfte Messaging-Gruppen, IDENTITY.md/SOUL.md auf instructions.prepend.md plus memory/, Skills auf container/skills, Kanal-Tokens auf .env, API-Schlüssel auf den OneCLI-Vault, Cron-Jobs auf ncl-Tasks, MCP-Server auf Konfiguration pro Gruppe und Allowlists auf unknown_sender_policy und Rollen. WhatsApp muss neu authentifiziert werden; Human Delay und TTS haben in v2 keine Entsprechung. Sie fangen stattdessen bei null an? Lesen Sie unsere Anleitung zu OpenClaw auf einem Mac mini und unsere Hermes-Agent-Anleitung, bevor Sie sich entscheiden.

11. FAQ

Ist NanoClaw kostenlos nutzbar?

Ja. NanoClaw steht unter MIT-Lizenz mit 30k+ GitHub-Sternen, erstellt von Gavriel Cohen und gepflegt von NanoCo. Sie zahlen für den Mac mini (ab 85 $/Monat für den M4, 149 $/Monat für den M6 bei MyRemoteMac) und für die Claude-Nutzung über Ihren Anthropic API-Schlüssel. Docker Desktop ist kostenlos für den persönlichen Gebrauch und für Unternehmen unter 250 Mitarbeitern und 10 Millionen US-Dollar Umsatz; größere Unternehmen und Behörden benötigen ein kostenpflichtiges Docker-Abonnement.

Brauche ich auf einem Mac mini wirklich Docker Desktop?

Ja. Unter macOS benötigt NanoClaw Docker Desktop, das sein Installer mit brew install --cask docker hinzufügt; Docker ist die mitgelieferte Laufzeit (NANOCLAW_RUNTIME_DRIVER=docker, seit 2.3.0 hinter einer wählbaren Treiberschnittstelle). Apples eigenes Container-Tool ist derzeit keine unterstützte Laufzeit, die Arbeit an /add-apple-container für v2 ist ein offener Pull-Request-Entwurf. Jede Agentensitzung läuft in einem eigenen Linux-Container, und genau das ist der Kern des Sicherheitsmodells von NanoClaw.

Kann ich mein Claude-Abonnement statt eines API-Schlüssels verwenden?

Der Assistent von NanoClaw bietet "Sign in with my Claude subscription" an und akzeptiert ein OAuth-Token. Die rechtlichen Bedingungen von Anthropic besagen jedoch, dass die OAuth-Authentifizierung ausschließlich für die gewöhnliche Nutzung von Claude Code und nativen Anthropic-Anwendungen durch Abonnenten gedacht ist, dass Entwickler, die auf dem Agent SDK aufbauen, die Authentifizierung per API-Schlüssel verwenden sollen, und dass Anthropic dies ohne Vorankündigung durchsetzen kann. Für ein geschäftliches oder dauerhaft laufendes Deployment verwenden Sie einen API-Schlüssel aus der Console, und speichern oder teilen Sie niemals Ihre Claude.ai-Zugangsdaten.

Welchen Mac-mini-Tarif sollte ich für NanoClaw wählen?

NanoClaw verlangt mindestens 4 GB RAM und veröffentlicht darüber hinaus keine Angaben zum Ressourcenbedarf, die Empfehlung ist daher qualitativ: Der Mac mini M4 mit 16 GB für 85 $/Monat hostet bequem einen persönlichen Assistenten oder einen kleinen Team-Bot mit ein paar Kanälen. Wählen Sie den Mac mini M6 ab 149 $/Monat, wenn mehrere Agentengruppen gleichzeitig Container neben der Docker-Desktop-VM betreiben oder wenn derselbe Mac auch Xcode-Builds oder andere Workloads ausführt.

Übersteht NanoClaw einen Neustart des Mac mini?

Ja, sofern eine Benutzersitzung zurückkommt: Der Installer registriert einen LaunchAgent auf Benutzerebene (com.nanoclaw-v2-<slug>, KeepAlive), und Docker Desktop ist eine GUI-App. Aktivieren Sie daher auf einem headless Mac mini die automatische Anmeldung für dasselbe Benutzerkonto, das bash nanoclaw.sh ausgeführt hat (beides ist benutzerbezogen; nicht verfügbar bei aktiviertem FileVault), aktivieren Sie in Docker Desktop den Start bei der Anmeldung und deaktivieren Sie den Ruhezustand mit pmset. Prüfen Sie es nach einem Test-Neustart mit launchctl list | grep nanoclaw und docker info. Dieses Headless-Rezept ist unsere Empfehlung; die NanoClaw-Dokumentation sagt nur, dass der Computer eingeschaltet und verbunden bleiben muss.

Kann ich mein bestehendes OpenClaw-Setup zu NanoClaw migrieren?

Ja. Führen Sie /migrate-from-openclaw in Claude Code aus dem NanoClaw-Projektstammverzeichnis aus: Es bildet OpenClaw-Agenten auf Agentengruppen ab, Chats auf Messaging-Gruppen, IDENTITY.md und SOUL.md auf instructions.prepend.md und memory/, Skills auf container/skills (gleiches Format), Kanal-Tokens auf .env, API-Schlüssel auf den OneCLI-Vault, Cron-Jobs auf ncl-Tasks und Allowlists auf Absender-Richtlinien. WhatsApp wird bewusst nicht migriert, Sie scannen den QR-Code erneut, und Human Delay und TTS haben in v2 keine Entsprechung.

12. Quellen und weiterführende Links

Jeder Befehl, Pfad, jede Variable und Anforderung in dieser Anleitung wurde am 28. September 2026 anhand des offiziellen NanoClaw-Repositorys (nanocoai/nanoclaw, v2.4.0 veröffentlicht am 23. September 2026, die alte qwibitai-URL leitet dorthin weiter) und docs.nanoclaw.dev geprüft, plus der Dokumentation von Docker, Anthropic und Apple für die Plattformfakten. Versions-Pins wie der Claude-Code-Build in den Agenten ändern sich mit jedem Release, konsultieren Sie daher diese Seiten für aktuelle Werte:

Verwandte Anleitungen

Bereit, NanoClaw rund um die Uhr zu betreiben?

Setzen Sie einen dedizierten Mac mini als Host für Ihren gesandboxten KI-Assistenten ein. Mac mini M4 ab 85 $/Monat, Mac mini M6 ab 149 $/Monat.

Mehr Details gesucht?

Durchsuchen Sie die vollständige Dokumentation für Schritt-für-Schritt-Anleitungen, Konfigurationsreferenzen und Fehlerbehebung.

Dokumentation öffnen →