Netclaw has two components: a CLI (netclaw) and a daemon (netclawd). The CLI is a thin client — all inference, tool execution, and session state live in the daemon. Install both on the same machine to get started; for remote setups, see Pairing Remote Devices.
Installs both CLI and daemon to ~/.netclaw/bin and puts netclaw on your PATH automatically — see PATH and shell integration. The same script serves macOS on Apple Silicon. Supports x86_64 and ARM64 on Linux; Intel Macs are not supported.
Installs to %LOCALAPPDATA%\Programs\netclaw and prepends it to your User PATH — see PATH and shell integration. To install a specific component or version:
The native installers put netclaw on your PATH for you. The catch is the terminal you ran the installer in — a piped install can’t change the PATH of a shell that’s already running, so netclaw resolves in new terminals but not the current one until you reload it.
Linux and macOS. The installer writes ~/.netclaw/env and sources it from your shell’s startup file — .bashrc or .bash_profile for bash, .zshrc for zsh, or a native ~/.config/fish/conf.d/netclaw.fish for fish. New shells pick it up. For the shell you installed from, load it now instead of opening a new one:
Terminal window
.~/.netclaw/env
Windows. The installer prepends the install directory to your User PATH and updates the current session. Any other terminal that’s already open needs a restart before it inherits the change.
Opting out. Pass --skip-shell (Linux/macOS) or -SkipShell (Windows) and the installer leaves your PATH alone, printing the directory to add yourself.
The image runs as the non-root netclaw user, so persist state in a named volume (a host bind mount has to be chowned to UID 1654 first). The container runs the daemon only, bound to loopback — drive it with docker exec netclaw netclaw <command>. To reach it from a host CLI or another machine (including pairing), configure a non-local exposure mode. See Docker Deployment for the full setup.
Pass provider credentials as environment variables:
The init wizard covers provider setup, identity, security posture, and feature selection — then runs a health check and drops you into chat. It is intentionally minimal: channels, search, and network exposure are not configured here.
2. Run netclaw config
Terminal window
netclawconfig
netclaw config is the menu-driven dashboard for everything else. Connect Slack, Discord, or Mattermost; enable web search; set your exposure mode; configure inbound webhooks and skill sources. Run it right after init — nothing beyond a basic chat session works until you do.
See the Quickstart for a guided walkthrough of both steps.
By default, the install script and daemon pull from the stable channel — release builds only.
If Netclaw is already installed, switch channels with the CLI:
Terminal window
netclawupdate--channelbeta
This installs the newest build on that channel right away and saves to your config, so later update checks and self-updates follow the beta feed. Pass --channel stable to switch back.
To choose a channel at first install instead, pass --channel to the install script:
Use the ghcr.io/netclaw-dev/netclaw:beta image tag instead of the default ghcr.io/netclaw-dev/netclaw (which resolves to the latest stable).
The install script only swaps which binaries it pulls. Also set Daemon.UpdateChannel to "beta" in netclaw.json so the daemon checks the beta feed for self-updates. (Switching with netclaw update --channel does this for you.)
Note: The install script is idempotent — running it on an existing install will update the binaries without breaking your configuration. If the daemon is running, stop it first: