← Download

Install guide

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.

Paths

  1. Sidecar, macOS
  2. Sidecar, Linux
  3. Sidecar, Windows
  4. Fleet console (self-hosted / MSP)
  5. Confirming it's running
  6. Uninstalling

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.

The ports Crawdad uses. Sidecar: 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).

1 Sidecar, macOS

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 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
You should see: the run of green checkmarks ending in ✓ 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.

2 Sidecar, Linux

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:

  ✓ 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
You should see: ✓ 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.

3 Sidecar, Windows

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 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
You should see: 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).
Platform posture. Native Windows is monitoring-first, pattern detection and visibility, with full ML detection on the roadmap. Under Enforce mode Windows applies the mandatory credential broker but has no OS egress lock today (that runs on macOS and Linux). For full ML detection on Windows now, run the Linux binary under WSL.

4 Fleet console (self-hosted / MSP)

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 userWith 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
Serviceper-user (systemd --user / launchd agent)system (systemd / launchd daemon)

What the installer does, in order:

  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)
Save the 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.

First-run: log in

  1. Open 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.
  2. The console uses the internal CA's self-signed certificate, so you'll get a one-time browser warning. Proceed past it (or trust the root CA cert, the installer prints its path and the exact security add-trusted-cert / update-ca-certificates command).
  3. Paste the ck_… operator key from the installer output to log in.
  4. You're in. Create a scope for your first client or environment, then enroll devices into it.
You should see: three [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.

5 Confirming it's running

Sidecar

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

Fleet console

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.

6 Uninstalling

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.

WhatCommandData
Sidecar, macOS / Linuxcurl -fsSL https://getcrawdad.dev/uninstall.sh | shpreserved (--purge to remove)
Sidecar, Windowsirm https://getcrawdad.dev/uninstall.ps1 | iex (as Administrator)preserved (--purge to remove)
Fleet consolecurl -fsSL https://getcrawdad.dev/fleet-install.sh | sh -s -- --uninstallalways preserved
If a device is in Enforce mode, release the egress lock first. Under Enforce, Crawdad installs a persistent OS default-deny egress lock (pf on macOS, iptables on Linux) designed to survive a sidecar kill, so removing the sidecar without releasing it can leave a deny rule behind. Return the device to Monitor first (while the sidecar is alive: 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.