opencode-sandbox: OpenCode 2 in a sandbox for any project
Runs OpenCode 2 with full permissions while containing its mistakes: - egress filter: squid in a container per project; squid.conf is rendered from layered egress.conf files (package, user, project, local) with allow/block/connect rules and expect-pass/expect-block self-tests - netlock: nftables rejects direct egress for the opencode-sandbox group (installed once with sudo as a systemd unit) - bubblewrap: read-only host, writable project, worktrees and state; credentials hidden; ssh keys via the host's ssh-agent; session bus replaced by an xdg-dbus-proxy limited to notifications; no permission prompts (sudo and systemd-run denied); refuses to run unsandboxed - per-project state in ~/.local/share/opencode-sandbox/<name> - worktrees: `wt add|rm|list` with project hooks - skills mounted per project; the opencode-sandbox skill explains the environment to the agent - plugins as submodules: context-panel, skill-compact-resurrect; global config adds opencode-notifier and cc-safety-net - README in English and Russian
This commit is contained in:
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
# xdg-open for processes inside opencode-sandbox (OpenCode and the agent's shell). A browser
|
||||
# started from here would inherit the netlock group and the proxy, and an already running
|
||||
# one would open the agent's link without any filter. opencode-sandbox opens the web UI
|
||||
# itself, from the user's normal group.
|
||||
echo "xdg-open is disabled in the sandbox: $*" >&2
|
||||
echo "Ask the user to open the link." >&2
|
||||
exit 1
|
||||
Reference in New Issue
Block a user