Panduan - AI & Otomatisasi

Cara Menjalankan NanoClaw 24/7 Secara Self-Hosted di Mac mini Khusus

NanoClaw adalah asisten AI open-source (MIT, 30k+ bintang) yang menjawab Anda dari WhatsApp, Telegram, Discord, Slack, iMessage, dan lainnya, serta menjalankan setiap sesi agen di container Docker-nya sendiri sehingga agen yang terkena prompt injection tidak punya apa pun untuk dicuri dan tidak bisa ke mana-mana. Mac mini khusus memberinya rumah Apple Silicon always-on dengan akses root penuh, SSH, dan VNC, mulai $85/bulan.

Baca 30 menit Diperbarui 28 September 2026

1. Mengapa Menjalankan NanoClaw di Mac mini Khusus?

NanoClaw hanya menjawab selama host-nya menyala dan terhubung, quickstart-nya menyatakan ini dengan jelas, sehingga laptop yang masuk mode tidur tidak bisa dipakai. Ia membutuhkan mesin Mac atau Linux dengan RAM minimal 4 GB ditambah Docker (Docker Desktop di macOS), dan deskripsi GitHub-nya memposisikannya sebagai alternatif ringan untuk OpenClaw yang berjalan dalam container demi keamanan. VPS Linux bersama bisa lebih murah daripada Mac mini, jadi pahami dengan jelas apa yang Anda beli: Mac Apple Silicon fisik khusus 1:1 yang tidak dibagi dengan siapa pun, satu-satunya platform tempat backend iMessage lokal NanoClaw berfungsi, sesi desktop sungguhan untuk Docker Desktop, dan mesin yang juga bisa Anda pakai untuk build Xcode atau model lokal.

Fitur VPS Cloud (instans bersama) Mac mini (MyRemoteMac)
Biaya Bulanan Bervariasi menurut ukuran; instans khusus lebih mahal $85/bln (M4) atau $149/bln (M6), tetap, 1 Gbps sudah termasuk
Hardware CPU dan RAM bersama, tervirtualisasi (NanoClaw menyebut VM Google Compute Engine sebagai tidak didukung) Mac Apple Silicon fisik khusus 1:1
Runtime Container Docker Engine di Linux Docker Desktop for Mac (container Linux per sesi yang sama)
iMessage (backend lokal) Tidak mungkin (hanya macOS) Didukung di Mac yang masuk ke iMessage
Akses SSH Akses root penuh, SSH, VNC, VPN WireGuard
Uptime Tergantung penyedia SLA 99.9%

Apa itu NanoClaw: satu proses host Node.js merutekan pesan dari aplikasi chat Anda ke container Docker per sesi, tempat agen berjalan di atas Claude Code melalui Claude Agent SDK dari Anthropic. Tidak ada file konfigurasi selain .env dan sebuah database SQLite: Anda menyesuaikannya dengan meminta Claude Code mengubah kode di checkout Anda sendiri. Versi saat penulisan: v2.4.0 (23 September 2026), dibuat oleh Gavriel Cohen dan dipelihara oleh NanoCo.

2. Prasyarat

Sebelum memulai, pastikan Anda memiliki hal-hal berikut. Semua yang tercantum di bawah berasal dari README, quickstart, dan halaman instalasi resmi NanoClaw, ditambah ketentuan Docker dan Anthropic untuk fakta platformnya:

  • Sebuah Mac mini khusus dari MyRemoteMac, M4 mulai $85/bln (16 GB / 256 GB) atau Mac mini M6 mulai $149/bln. NanoClaw meminta RAM minimal 4 GB (installer memberi peringatan di bawah 3,700 MB); setiap paket melampauinya dengan selisih besar.
  • Akses SSH dan VNC (keduanya termasuk dalam langganan Anda). VNC hanya diperlukan sekali: Docker Desktop adalah aplikasi GUI dan harus diluncurkan dari desktop pada kali pertama.
  • Docker Desktop for Mac, harus berjalan setiap kali NanoClaw dimulai. Ketentuan Docker: gratis untuk penggunaan pribadi, pendidikan, open source non-komersial, dan perusahaan dengan kurang dari 250 karyawan dan pendapatan tahunan di bawah US$10 juta; perusahaan yang lebih besar dan entitas pemerintah memerlukan langganan berbayar.
  • Homebrew, git, Node.js 22+, dan pnpm 10. git harus sudah ada; installer menawarkan untuk menginstal Homebrew dan menginstal Node serta pnpm sendiri jika belum ada (Node 20 tidak didukung sejak 2.3.0).
  • CLI Claude Code di Mac. Ini bukan opsional: setiap skill /add-<channel>, /customize, /debug, /update-nanoclaw, dan pemulihan error installer berjalan di dalam Claude Code dari root proyek.
  • Sebuah kunci API Anthropic (sk-ant-api…) dari console.anthropic.com, ditagih per token. Wizard juga menawarkan login dengan langganan Claude, tetapi ketentuan hukum Anthropic menyatakan bahwa OAuth ditujukan untuk penggunaan biasa Claude Code dan aplikasi native Anthropic, dan bahwa produk yang dibangun di atas Agent SDK harus menggunakan autentikasi kunci API, jadi untuk deployment bisnis atau always-on, gunakan kunci API.
  • Akun perpesanan di Telegram, WhatsApp, atau Discord untuk menghubungkan agen Anda (saluran terminal bawaan tidak memerlukan apa pun).

3. Langkah 1: Hubungkan melalui SSH, Instal Docker Desktop dan Claude Code

Pertama, SSH ke Mac mini Anda dengan kredensial dari dashboard MyRemoteMac dan periksa dua alat yang diharapkan ada oleh installer. Installer NanoClaw akan menginstal Homebrew, Node, dan Docker untuk Anda, tetapi menginstal Docker Desktop lebih dulu memungkinkan Anda memulainya dan memverifikasi daemon sebelum wizard membutuhkannya.

Hubungkan melalui 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

Instal dan Jalankan Docker Desktop for Mac

Ini adalah perintah persis yang dijalankan setup/install-docker.sh milik NanoClaw di macOS ketika docker tidak ditemukan. Docker Desktop adalah aplikasi desktop: luncurkan sekali dari desktop Mac melalui VNC, lalu pastikan dari SSH bahwa daemon merespons. Jika ia tidak berjalan saat NanoClaw dimulai, host akan keluar dengan pesan "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

Instal Claude Code di Host

setup/install-claude.sh milik NanoClaw menjalankan perintah yang sama ketika claude tidak ditemukan. Mulai sekarang Anda akan menggunakan Claude Code untuk setiap saluran, penyedia, dan pembaruan:

# 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. Langkah 2: Instal NanoClaw dan Konfigurasikan Kunci API Claude Anda

NanoClaw bukan paket npm yang Anda instal secara global: Anda meng-clone repositorinya dan menjalankan installer sekali jalan yang mengubah checkout tersebut menjadi instalasi Anda sendiri. Biarkan foldernya tetap di tempat setelahnya, label launchd, nama image, dan slug instalasi diturunkan dari path-nya. Sediakan waktu 30 hingga 60 menit; wizard-nya interaktif.

Clone dan Jalankan Installer

# 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

Wizard memandu Anda melalui pilihan yang terdokumentasi: Standard setup → Fresh agent → image sandbox: unduh image hardened prebuilt yang dibangun oleh Echo (memerlukan login NanoClaw gratis, sekitar 800 MB dari satu region AS) atau bangun secara lokal (3–10 menit, tanpa akun, tidak menghubungi apa pun, bisa lebih cepat dari Eropa atau Asia) → runtime AI: Claude → tempel kunci API Anthropic Anda (direkomendasikan; "Sign in with my Claude subscription" juga ditawarkan, lihat catatan di Prasyarat) → Skip for now untuk saluran perpesanan. Installer menyimpan kunci Anda di OneCLI Agent Vault, gateway kredensial yang wajib sejak 2.4.0: container agen tidak pernah memegang kunci API mentah.

Alternatif Terskrip dan Pesan Pertama

Jika Anda lebih suka eksekusi non-interaktif, halaman instalasi mendokumentasikan variabel setup-time yang menjawab prompt di muka. Bagaimanapun caranya, uji dengan saluran terminal bawaan dari folder proyek, balasan pertama mungkin butuh sedikit waktu selagi container dimulai:

# 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

Pilih Model dan Atur Dasar-dasarnya di .env

Pengaturan tingkat instalasi berada di .env di root proyek (dibuat dengan mode 0600 oleh setup); pengaturan per grup agen berada di database dan diedit dengan CLI admin ncl. Sejak 2.4.0, grup Claude tanpa model yang ditetapkan menggunakan Opus 5.5 (claude-opus-5-5, $4 input / $20 output per juta token); Claude Sonnet 5 berharga $2 / $10, jadi kunci ke model itu untuk asisten pribadi jika biaya menjadi pertimbangan. Penyedia lain bersifat per grup agen: /add-codex (OpenAI) dan /add-opencode (OpenRouter, OpenAI, Google, DeepSeek). Model lokal: README mencantumkan /add-ollama-provider, tetapi halaman providers di docs.nanoclaw.dev menyatakan bahwa itu bukan pengganti drop-in yang didukung di main saat ini, anggap sebagai eksperimen, bukan cara untuk menggantikan 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. Langkah 3: Hubungkan Saluran Perpesanan

Saluran tidak disertakan bawaan: masing-masing diinstal sesuai kebutuhan sebagai skill Claude Code yang dijalankan dari root proyek, yang menambahkan adapter ke checkout Anda. Telegram paling cepat untuk dijalankan, buat bot dengan @BotFather, tempel token saat skill memintanya (disimpan sebagai TELEGRAM_BOT_TOKEN di .env), lalu kirim kode pairing 6 digit sekali pakai ke bot sebagai pesan yang hanya berisi angka tersebut. Mode polling berarti tidak perlu URL publik, webhook, atau port terbuka:

# 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

Hubungkan WhatsApp

Adapter native menggunakan protokol WhatsApp Web (Baileys, bukan API resmi Meta): pindai kode QR, yang berganti sekitar setiap 60 detik, atau masukkan kode pairing 8 karakter di WhatsApp → Linked Devices. Dalam mode nomor bersama, asisten membalas di self-chat "You" milik Anda sendiri; untuk nomor khusus, gunakan SIM terpisah dan atur ASSISTANT_HAS_OWN_NUMBER=true. Jika kepatuhan menjadi pertimbangan, gunakan /add-whatsapp-cloud (Meta Cloud API) sebagai gantinya:

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

Hubungkan Discord, iMessage, dan Lainnya

Discord menggunakan token bot dan listener Gateway (tanpa URL publik). Katalognya juga mencakup Slack, Mattermost (baru di 2.4.0), Signal, iMessage, Microsoft Teams, Google Chat, Matrix, Webex, WeChat, GitHub, Linear, Delta Chat, Emacs, email melalui Resend, dan nomor telepon sungguhan melalui Dial. Backend iMessage lokal adalah fitur khusus macOS: Mac mini harus masuk ke iMessage dengan Apple ID dan biner node yang persis dipakai memerlukan Full Disk Access (backend Photon yang di-host tidak memerlukan keduanya). Menjalankan ulang skill /add-<channel> di kemudian hari akan menyegarkan adapter; /manage-channels menghubungkan setiap percakapan ke grup agen:

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. Langkah 4: Jalankan 24/7 dengan launchd, Lalu Perbarui dengan Aman

Untuk operasi 24/7, NanoClaw harus memulai saat boot dan memulai ulang saat gagal. Installer sudah menangani ini: langkah layanannya menulis LaunchAgent launchd per pengguna bernama com.nanoclaw-v2-<slug> (slug = 8 karakter hex pertama dari SHA-1 path proyek; tutorial lama masih menampilkan label pra-2.3.0 com.nanoclaw) dengan RunAtLoad dan KeepAlive, mencatat log ke logs/nanoclaw.log dan logs/nanoclaw.error.log. Plist hanya mengatur PATH dan HOME dan tidak memuat .env, jadi mulai ulang host setiap kali Anda mengedit .env.

Verifikasi dan Kelola Layanan

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

Bertahan dari Reboot di Mac mini Headless

Bagian ini adalah rekomendasi operasional kami, disusun dari dokumentasi Apple dan Docker, dokumentasi NanoClaw tidak membahas Mac headless. LaunchAgent berada di sesi pengguna Anda dan Docker Desktop adalah aplikasi GUI, jadi setelah reboot tidak ada yang berjalan sampai seseorang login. Aktifkan Automatic login untuk akun pengguna yang sama yang menjalankan bash nanoclaw.sh, LaunchAgent dan pengaturan mulai-saat-login Docker Desktop keduanya bersifat per pengguna, sehingga login otomatis dengan akun lain akan membuat layanan tidak dimuat dan Docker berhenti (Apple: Automatic login tidak tersedia saat FileVault aktif). Ingat bahwa siapa pun yang me-restart Mac akan masuk ke sesi tersebut, yang hanya dapat diterima di Mac mini khusus yang hanya dapat dijangkau melalui SSH, VNC, dan WireGuard; jika Anda lebih suka akun non-admin untuk itu, instal NanoClaw di bawah akun tersebut, dengan catatan bahwa menginstal Homebrew dan menjalankan sudo pmset tetap memerlukan administrator (Docker Desktop sendiri berjalan sebagai pengguna tanpa hak istimewa dan hanya meminta akses istimewa untuk fitur tertentu). Lalu aktifkan pengaturan "Start Docker Desktop when you sign in to your computer" di Docker Desktop, dan nonaktifkan sleep:

# 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

Perbarui NanoClaw (Jangan Pernah git pull)

Halaman upgrading menyatakannya secara eksplisit: "Do not update with a raw git pull." NanoClaw mencatat setiap pembaruan yang sah di data/upgrade-state.json dan sebuah tripwire saat startup menolak memulai jika ada ketidakcocokan. Satu-satunya jalur yang didukung adalah /update-nanoclaw di Claude Code: ia membuat branch dan tag cadangan, menyiapkan upstream di worktree terpisah, memvalidasi (install, build, tests), menghentikan layanan dan container, membuat snapshot .env, data, groups, dan store, mengalihkan, memulai ulang, dan memeriksa kesehatan. Ia diblokir jika working tree kotor atau saat NanoClaw tidak berjalan di bawah launchd. Sebelum pindah ke 2.4.0, kunci model Anda jika Anda tidak ingin grup Claude yang belum diatur beralih ke 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. Penguatan Keamanan (Hak Akses Minimal)

Model ancaman NanoClaw adalah "asumsikan agen terkena prompt injection, lalu pastikan agen yang disusupi tidak punya apa pun untuk dicuri dan tidak bisa ke mana-mana." Secara bawaan, setiap sesi berjalan di container-nya sendiri sebagai pengguna node tanpa hak istimewa dengan --cap-drop=ALL, --security-opt no-new-privileges, --init, batas pids, dan bit setuid dihapus; tidak ada home host, tidak ada .ssh, tidak ada socket Docker, dan gateway OneCLI menulis ulang header autentikasi saat transit sehingga container tidak pernah melihat kunci API Anda. Kartu persetujuan (paket, server MCP, sub-agen, pendaftaran chat baru) memerlukan jawaban admin dan otomatis ditolak jika tidak dijawab, pertahankan itu. Konfigurasi teraman yang terdokumentasi menambahkan hal-hal berikut, dan tidak pernah menonaktifkan persetujuan maupun gateway:

  • Pengirim tak dikenal: atur --unknown-sender-policy strict (dibuang diam-diam) atau request_approval di setiap grup perpesanan yang dapat dijangkau orang asing.
  • Mount: biarkan allowlist (~/.config/nanoclaw/mount-allowlist.json) tidak ada atau minimal, tanpa itu semua mount tambahan diblokir, dan .ssh.gnupg.aws.kube.docker, credentials.env, dan .netrc bagaimanapun sudah termasuk pola yang diblokir. Mount bersifat read-only kecuali diizinkan secara eksplisit.
  • Isolasi: "jika ragu, mulailah dengan isolasi yang lebih ketat." Chat keluarga dan saluran klien tidak boleh menjadi satu agen; agen dengan repo yang di-mount dan kredensial deploy tidak boleh berbagi grup agen dengan agen yang berbicara dengan orang asing. Sesi terpisah bukanlah batas kerahasiaan di dalam satu grup.
  • Batas dan egress: atur CONTAINER_CPU_LIMIT dan CONTAINER_MEMORY_LIMIT, dan aktifkan NANOCLAW_EGRESS_LOCKDOWN=true (semua lalu lintas melalui gateway, container di jaringan internal) setelah alat Anda berfungsi melalui proxy, secara bawaan nonaktif karena merusak alat yang tidak mendukung proxy.
  • Rahasia di disk: .env dibuat dengan mode 0600 dan hanya menyimpan token saluran; kunci API agen berada di vault. Jaga juga store/auth/ (sesi WhatsApp) tetap privat, ini rekomendasi kami, bukan klaim NanoClaw. Setup mengirim diagnostik kecuali 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

Risiko residual yang tidak dicakup sandbox: agen yang disusupi masih dapat mengirim pesan ke tujuan mana pun yang terhubung dengannya, membaca atau menghancurkan workspace dan memorinya sendiri, menghabiskan kredensial yang diberikan kepadanya, dan meracuni memori grup, jadi batasi cakupan setiap grup agen secara sempit.

8. Pemecahan Masalah Umum

"FATAL: Container runtime failed to start"

Docker Desktop tidak berjalan saat host dimulai, kasus klasik setelah reboot tanpa sesi yang login. Periksa daemon, jalankan Docker Desktop, lalu mulai ulang 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"

Seseorang menjalankan git pull (atau mengubah checkout dengan cara lain) dan data/upgrade-state.json tidak lagi cocok. Kembali melalui pembaruan yang didukung, atau lanjutkan/rollback pembaruan yang sudah disiapkan:

# 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

Agen tidak pernah menjawab di chat

Biasanya masalah pengkabelan atau trigger, bukan crash: agen hanya merespons ketika trigger-nya (@Andy secara bawaan, dari ASSISTANT_NAME; default wizard WhatsApp adalah Nano) cocok, dan chat harus terhubung ke grup agen. Tampilkan daftar pesan yang dibuang dan sesi:

# 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 menolak memulai setelah pembaruan yang di-merge manual (tanpa gateway kredensial)

Sejak 2.4.0 host menolak memulai tanpa gateway kredensial yang terdaftar. Fork yang di-merge secara manual harus mendaftarkan OneCLI (atau Iron Proxy) dan memeriksa NANOCLAW_GATEWAY_PROVIDER di .env; instalasi OpenCode juga harus menjalankan ulang /add-opencode, membangun ulang image, dan memulai ulang grupnya (perintah dari catatan rilis 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>

Tidak ada yang berjalan setelah Mac mini di-reboot

LaunchAgent dan Docker Desktop sama-sama berada di sesi pengguna. Pastikan layanan terdaftar, Automatic login aktif untuk pengguna yang menjalankan installer, dan Docker Desktop memulai saat login, lalu lakukan uji reboot:

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

NanoClaw sendiri gratis (MIT). Anda membayar host dan penggunaan model pada kunci API Anthropic Anda, sama di host mana pun, karena NanoClaw tidak menjalankan model lokal dengan cara yang didukung. Mac mini adalah mesin fisik khusus, jadi perbandingan yang adil adalah instans cloud khusus atau tingkat AI, bukan VPS bersama termurah:

Kasus Penggunaan Panggilan AI/Bulan Biaya VPS Cloud Biaya MyRemoteMac Penghematan Bulanan
Asisten pribadi, satu saluran ~500 panggilan $120/bln (instans khusus tingkat AI) $85/bln (Mac mini M4) $35/bln
Tim kecil, beberapa saluran + tugas terjadwal ~5,000 panggilan $200/bln $85/bln (Mac mini M4) $115/bln
Beberapa grup agen dengan container bersamaan 10,000+ panggilan $350+/bln $149/bln (Mac mini M6) $201+/bln

Asumsi: harga VPS adalah rentang yang sama yang digunakan di seluruh panduan kami untuk instans khusus tingkat AI dan bukan penawaran dari penyedia tertentu; VPS Linux bersama 4 GB akan lebih murah daripada paket Mac mini mana pun. Harga MyRemoteMac adalah tarif bulanan saat ini dalam USD, belum termasuk pajak, 1 Gbps sudah termasuk. Penggunaan model adalah biaya tambahan di kedua sisi: Opus 5.5 berharga $4 / $20 per juta token input / output dan Sonnet 5 berharga $2 / $10 (platform.claude.com, September 2026). NanoClaw tidak mempublikasikan angka penggunaan RAM atau CPU untuk host, VM Docker Desktop, maupun container per sesi, sehingga saran paket tetap bersifat kualitatif.

Paket mana: Mac mini M4 16 GB seharga $85/bulan adalah host yang nyaman untuk asisten pribadi atau bot tim kecil, minimum NanoClaw sendiri adalah 4 GB. Pilih Mac mini M6 saat Anda menjalankan beberapa grup agen dengan container bersamaan di samping VM Docker Desktop, atau saat Mac tersebut juga membangun aplikasi iOS. Agar tagihan token tetap terprediksi, atur NANOCLAW_DEFAULT_MODEL=sonnet dan simpan Opus untuk grup yang membutuhkannya.

10. NanoClaw vs. OpenClaw

NanoClaw secara eksplisit memposisikan dirinya berhadapan dengan OpenClaw: README-nya mengklaim OpenClaw memiliki hampir setengah juta baris kode, 53 file konfigurasi, dan 70+ dependensi dengan keamanan di tingkat aplikasi (allowlist, kode pairing) alih-alih isolasi tingkat OS, angka dari README NanoClaw, tidak diukur secara independen. Dari panduan OpenClaw kami, perbedaan praktisnya di Mac mini adalah sebagai berikut. OpenClaw adalah instalasi npm global (Node 26.1+ direkomendasikan), satu proses Gateway, satu file konfigurasi JSON5, saluran disertakan bawaan, tanpa Docker. NanoClaw adalah git clone + bash nanoclaw.sh, Node 22+ dan pnpm 10, memerlukan Docker Desktop, Homebrew, dan Claude Code di host, tidak memiliki file konfigurasi (kustomisasi adalah kode di checkout Anda sendiri), menjalankan setiap sesi di container Linux dengan cap-drop dan no-new-privileges, memblokir mount secara bawaan, dan menjauhkan kunci API dari sandbox melalui gateway kredensial; saluran diinstal sesuai kebutuhan sebagai skill dan pembaruan hanya melalui /update-nanoclaw. Singkatnya: NanoClaw lebih aman secara desain tetapi lebih berat dijalankan (VM Docker Desktop yang selalu aktif, sesi login GUI, aturan lisensi Docker untuk perusahaan besar, setup interaktif 30–60 menit, dan fork yang Anda pelihara sendiri); OpenClaw lebih ringan untuk diinstal dan dikonfigurasi tetapi bergantung pada pemeriksaan izin tingkat aplikasi. Keduanya default ke Claude; NanoClaw menambahkan Codex dan OpenCode per grup agen. Biaya Mac mini identik untuk keduanya.

Sudah memakai OpenClaw? NanoClaw menyertakan /migrate-from-openclaw, percakapan terpandu di Claude Code yang memetakan agen OpenClaw ke grup agen, chat ke grup perpesanan yang terhubung, IDENTITY.md/SOUL.md ke instructions.prepend.md plus memory/, skill ke container/skills, token saluran ke .env, kunci API ke vault OneCLI, cron job ke ncl tasks, server MCP ke konfigurasi per grup, dan allowlist ke unknown_sender_policy dan roles. WhatsApp harus diautentikasi ulang; human delay dan TTS tidak memiliki padanan di v2. Ingin memulai dari nol saja? Baca panduan OpenClaw di Mac mini dan panduan Hermes Agent kami sebelum memilih.

11. FAQ

Apakah NanoClaw gratis digunakan?

Ya. NanoClaw berlisensi MIT dengan 30k+ bintang GitHub, dibuat oleh Gavriel Cohen dan dipelihara oleh NanoCo. Anda membayar Mac mini (mulai $85/bulan untuk M4, $149/bulan untuk M6 di MyRemoteMac) dan penggunaan Claude pada kunci API Anthropic Anda. Docker Desktop gratis untuk penggunaan pribadi dan perusahaan di bawah 250 karyawan dan pendapatan US$10 juta; perusahaan yang lebih besar dan entitas pemerintah memerlukan langganan Docker berbayar.

Apakah saya benar-benar memerlukan Docker Desktop di Mac mini?

Ya. Di macOS NanoClaw memerlukan Docker Desktop, yang ditambahkan installer-nya dengan brew install --cask docker; Docker adalah runtime yang disertakan (NANOCLAW_RUNTIME_DRIVER=docker, di balik lapisan driver yang dapat dipilih sejak 2.3.0). Alat container milik Apple sendiri saat ini bukan runtime yang didukung, pekerjaan /add-apple-container untuk v2 masih berupa draft pull request yang terbuka. Setiap sesi agen berjalan di container Linux-nya sendiri, dan itulah inti model keamanan NanoClaw.

Bisakah saya menggunakan langganan Claude alih-alih kunci API?

Wizard NanoClaw menawarkan "Sign in with my Claude subscription" dan menerima token OAuth. Namun, ketentuan hukum Anthropic menyatakan bahwa autentikasi OAuth ditujukan secara eksklusif untuk penggunaan biasa Claude Code dan aplikasi native Anthropic oleh pelanggan, bahwa developer yang membangun di atas Agent SDK harus menggunakan autentikasi kunci API, dan bahwa Anthropic dapat menegakkannya tanpa pemberitahuan. Untuk deployment bisnis atau always-on, gunakan kunci API dari Console, dan jangan pernah menyimpan atau membagikan kredensial Claude.ai Anda.

Paket Mac mini mana yang sebaiknya saya pilih untuk NanoClaw?

NanoClaw meminta RAM minimal 4 GB dan tidak mempublikasikan angka penggunaan sumber daya selain itu, jadi sarannya bersifat kualitatif: Mac mini M4 16 GB seharga $85/bulan dengan nyaman menghosting asisten pribadi atau bot tim kecil dengan beberapa saluran. Pilih Mac mini M6 mulai $149/bulan saat beberapa grup agen menjalankan container secara bersamaan di samping VM Docker Desktop, atau saat Mac yang sama juga menjalankan build Xcode atau beban kerja lain.

Apakah NanoClaw tetap berjalan setelah Mac mini di-reboot?

Ya, asalkan sesi pengguna kembali aktif: installer mendaftarkan LaunchAgent per pengguna (com.nanoclaw-v2-<slug>, KeepAlive) dan Docker Desktop adalah aplikasi GUI, jadi di Mac mini headless aktifkan Automatic login untuk akun pengguna yang sama yang menjalankan bash nanoclaw.sh (keduanya per pengguna; tidak tersedia saat FileVault aktif), aktifkan pengaturan mulai-saat-login Docker Desktop, dan nonaktifkan sleep dengan pmset. Verifikasi dengan launchctl list | grep nanoclaw dan docker info setelah uji reboot. Resep headless ini adalah rekomendasi kami; dokumentasi NanoClaw hanya menyebutkan agar komputer tetap menyala dan terhubung.

Bisakah saya memigrasikan pengaturan OpenClaw saya yang ada ke NanoClaw?

Ya. Jalankan /migrate-from-openclaw di Claude Code dari root proyek NanoClaw: ia memetakan agen OpenClaw ke grup agen, chat ke grup perpesanan, IDENTITY.md dan SOUL.md ke instructions.prepend.md dan memory/, skill ke container/skills (format sama), token saluran ke .env, kunci API ke vault OneCLI, cron job ke ncl tasks, dan allowlist ke kebijakan pengirim. WhatsApp sengaja tidak dimigrasikan, Anda memindai QR lagi, dan human delay serta TTS tidak memiliki padanan di v2.

12. Sumber dan Bacaan Lebih Lanjut

Setiap perintah, path, variabel, dan persyaratan dalam panduan ini diperiksa pada 28 September 2026 terhadap repositori resmi NanoClaw (nanocoai/nanoclaw, v2.4.0 dirilis 23 September 2026, URL lama qwibitai dialihkan ke sana) dan docs.nanoclaw.dev, ditambah dokumentasi Docker, Anthropic, dan Apple untuk fakta platformnya. Pin versi seperti build Claude Code di dalam agen berubah pada setiap rilis, jadi lihat halaman-halaman berikut untuk nilai terkini:

Panduan Terkait

Siap Menjalankan NanoClaw 24/7?

Deploy Mac mini khusus sebagai host asisten AI Anda yang di-sandbox. Mac mini M4 mulai $85/bulan, Mac mini M6 mulai $149/bulan.

Butuh detail lebih lanjut?

Jelajahi dokumentasi lengkap untuk panduan langkah demi langkah, referensi konfigurasi, dan pemecahan masalah.

Buka dokumentasi →