A complete walkthrough of every way to install Crawdad, so you know exactly what to expect before you run anything. For each path this page narrates what the installer prints, where the binary lands, what service it registers, and how to confirm it's running. Everything here is drawn from the installer scripts themselves.
Two things install with one command each. The sidecar (crawdad-sidecar) is the local security proxy that protects one machine's agents; you install it on every machine you want protected. The fleet console (crawdad-fleet) is the optional self-hosted control plane that manages many enrolled sidecars; you install it once, on the host that will run your fleet. This guide covers both.
7748 Anthropic proxy (also 7747 OpenAI, 7746 Google, 7745 xAI, 7744 NVIDIA NIM), 7749 the internal health/control port, 7750 the local dashboard. Fleet console: 9000 the operator console (HTTPS, localhost-only by default), 8800 the device relay (mTLS, network-accessible).curl -fsSL https://getcrawdad.dev/install.sh | sh
Open Terminal (Cmd+Space, type "Terminal", Enter) and paste the command. Here is what happens, in order:
crawdad-macos-arm64 on Apple Silicon, crawdad-macos-x86_64 on Intel)..sha256, and verifies the checksum. A mismatch aborts the install, nothing is written./usr/local/bin/crawdad-sidecar and creates a crawdad symlink beside it. If /usr/local/bin isn't writable, it asks for your Mac password once (sudo).--version as a smoke test, so any architecture or library problem surfaces immediately.~/Library/LaunchAgents/com.crawdad.sidecar.plist and loads it. The service starts now and again automatically every time you log in.http://127.0.0.1:7749/v1/health. First launch can take up to 60 seconds while macOS sets up the Keychain, the script tells you it's still starting.export ANTHROPIC_BASE_URL=http://localhost:7748 to your ~/.zshrc (or ~/.bashrc) inside a marked # >>> crawdad >>> block, and opens the dashboard at http://localhost:7750.Crawdad v1.7.1 Platform: darwin/arm64 Downloading crawdad-macos-arm64... ✓ SHA-256 verified ✓ Binary installed ✓ 'crawdad' command created ✓ Binary runs (crawdad 1.7.1) ✓ Service registered (starts on login) ...workspace + helper components... Waiting for Crawdad to start... ✓ Crawdad /v1/health OK ✓ Shell configured (/Users/you/.zshrc) ✓ Crawdad installed and protecting your agents Dashboard: http://localhost:7750
✓ Crawdad installed and protecting your agents, and the dashboard opening in your browser. Pattern detection is active immediately; the ML model downloads in the background and activates on the next restart (typically within a couple of minutes).Where things are: binary at /usr/local/bin/crawdad-sidecar (with the crawdad command symlinked next to it); data directory at ~/Library/Application Support/crawdad/ (created 0700, the sidecar refuses a group- or world-readable data dir); logs at ~/Library/Logs/crawdad/sidecar.log and ~/Library/Logs/crawdad/sidecar.err.
Intel Macs run pattern-based detection only, ML requires Apple Silicon, and the installer prints a note saying so. Everything else is identical.
curl -fsSL https://getcrawdad.dev/install.sh | sh
Same command, same download-and-verify flow as macOS. The differences are the service and the data location:
/etc/systemd/system/crawdad-sidecar.service and enables + starts it. The service runs as root and restarts on failure. Registering the unit uses sudo./var/lib/crawdad (created 0700); logs go to /var/log/crawdad/sidecar.log and follow with sudo journalctl -u crawdad-sidecar -f. ✓ SHA-256 verified
✓ Binary installed
✓ Systemd service installed and started (runs as root)
Data: /var/lib/crawdad
Logs: sudo journalctl -u crawdad-sidecar -f
Waiting for Crawdad to start...
✓ Crawdad /v1/health OK
✓ Systemd service installed and started followed by ✓ Crawdad /v1/health OK. If systemd isn't present, you'll instead see instructions to launch the binary yourself, that's expected on those systems, not an error.irm https://getcrawdad.dev/install.ps1 | iex
Open Windows PowerShell as Administrator (Start → type "PowerShell" → right-click → Run as administrator) and paste the command. Administrator is required, the installer declares #Requires -RunAsAdministrator because it registers a service and writes to Program Files. Here's the flow:
crawdad-windows-x86_64.exe and its .sha256 and verifies the checksum; a mismatch aborts before anything is installed.%ProgramFiles%\Crawdad\crawdad.exe and creates the data directory at %APPDATA%\crawdad.CrawdadSidecar (display name "Crawdad Zero-Knowledge Security Sidecar"), set to start automatically, with restart-on-failure actions, and starts it.http://127.0.0.1:7749/v1/health. If the service is slow to answer within 60 seconds it prints a warning (not a fatal error) with the commands to check the service and its event log.%ProgramFiles%\Crawdad to the system PATH (open a new terminal to pick it up).Crawdad Installer v1.7.1 (Windows) Downloading crawdad v1.7.1 ... Verifying SHA-256 checksum ... SHA-256 OK Installed to C:\Program Files\Crawdad\crawdad.exe Registering Windows service ... Service registered (CrawdadSidecar) Starting Crawdad service ... Crawdad /v1/health OK Crawdad installed and protecting your agents Dashboard: http://localhost:7750 Service: sc.exe query CrawdadSidecar
SHA-256 OK, Service registered (CrawdadSidecar), and Crawdad /v1/health OK. To point an agent at the proxy, set the base URL in PowerShell: setx ANTHROPIC_BASE_URL "http://localhost:7748" (persists for new terminals).curl -fsSL https://getcrawdad.dev/fleet-install.sh | sh
Run this on the host that will manage your fleet. The console is a single native binary, no Docker. How you run the command decides where it installs:
| As your user | With sudo (system) | |
|---|---|---|
| Binary | ~/.local/bin/crawdad-fleet | /usr/local/bin/crawdad-fleet |
| Data (Linux) | ~/.local/share/crawdad-fleet | /var/lib/crawdad-fleet |
| Data (macOS) | ~/Library/Application Support/crawdad-fleet | /usr/local/var/crawdad-fleet |
| Service | per-user (systemd --user / launchd agent) | system (systemd / launchd daemon) |
What the installer does, in order:
9000 and 8800 are free, that there's at least 100 MB of disk, and that curl is present. Any failure stops the install before anything is written.crawdad-fleet and checks its SHA-256. On macOS it clears the quarantine attribute so the binary runs.https://localhost:9000/health, runs --init-admin (generates the admin signing identity) and --init-operator admin (creates the first operator and prints the operator API key once), then restarts to pick up the admin identity. Step 4: First-boot initialization
Waiting for service... ready
Initializing admin identity...
Creating first operator...
OPERATOR API KEY (shown ONCE — save it now):
ck_1a2b3c4d5e6f...
Verification
[PASS] Operator plane responds on https://localhost:9000
[PASS] CA fingerprint: sha256:ab12cd34...
[PASS] systemd system service is active
Crawdad Fleet Ready
Console: https://localhost:9000 (localhost-only by default)
Relay: wss://0.0.0.0:8800 (network-accessible, mTLS-gated)
ck_… operator key now. It is shown exactly once, only its SHA-256 hash is stored, and it cannot be recovered, only rotated (crawdad-fleet operator reset-key --id <id>). This is the key you paste into the console to log in.https://localhost:9000 in a browser. Type the https://, without it the browser sends plain HTTP to the TLS port and shows a confusing error.security add-trusted-cert / update-ca-certificates command).ck_… operator key from the installer output to log in.[PASS] lines, the ck_… key, and the "Crawdad Fleet Ready" banner with the console and relay addresses. If the console times out during first boot, the installer points you at the service logs (journalctl -u crawdad-fleet -f or the launchd log).Enrolling devices, generating a per-device token or a reusable RMM key, getting the CA fingerprint, and pushing to client machines, is the full Deploy your fleet guide.
The quickest confirmation is the dashboard at http://localhost:7750, opened for you at the end of install. From your own machine it loads without any token, the sidecar sets an authentication cookie automatically for localhost, so the dashboard "just works" locally. (The hex token in the startup log is only needed for remote access or scripted API calls; crawdad rotate-token prints a fresh tokened URL.)
From the command line:
crawdad status # running state, device id, fleet enrollment crawdad-sidecar --version # prints 1.7.1 curl http://127.0.0.1:7749/v1/health # {"status":"ok",...}
To check the service directly:
# macOS launchctl list | grep com.crawdad.sidecar # Linux systemctl status crawdad-sidecar # Windows (PowerShell) sc.exe query CrawdadSidecar
curl -fsk https://localhost:9000/health # console is up curl -fsk https://localhost:9000/api/v1/enrollment/ca-fingerprint # sha256:... # Service (system install) systemctl status crawdad-fleet # Linux launchctl list com.crawdad.fleet # macOS
Anything not answering as expected is covered on the install troubleshooting page, with the symptom, what it means, and the fix for every real failure mode.
Every path has a clean uninstaller. By default your data (keys, certs, audit log) is preserved so you can reinstall; add the purge flag to erase it.
| What | Command | Data |
|---|---|---|
| Sidecar, macOS / Linux | curl -fsSL https://getcrawdad.dev/uninstall.sh | sh | preserved (--purge to remove) |
| Sidecar, Windows | irm https://getcrawdad.dev/uninstall.ps1 | iex (as Administrator) | preserved (--purge to remove) |
| Fleet console | curl -fsSL https://getcrawdad.dev/fleet-install.sh | sh -s -- --uninstall | always preserved |
POST /api/v1/mode/enforcement with {"mode":"monitor"} and an admin token; or if already stopped: sudo crawdad enforce release --reason "uninstall"). Devices in the default Monitor mode need no such step. See the full uninstall notes.Next: Getting started (point your agent at the proxy, trust levels, phone pairing) · Deploy your fleet (enrollment, MSP rollout) · Install troubleshooting.