---
title: "Installation"
description: "All methods for installing Clawker"
icon: "download"
---

## 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
brew install schmitthub/tap/clawker
```

## Install Script

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

```bash
curl -fsSL https://raw.githubusercontent.com/schmitthub/clawker/main/scripts/install.sh | bash
```

### Options

Pin a specific version:

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

Install to a custom directory:

```bash
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`, `clawker-cp`, `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
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
clawker version
```

## First-Time Setup

Navigate to a project directory and initialize:

```bash
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`, build cache, worktree directories |
| State | `~/.local/state/clawker/` | Log files, PID files |

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