JailBee gives every git branch a full system container of its own: its own services, its own Docker daemon, its own IDE and browser, cloned copy-on-write from one golden image. Several stacks run in parallel on one host without a single port collision, Docker-name clash, or shared-database accident.
uv tool install jailbee
Linux host required — see Requirements.
Port 8080 is taken. The second branch's dev server, database and Docker Compose project all want names the first branch already holds.
The database is shared. A migration written on one branch quietly changes what the other branch is testing against.
Switching costs twenty minutes. Stash, rebuild, reinstall, re-seed — and then do it again when you switch back.
An agent that cannot reach the network cannot do its job, so the question was never
whether it gets out — it is how wide you leave the opening. jailbee net strict
allows the hosts your build actually needs. jailbee net loose widens it for a set time and
reverts on its own, so nobody leaves it open by forgetting. JailBee shields the host
from what runs inside a container; it does not pretend to shield the code inside from
the world.
jb ide launches the JetBrains IDE that lives in the container onto your own
Wayland session. jb chrome does the same for a browser with its own
profile and its own localhost. jb gui opens a Qt dashboard that spans every
repo on the host.
Isolation, per branch. Every branch you're working on gets a full environment of its own — services, database and all — so two branches never fight over the same port or the same data.
A shortcut for git. Commits move straight between your computer and a branch's container, so you don't have to push to GitHub and pull again just to get code from one place to the other.
Docker, unchanged. Docker and Docker Compose run normally inside each container, so whatever you already use for local development keeps working as-is.
A leash on the network. Each container can only reach the internet addresses your build actually needs, and you can widen that temporarily when you need to — it closes back up on its own.
Your tools, not a copy. The IDE and browser that live inside a container open on your own screen, so working in one feels the same as working locally.
Fast to spin up, easy to watch. New containers start in about a minute because they're cheap copies of one shared image, and a live dashboard shows every one of them across every project.
JailBee needs a Linux host running Incus, and uv to install the CLI. Ubuntu 26.04 gives nested Docker out of the box. Host setup — Incus, firewall, UID mapping, kernel keyring limits — is a one-time job with a few moving parts, and the installation guide walks it end to end. Running from an Apple Silicon Mac through a Linux VM is supported, experimentally.
uv tool install jailbee
uv tool install 'jailbee[gui]'
The gui extra adds the Qt dashboard.
jailbee config initjailbee doctorjailbee initjailbee base buildjailbee new feat/my-branch