sh, a recipe dabs ships with: a shell in a clean box
with your current directory live-mounted at /work. Run everything from your
project directory.
Screens below are verified by
walkthroughs/test_quickstart.py. Generated names
(like sh-a3f9c21d) are blanked to ________ — yours will differ.0. Install dabs
~/.local/bin — no root, nothing system-wide. Set
DABS_INSTALL_DIR to install it elsewhere. If the script says that directory
is not on your PATH, add it and reopen your shell.
dabs drives platform tools you install yourself — Apple’s container on
macOS, bubblewrap + docker on Linux. It detects what is missing and
prints the install command; it never installs anything for you.
1. Boot a box
--no-command boots a fresh box and leaves it up without running the recipe’s
command. Note the id it prints — that is your handle for everything else.
2. Reach in with exec
dabs exec <box> '<shell line>' runs a shell command inside the box. Your
project is at /work, mounted live:
sh uses a live mount, the box’s write is now on your disk:
3. See what dabs owns
live means the box is running right now. KIND names the
driver running each box, and INFO says where a node lives — for a box, the
ready-to-paste command that shells into it.
4. Reap it
dabs rm never tears a box down silently. Without -y it previews what it
would take and asks — on a terminal, as an interactive dialog:
dabs: rm sh-________: kept). Pass -y to
consent up front — the form agents and scripts use: