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
RecommendedInstalled 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
uv / pip
No install neededTry 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
Source checkout
For contributorsClone 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
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
docker compose
One commandState — 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
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
Linux
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.