dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
macOS에서 LLM 코딩 에이전트를 샌드박스하고, sandbox‑exec로 커널 수준 강제, 거부 우선, 조합 가능, 의존성 없음
Sandbox your LLM coding agents on macOS. Kernel-level enforcement via sandbox-exec — deny-first, composable, zero dependencies.
보안Shell · JavaScriptGitHub @eugene1g온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Sandbox your local AI agents so they can read/write only what they need
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Sandbox your LLM coding agents on macOS so they can only access the files and integrations they actually need.
Agent Safehouse uses sandbox-exec with composable policy profiles and a deny-first model. It includes profiles for major coding agents and app-hosted agent workflows while keeping normal development usage practical.
Agent Safehouse is designed around practical least privilege:
• Start from deny-all.
• Allow only what the agent needs to do useful work.
• Keep developer workflows productive.
• Make risk reduction easy by default.README 전문 보기 ↗Sandbox your LLM coding agents on macOS so they can only access the files and integrations they actually need.
Agent Safehouse uses sandbox-exec with composable policy profiles and a deny-first model. It includes profiles for major coding agents and app-hosted agent workflows while keeping normal development usage practical.
Homebrew:
brew install eugene1g/safehouse/agent-safehouse
Standalone script:
mkdir -p ~/.local/bin
curl -fsSL https://github.com/eugene1g/agent-safehouse/releases/latest/download/safehouse.sh \
-o ~/.local/bin/safehouse
chmod +x ~/.local/bin/safehouse
Agent Safehouse is designed around practical least privilege:
It is a hardening layer, not a perfect security boundary against a determined attacker.
HOME_DIR is used to render precise home-relative rules in the assembled policy. By itself, it does not grant recursive read access to your home directory.
WORK_DIR similarly exposes the selected workdir to built-in and appended policy rules through workdir-literal, workdir-subpath, and workdir-prefix. Relative helper arguments begin with /, letting a reusable policy target files such as <workdir>/.env without hardcoding an absolute project path.
Default Safehouse behavior is narrower:
/, the path to $HOME, and $HOME itself so runtimes can probe explicitly allowed home-scoped paths~/.config and ~/.cache so tools can discover XDG locationsIn practice, stat "$HOME" can succeed while ls "$HOME" and cat ~/secret.txt still fail unless a more specific rule grants that path.
If you want to remove even the default home exceptions, use --append-profile; appended profiles load last, so their deny rules can narrow earlier defaults.
Safehouse's built-in profiles/* modules may include macOS compatibility paths such as /etc, /private/etc/resolv.conf, or /private/etc/localtime.
At policy render time, Safehouse resolves built-in absolute paths from allow file-read* rules and emits matching grants for the real target path when the authored path is a symlink. That keeps host-specific system files working without broadening the source profiles to recursive /private/etc access.
Current scope is intentionally limited to built-in absolute literal and subpath read grants. User-provided path grants still normalize separately, and writable or metadata-only built-in rules are not auto-expanded by this mechanism today.
If you keep shared repos, caches, or team folders in machine-specific locations, keep those settings out of project config and put them in a shell wrapper plus a local appended profile.
This lets you define your own sane defaults once and reuse them from claude, codex, amp, or app launchers:
POSIX shells (zsh / bash):
# ~/.zshrc or ~/.bashrc
export SAFEHOUSE_APPEND_PROFILE="$HOME/.config/agent-safehouse/local-overrides.sb"
safe() {
safehouse \
--add-dirs-ro="$HOME/server" \
--append-profile="$SAFEHOUSE_APPEND_PROFILE" \
"$@"
}
safe-claude() { safe claude --dangerously-skip-permissions "$@" }
fish:
# ~/.config/fish/config.fish
set -gx SAFEHOUSE_APPEND_PROFILE "$HOME/.config/agent-safehouse/local-overrides.sb"
function safe
safehouse \
--add-dirs-ro="$HOME/server" \
--append-profile="$SAFEHOUSE_APPEND_PROFILE" \
$argv
end
function safe-claude
safe claude --dangerously-skip-permissions $argv
end
Example machine-local policy file:
;; ~/.config/agent-safehouse/local-overrides.sb
;; Host-specific exceptions that should not live in shared repo config.
(allow file-read*
(home-literal "/.gitignore_global")
(home-subpath "/Library/Application Support/CleanShot/media")
(subpath "/Volumes/Shared/Engineering")
)
;; Keep root environment files unavailable even though the workdir is writable.
(deny file-read* file-write* (workdir-literal "/.env"))
Use --add-dirs-ro or --add-dirs for normal shared-folder access, and keep --append-profile for machine-local policy exceptions or final deny/allow overrides. That pattern is useful when the repo is shared but each developer machine has different local mount points.
Git worktrees are auto-detected at launch when the selected workdir itself is a Git worktree root: that worktree gets the shared Git metadata access it needs when its common dir lives outside the selected workdir, and the other existing linked worktrees for that repo become readable by default for cross-tree inspection. That snapshot does not update for already-running processes, so if you create worktrees under a stable parent such as ~/worktrees, prefer adding that root explicitly with --add-dirs-ro.
All detailed documentation (setup, usage, options, architecture, testing, debugging, and investigations) lives in the VitePress docs site.
Safehouse is specifically tailored for macOS (sandbox-exec). For developers looking for Linux-native sandboxing for AI coding agents, consider:
vetto enable <agent>).