Install Skep. Start governing agents in a few minutes.

Skep runs on macOS and Linux. One command from PyPI — or run it from a source checkout or a container.

100% local
No cloud, no account. Your code stays with you.
Actively developed
Worker contract 0.3.5, daily-driven since 2026-07-17.
Quick start
# Install from PyPI
pipx install skep

# Start the Skep daemon
skep serve

# Open the web interface
http://127.0.0.1:8765
Skep is running. The access token prints on startup. Quickstart guide

Choose your installation method

Three supported paths. The PyPI package is the default; the source checkout is what the installer script detects and what contributors use.

pipx

Recommended

Installed as an isolated app, then skep is on your PATH. On Debian/Ubuntu the system Python refuses bare pip install (PEP 668) — pipx is the way around it, not --break-system-packages.

sudo apt install pipx      # 1. Debian/Ubuntu (Fedora: dnf install pipx)
pipx ensurepath            # 2. puts ~/.local/bin on your PATH
source ~/.bashrc           # 3. reload so the PATH change lands now
pipx completions           # 4. prints the completion setup for YOUR shell;
                           #    bash: eval "$(register-python-argcomplete pipx)" → ~/.bashrc
pipx install skep          # 5.
skep --help                # 6. verify it resolves
skep serve                 # 7. start the daemon
Requires Python 3.12+ skep --version prints the contract version too

uv / pip

No install needed

Try it without installing with uvx, or keep it isolated as a tool. pip install skep is still fine inside a virtual environment.

uvx skep
uv tool install skep
pip install skep   # inside a venv
Update with uv tool upgrade skep Linux sandboxing needs bubblewrap (below)

Source checkout

For contributors

Clone the repository and let uv resolve the locked dependency set.

git clone https://github.com/Anmolnoor/skep.git
cd skep
uv sync --frozen
uv run skep --version
Requires Git, Python 3.12+, and uv All commands run as uv run skep …

Installer script

Detects a source checkout, runs uv sync, nudges you about bubblewrap on Linux, and prints the first-run commands.

bash scripts/install.sh --dry-run
bash scripts/install.sh
Use --dry-run to see the plan first Linux and macOS only

docker compose

One command

State — SQLite, audit evidence, cloned repos, and the access token — lives in a named volume. The container itself is disposable.

docker compose up -d
docker compose logs skep
Serves on :8765 The access token prints in the boot log

Secrets ride by name

Skep stores only variable names, never values. Export what the compose file expects before starting.

ANTHROPIC_API_KEY=…
GH_TOKEN=…

System requirements

macOS

macOS 12.6 (Monterey) or later Python 3.12 or later Git 2.30 or later Seatbelt is included by default
Seatbelt provides the process sandbox, when the host allows applying profiles.

Linux

Ubuntu 20.04+ / Debian 11+ / Fedora or similar Python 3.12 or later Git 2.30 or later bubblewrap for sandboxing
User namespaces must be enabled by host policy for the probe to pass.

Install bubblewrap

# Ubuntu / Debian
sudo apt install bubblewrap

# Fedora
sudo dnf install bubblewrap

Then confirm the probe with skep doctor. If sandbox mode is requested and no backend applies, the worker refuses to start.

First launch checklist

1
Start the daemon
skep serve
2
Open the web UI
127.0.0.1:8765
3
Check the sandbox
skep doctor
4
Add a repository
/workon ~/code/app
5
Configure a worker
skep project setup --engine
6
Run your first task
skep run …
Need help?
Check the quickstart guide or the first-run walkthrough.
Installation guide
Something broken?
Open an issue with your skep doctor output.
Report an issue

Ready to keep your repository safe?

Install Skep and put a verification layer between agents and your code.

Run first-time setup View docs