> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clawker.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Clawker — Self-Hosted Claude Code Sandbox

> Install clawker on macOS or Linux via Homebrew, install script, or source. Set up a free, open-source, self-hosted sandbox to run Claude Code in Docker on your own machine.

Clawker is a free, open-source, self-hosted AI coding agent sandbox — it runs Claude Code and other AI coding agents inside isolated Docker containers on your own machine, with no cloud and no subscription. It installs as a single CLI on any macOS or Linux host that has Docker. Pick the method below that fits your setup; all of them get you the same `clawker` command.

## Prerequisites

* **Docker** must be installed and running
* macOS is the primary supported platform; Linux should also work
* Windows is not currently supported

## Homebrew (Recommended)

```bash theme={"dark"}
brew install schmitthub/tap/clawker
```

## Install Script

Downloads a pre-built binary from GitHub releases. No Go toolchain required.

```bash theme={"dark"}
curl -fsSL https://raw.githubusercontent.com/schmitthub/clawker/main/scripts/install.sh | bash
```

### Options

Pin a specific version:

```bash theme={"dark"}
curl -fsSL https://raw.githubusercontent.com/schmitthub/clawker/main/scripts/install.sh | CLAWKER_VERSION=v0.1.3 bash
```

Install to a custom directory:

```bash theme={"dark"}
curl -fsSL https://raw.githubusercontent.com/schmitthub/clawker/main/scripts/install.sh | CLAWKER_INSTALL_DIR=$HOME/.local/bin bash
```

## Build from Source

Requires Go 1.25+. Use the Makefile entry point — `go install` is unsupported because the CLI `//go:embed`s several Linux binaries (`clawkerd`, `clawkercp`, `ebpf-manager`, `coredns-clawker`) that are gitignored and produced by `make clawker`. Without them the build fails at compile time with a `pattern assets/...: no matching files found` error.

```bash theme={"dark"}
git clone https://github.com/schmitthub/clawker.git
cd clawker && make clawker
export PATH="$PWD/bin:$PATH"
```

<Note>
  On Linux, the BPF toolchain (`clang`, `llvm`, `libbpf-dev`, `linux-libc-dev`) must be installed before `make clawker` can generate the eBPF bindings. Run `sudo make bpf-deps` once on Ubuntu 24.04 (Noble). On macOS this is handled automatically — the bindings extract through `Dockerfile.controlplane` via `docker buildx`.
</Note>

## Verify Installation

```bash theme={"dark"}
clawker version
```

## Staying Up to Date

Upgrade the same way you installed — `brew upgrade schmitthub/tap/clawker`, re-run
the install script, or `git pull && make clawker` from source.

After an upgrade, a one-time **"What's new" note** appears on your first
interactive run. For each release you gained since your previous version it
shows that release's changelog section — the grouped changes (Added, Fixed,
Changed, …) with any docs links — then shows once and never repeats for that
upgrade. The entries come from the curated `CHANGELOG.md`, which is fetched over
the network and covers the handful of releases that actually changed what you
see or do. The first interactive run after you move onto a version with this
feature just records your current version as the starting point and shows
nothing; from your next upgrade onward it lists what changed.

The note is suppressed when you're not at an interactive terminal (for example
a non-interactive shell, or `CI` set) and can be opted out entirely by setting
`CLAWKER_NO_NOTIFIER` — the same switch that silences the new-version
update notifier.

## First-Time Setup

Navigate to a project directory and initialize:

```bash theme={"dark"}
cd your-project
clawker init
```

This walks you through a guided setup — pick a language preset (Python, Go, Rust, TypeScript, Java, Ruby, C/C++, C#/.NET, Bare) and Clawker creates a `.clawker.yaml` config tailored for your stack. User settings and XDG directories are bootstrapped automatically on first run.

Clawker stores data following the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/):

| Directory | Default Path              | Contents                                                              |
| --------- | ------------------------- | --------------------------------------------------------------------- |
| Config    | `~/.config/clawker/`      | `settings.yaml`, user-level `clawker.yaml`                            |
| Data      | `~/.local/share/clawker/` | `registry.yaml` (project registry), build cache, worktree directories |
| State     | `~/.local/state/clawker/` | Log files, PID files                                                  |

See the [Getting Started](/quickstart) guide for the full walkthrough.
