Agent Safehouse؛ قفس امن برای ایجنتهای کدنویس
خلاصهٔ کاملتر
Agent Safehouse یه ابزار متنبازه برای macOS که ایجنتهای کدنویس مبتنی بر LLM رو داخل سندباکس اجرا میکنه تا فقط به فایلها و سرویسهایی دسترسی داشته باشن که واقعاً لازم دارن. پایهش sandbox-exec خودِ macOS ـه، با پروفایلهای سیاست ترکیبپذیر و مدل deny-first — یعنی اول همهچی بستهست و بعد فقط چیزهای لازم باز میشه. برای ایجنتهای کدنویس معروف و جریانهای کاری داخل اپلیکیشنها هم پروفایل آماده داره.
جالبترین بخشش رفتار پیشفرضش با هوم دایرکتوریه. تو مستندات اومده که متغیر HOME_DIR بهتنهایی دسترسی بازگشتی به کل هوم نمیده؛ فقط پیمایش متادیتا روی مسیر هوم، خوندن ریشهٔ ~/.config و ~/.cache و چندتا مسیر مشخص مثل متادیتای git و ssh مجازه. تو عمل stat روی هوم جواب میده، ولی ls گرفتن از هوم یا خوندن یه فایل شخصی داخلش شکست میخوره مگه یه قانون دقیقتر اجازه بده.
برای تنظیمات مخصوص هر ماشین، تو مستندات پروژه پیشنهاد شده بهجای ریختن مسیرها تو کانفیگ پروژه، یه تابع wrapper تو شل بنویسی و یه پروفایل محلی با --append-profile بهش بدی. پروفایلهای append آخر از همه لود میشن، پس قانونهای deny اونا میتونن پیشفرضهای قبلی رو تنگتر کنن. یه فایل سیاست محلی چیزی شبیه اینه:
(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 میمونه برای استثناهای محلی هر ماشین. worktreeهای گیت هم موقع اجرا شناسایی میشن و بقیهٔ worktreeهای همون ریپو پیشفرض خوندنی میشن، ولی این تشخیص برای پروسههایی که از قبل در حال اجران بهروز نمیشه؛ برای همین بهتره یه ریشهٔ ثابت مثل ~/worktrees رو صریح با --add-dirs-ro اضافه کنی. خود پروژه تأکید میکنه این یه لایهٔ سختسازیه، نه مرز امنیتی کامل جلوی یه مهاجم مصمم.
نکات کلیدی:
- روی macOS با sandbox-exec کار میکنه، با پروفایلهای ترکیبپذیر و مدل deny-first
- نصبش با Homebrew از تپ eugene1g/safehouse یا با اسکریپت مستقل انجام میشه
- پیشفرض دسترسی بازگشتی به هوم نمیده؛ فقط متادیتا و ریشهٔ ~/.config و ~/.cache
- پروفایلهای --append-profile آخر لود میشن و میتونن قانونهای قبلی رو محدودتر کنن
- خود پروژه میگه این ابزار لایهٔ سختسازیه، نه مرز امنیتی قطعی




