80 lines
2.7 KiB
TOML
80 lines
2.7 KiB
TOML
# Merge rules (apply to every layering below): scalars replace, vec fields
|
|
# append, profiles merge by name.
|
|
#
|
|
# Layers, lowest precedence first: globals -> active profiles (with their
|
|
# ancestors folded in) -> CLI flags. `--profile a,b` selects the active
|
|
# profiles, merged left to right; otherwise the top-level `profile` below is
|
|
# used. Either form takes one name or a list. Profiles can themselves set
|
|
# `profile = "parent"` (or a list) to inherit; a shared ancestor merges once.
|
|
#
|
|
# `extra-config` optionally points to a second file layered on top of this
|
|
# one. Missing extra-config files are silently skipped; nesting is not
|
|
# supported.
|
|
|
|
extra-config = "~/.config/agent-sandbox/extra.toml"
|
|
|
|
whitelist = true
|
|
# blacklist = true
|
|
# hardened = true # implied by whitelist
|
|
# unshare-net = true
|
|
# seccomp = false # default: true
|
|
# env-filter = false # default: true
|
|
# dry-run = true
|
|
# chdir = "~/projects/my-repo"
|
|
|
|
ro = [
|
|
"~/.config/agents",
|
|
"~/.config/git",
|
|
"~/dev",
|
|
# "/host/path:/sandbox/path", # SRC:DST -> mount host SRC at a different target
|
|
]
|
|
rw = [
|
|
"~/.cargo",
|
|
"~/.rustup",
|
|
]
|
|
# mask = ["~/.ssh"] # hide path with tmpfs/over /dev/null
|
|
|
|
persistent-tmp = true # back /tmp and /var/tmp with host dirs that survive
|
|
# across runs (key derived from profile+cwd).
|
|
# No-op in blacklist mode (which already shares host /tmp).
|
|
# persistent-key = "shared" # override the derived key — e.g. to share state
|
|
# across profiles or after moving the project dir
|
|
|
|
env = [
|
|
"XDG_RUNTIME_DIR", # KEY -> pass through from host if set
|
|
# "DEBUG=", # KEY= -> set to empty string
|
|
# "DATABASE_URL=dev", # KEY=VALUE -> set explicitly
|
|
]
|
|
# unsetenv = ["SOME_LEAKED_VAR"]
|
|
|
|
# entrypoint = ["claude", "--dangerously-skip-permissions"] # binary + baked-in args
|
|
# command = ["--model", "opus"] # default trailing args
|
|
# bwrap-args = ["--tmpfs /opt/scratch"] # raw bwrap escape hatch
|
|
|
|
profile = ["claude", "audio"]
|
|
|
|
[profiles.claude]
|
|
ro = ["~/.local/share/claude-code"]
|
|
rw = ["~/.config/claude"]
|
|
entrypoint = ["claude", "--dangerously-skip-permissions"]
|
|
|
|
[profiles.codex]
|
|
ro = ["~/.local/share/codex-cli", "~/.agents"]
|
|
rw = ["~/.config/codex"]
|
|
entrypoint = ["codex", "--dangerously-bypass-approvals-and-sandbox"]
|
|
|
|
[profiles.pi]
|
|
ro = ["~/.local/share/pi-agent"]
|
|
rw = ["~/.config/pi"]
|
|
entrypoint = ["pi"]
|
|
|
|
[profiles.audio]
|
|
ro = ["/etc/alsa", "/run/user/1000/pulse", "/run/user/1000/pipewire-0"]
|
|
|
|
[profiles.gpu]
|
|
bwrap-args = ["--dev-bind /dev/dri /dev/dri"]
|
|
|
|
[profiles.wayland]
|
|
ro = ["/run/user/1000/wayland-0"]
|
|
env = ["WAYLAND_DISPLAY=wayland-0"]
|