Skip to main content

YOLO Jail

CI License

Describe your agentic development environment once — agents, config, skills, tools and credentials — and run it anywhere from a sealed jail to your own shell.

yolo composes everything an AI coding agent works with: which agents are installed (Claude Code, Codex, Copilot, opencode, pi, Antigravity), their settings and house rules, skills, MCP and language servers, packages, and the credentials and host services they may reach. You describe it once, declaratively and per workspace, and yolo renders that description wherever the agent runs. Runs on Linux and macOS (Apple silicon, and Intel for now).

Why?

Setting up an AI coding agent well means installing it, configuring it, writing its house rules, wiring its MCP and language servers, giving it skills and tools, and handing it the logins it needs, then doing it all again for the next agent, the next project and the next machine. yolo turns that into one declaration you can version, share as a pack, and apply anywhere.

How much the agent is confined is one setting of that declaration:

  • A jail, the default: an isolated Linux container, with Podman on Linux or Apple Container or Podman on a Mac. Your project is mounted read-write at /workspace, and your SSH keys, git credentials and cloud tokens are not there, so agents run without permission prompts.
  • Your own machine: yolo host apply writes the same settings, skills and house rules into your real home, and yolo host -- <agent> runs an agent there with its keys and profile.
  • macos-user, in development: the agent runs as a hidden macOS user inside Apple's sandbox, with no VM.

The user guide (source) explains how it works, and its feature index lists everything yolo can set up.

Prerequisites

Three things on the host, whichever way you install:

  • Nix, a reproducible package builder, which builds the jail image. On a Mac, the Nix daemon must also trust your user, so that it can download yolo's prebuilt image pieces and build anything uncached in a temporary container.
  • A container runtime: Apple Container on a Mac with Apple silicon and macOS 26 or later (the Mac default), or Podman — rootless on Linux, or with its Podman Machine VM on any Mac.
  • yolo itself, below.

Platforms:

  • Linux, x86_64 and arm64 — rootless Podman. Both are CI-tested, from one Nix image definition.
  • macOS, Apple silicon — Apple Container (recommended) or Podman Machine, running a native arm64 Linux container with no emulation. The macos-user sandbox, which needs no container runtime, is coming. See the macOS guide.
  • macOS, Intel — Podman Machine only, and ending: Apple Container, Podman 6, Homebrew's prebuilt packages and the NixOS Nix installer have dropped Intel Macs, and the Nix packages yolo uses there stop receiving fixes at the end of 2026. Install yolo there from a release archive rather than Homebrew.

Install

brew install mschulkind-oss/tap/yolo-jail

Homebrew works on macOS and Linux and installs yolo only, so install Nix and a runtime first. Getting Started has the copy-paste steps for each Mac and Linux setup: the Nix installer and the one setting it needs, each runtime and how to check it, the other ways to install yolo, and the first launch.

yolo builds each jail from its flake bundle — flake.nix, its lockfile and the prebuilt in-jail binaries — which it finds beside its own binary, never in your working directory. Homebrew, a release archive and the from-source install ship a complete bundle. go install and pipx install yolo-jail (or uvx yolo-jail) ship only the binary and are not standalone jail-launch channels. For checkout development, just dev builds and runs a matched launcher without changing the installed command. You can also symlink scripts/dev-wrapper.sh under any name on your PATH, including yolo; it always execs the matching launcher by absolute path and keeps your current directory as the workspace. Remove YOLO_REPO_ROOT from your shell configuration: it no longer selects a launch source. See development from source.

From source

For hacking on yolo-jail itself, or running an unreleased working tree. Identical on Linux and macOS. You need git, Go and just, or mise to install the pinned Go and just (without them installed):

git clone https://github.com/mschulkind-oss/yolo-jail.git
cd yolo-jail
just setup             # pinned toolchain (mise) + Go module deps
just deploy            # builds + installs the yolo CLI

To upgrade later, run yolo update; Upgrade covers each way of installing.

Upgrading from the Python version

yolo-jail used to ship as a Python package installed with uv tool install. just deploy retires that install for you — it uninstalls the yolo-jail uv tool and clears the console scripts it left in $GOBIN (yolo, yolo-ps, yolo-host-processes, yolo-claude-oauth-broker-host), which otherwise make go install fail with build output "…/yolo" already exists and is not an object file.

Nothing is deleted that cannot be positively identified as part of that old install. If something unrecognized is sitting at $GOBIN/yolo, the migration stops and asks you to look at it rather than guessing. uv itself is no longer a prerequisite.

For development, see Contributing.

Quick Start

yolo init-user-config    # creates ~/.config/yolo-jail/config.jsonc; add "packs": ["claude"] to it
cd ~/code/my-project     # any repository
yolo check               # checks Nix, the runtime and your config; the first run builds the jail
yolo -- claude           # Claude Code in the jail, with its permission prompts off
yolo                     # or a shell in the jail

The shipped agent packs include claude, codex, copilot, opencode, pi and agy; list as many as you like, and each installs the first time you type its name in the jail. With no packs, a jail is a shell with no coding agent. Run yolo check after every config edit, and yolo stop, then yolo again, for a running jail to pick the edit up.

Next steps, in the user guide:

Contributing

yolo-jail is a Go module, and AGENTS.md is the guide to developing it: the architecture, the build and test traps, and the file that enforces each rule. From a clone:

just setup           # the toolchain mise.toml pins, and the Go module deps
just check-ci        # the gate CI runs, before you land: go vet and staticcheck for linux and darwin,
                     # gofmt, the changelog and user-guide checks, and the short test suite

The gate also needs python3 on your PATH, for the user-guide checks. Commit messages follow Conventional Commits. Changes a user can notice are described under [Unreleased] in CHANGELOG.md, which becomes the release notes.

The organization's code of conduct and security policy apply here. Its contributing guide describes the pull-request process; its toolchain and code-quality sections are written for the organization's Python projects and do not apply to this one.

Documentation

  • User Guide: installing, configuring and troubleshooting yolo (source)
  • Settings per setup: what each setting does on each runtime
  • yolo config-ref: every config key; yolo --help: every command
  • AGENTS.md: the guide to developing yolo itself

License

Apache License 2.0

Metadata

Release files for yolo-jail 0.15.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for yolo-jail 0.15.1
File
yolo_jail-0.15.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
yolo_jail-0.15.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
yolo_jail-0.15.1-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
yolo_jail-0.15.1-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
yolo_jail-0.15.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
yolo_jail-0.15.1-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 168.0 MB

Release files / yolo_jail-0.15.1-py3-none-musllinux_1_2_x86_64.whl

Download URL yolo_jail-0.15.1-py3-none-musllinux_1_2_x86_64.whl
Size 29.6 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d59212ad55ed9c70b9b4c0d0d5d68563f13cc089e246929bc0b0d5a0d7262a6f
BLAKE2b-256 checksum
How to use checksums
96253247c06d72d179362b6c714473962586800af1d0cd26434b3f8ddeab1c98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / yolo_jail-0.15.1-py3-none-musllinux_1_2_aarch64.whl

Download URL yolo_jail-0.15.1-py3-none-musllinux_1_2_aarch64.whl
Size 26.2 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
ee25a20128dd1408c8b24d00739927ab043e35a03a5f233c4baa8402b18d038e
BLAKE2b-256 checksum
How to use checksums
47d04bd83bd5aa5ab9f27dff3a31e483b382f1c9418c28932e2e18494374d776
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / yolo_jail-0.15.1-py3-none-manylinux_2_17_x86_64.whl

Download URL yolo_jail-0.15.1-py3-none-manylinux_2_17_x86_64.whl
Size 29.6 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
cf1003ab50d504884f4dcbdef3f766ad9038671662dd604684beb483b6532852
BLAKE2b-256 checksum
How to use checksums
41a05d32a3fbee86a6aa775d6f995d2211902d71c04f08b98403d5c6020ea836
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / yolo_jail-0.15.1-py3-none-manylinux_2_17_aarch64.whl

Download URL yolo_jail-0.15.1-py3-none-manylinux_2_17_aarch64.whl
Size 26.2 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
7e8b9a0a903ccb3271a1671f87c61ff7f176a0b5e17fc07eb6edfd2373efa4c3
BLAKE2b-256 checksum
How to use checksums
7ab9e1ad84533b70a4f8c8703d1286e0d6fc4ae6a1c1f32030a0ed2f5535c9f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / yolo_jail-0.15.1-py3-none-macosx_11_0_arm64.whl

Download URL yolo_jail-0.15.1-py3-none-macosx_11_0_arm64.whl
Size 26.6 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a9b54fa194f249536f0c1007436eafa2a2c087541cfdf0039232907953ead4f9
BLAKE2b-256 checksum
How to use checksums
df949379ceff952e1c51869913ecb29e051ff933d2b1ac9e7f6e3617376c9e15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / yolo_jail-0.15.1-py3-none-macosx_10_9_x86_64.whl

Download URL yolo_jail-0.15.1-py3-none-macosx_10_9_x86_64.whl
Size 29.8 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
d5c406c04abb61efda2946d466cea90d2c6a92ce696e408c1da8d1ecb0fb9a0d
BLAKE2b-256 checksum
How to use checksums
5516eb0251fea9413b4fc744376392a32e5e208a6ac3e3bdfe942023a706a289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for yolo-jail 0.15.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page