eugene1g/agent-safehouse

GitHub: eugene1g/agent-safehouse

一款 macOS 平台的 LLM 编程代理沙箱工具,通过细粒度文件访问控制降低 AI 助手误操作敏感数据的风险。

Stars: 873 | Forks: 23

# Agent Safehouse [![Tests (macOS)](https://github.com/eugene1g/agent-safehouse/actions/workflows/tests-macos.yml/badge.svg)](https://github.com/eugene1g/agent-safehouse/actions/workflows/tests-macos.yml) [![E2E (TUI Agent via tmux)](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5b4b429e65220515.svg)](https://github.com/eugene1g/agent-safehouse/actions/workflows/e2e-agent-tui-macos.yml) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) 在 macOS 上沙箱化你的 LLM 编码代理,使其仅能访问实际需要的文件和集成。 Agent Safehouse 使用 `sandbox-exec`,采用可组合的策略配置文件和默认拒绝模型。它支持主流编码代理和应用程序托管的代理工作流,同时保持正常的开发使用体验切实可行。 ## 理念 Agent Safehouse 基于实用的最小权限原则设计: - 从默认拒绝一切开始。 - 仅允许代理完成有用工作所需的内容。 - 保持开发者工作流的高效性。 - 默认使降低风险变得简单。 它是一个加固层,并非针对蓄意攻击者的完美安全边界。 ## 文档 - 网站:[agent-safehouse.dev](https://agent-safehouse.dev) - 文档:[agent-safehouse.dev/docs](https://agent-safehouse.dev/docs/) - 策略生成器:[agent-safehouse.dev/policy-builder](https://agent-safehouse.dev/policy-builder) ## 机器特定默认值 如果你将共享仓库、缓存或团队文件夹保存在机器特定的位置,请将这些设置排除在项目配置之外,并将它们放入 shell 包装脚本和本地附加策略中。 这让你能够一次性定义自己的合理默认值,并从 `claude`、`codex`、`amp` 或应用程序启动器中复用它们: POSIX shells (`zsh` / `bash`): ``` # ~/.zshrc 或 ~/.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 ``` 机器本地策略文件示例: ``` ;; ~/.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") ) ``` 使用 `--add-dirs-ro` 或 `--add-dirs` 进行普通的共享文件夹访问,并保留 `--append-profile` 用于机器本地策略例外或最终的拒绝/允许覆盖。当仓库共享但每台开发者机器具有不同的本地挂载点时,这种模式非常有用。 所有详细文档(设置、使用、选项、架构、测试、调试和调查)均位于 VitePress 文档站点中。
标签:Cutter, HTTP工具, macOS安全, Red Teaming防御, sandbox-exec, 代码沙箱, 大语言模型安全, 威胁情报, 子域名枚举, 安全策略, 应用加固, 开发者工具, 提示词设计, 文件系统保护, 智能体隔离, 最小权限, 机密管理, 权限控制, 端点防护, 系统安全, 网络安全, 网络安全审计, 访问控制列表, 隐私保护