How do I…?
Save my LLM credentials so I don’t need to re-auth for each box?
tldr: say y when the first-run picker offers shared auth for your
agent – or byre config and enable the relevant x-shared-auth skill(s)
by hand.
By default agents log in once per project, inside the box. The shared-auth
skills (claude-shared-auth, codex-shared-auth, gemini-shared-auth) move
that to once per machine. For claude and codex every project’s first run
asks: “Opt this box into <agent> shared credentials?” – yes enables the
skill for that project (its byre.config), and only for it. Saying yes to
“Save these as your default?” remembers your answer like the
template/agent favourites: the next box’s question just defaults to it,
one Enter to accept. (Enabling the skill by hand in
~/.byre/default.config is the machine-wide route – then the question
stops.) On an install that predates the offer, run byre skill update
once so the companion skills carry the offer metadata. The login lives in
a shared volume that reset/forget deliberately never touch. See
docs/SECURITY.md
for the implications of this. (Grok has no shared-auth: its token rotation
can’t be file-shared, so it logs in per project –
ADR 0023.)
Paste images and files into the box?
tldr: byre deliver <file> — or just byre deliver and paste.
Anything you deliver lands in the box’s /inbox and the in-box path comes
back on your clipboard, ready to Cmd-V into the agent prompt. With no
arguments byre reads your clipboard — so screenshot, byre deliver,
paste, done. Works from any directory (it finds your running box), over
SSH, and with whole directories. See
docs/DELIVER.md.
Get tab completion for byre commands?
tldr: eval "$(byre completion bash)" in your shell’s startup file.
Completions cover every command and flag — bash, zsh, fish, and powershell. One line in your rc file regenerates the script at shell startup (~3ms), so it never goes stale across byre upgrades and needs no extra packages:
eval "$(byre completion bash)" # ~/.bashrc
source <(byre completion zsh) # ~/.zshrc, after compinit
byre completion fish | source # ~/.config/fish/config.fish
byre completion --help has the powershell line and the details.
Stop using byre?
byre dockerfile prints the image, byre dockerrun prints the exact run
command – that’s the whole exit. The firewall is the one thing that
doesn’t travel automatically (its rules are applied from outside the box,
by byre); byre ejectfirewall prints that step as a standalone script.
See
docs/EJECTING.md.
Restrict network access?
tldr: byre config and enable the firewall skill. Under “Egress” choose
what to open. We automatically open the ports your selected agent needs,
and there may be more suggestions based on your selected skills (eg
Github) but those you’ll need to manually open and then relaunch.
By default, we don’t restrict network access. The firewall skill flips that to deny-by-default: your container starts but runs nothing while a privileged one-shot helper joins its network namespace, installs the allowlist rules, and verifies them. Only then does the agent launch behind the wall – and if any of that fails, the box dies closed rather than running open.
One honest limit worth knowing: hostname grants are pinned to the IPs they resolved to at launch, so on DNS that rotates (CDNs, some cloud resolvers) a granted host can start failing – closed, never open – until a relaunch re-resolves it. Details in docs/SECURITY.md.
Just want to block telemetry, not the internet? The firewall-open skill
keeps the network open and drops only the hosts you block:
egress = ["!statsig.anthropic.com"]. The same !host entries subtract
from the full firewall’s allowlist too, skill-declared endpoints included.
Mount other folders from the host?
tldr: byre config -> Mounts
Run other Docker containers from inside the byre environment?
Today this is possible rather than ergonomic. You can mount the host’s
Docker daemon socket using byre config -> Mounts. It’s worth remembering
that anything that can run Docker on the host also has effective root on
the host. I plan to make this even easier and also support nested Podman
in the very near future.
Get the coding agent to edit its own byre config?
byre develop --self-edit will mount the box’s configuration directory on
/home/dev/.byre-self and will also ship contextual documentation to your
box telling your agent how to make edits. There are (of course!) some
security implications to this, so it’s probably best not to always run in
this mode. Changes to the configuration will be shown on exit.