10-system-runtime.sb) provides the foundational permissions that enable agents to spawn processes, access system binaries, use temporary directories, and interact with macOS services. This is the minimum runtime surface needed for local development workflows.
Overview
This profile enables:- Process Execution: Run shells, compilers, package managers, and test runners
- System Binaries: Access to
/usr,/bin,/sbin,/opt, and macOS frameworks - Temporary Files: Read/write access to
/tmpand/var/folders - Device Nodes: Terminal I/O, PTYs, and entropy sources
- Mach Services: DNS, logging, and system configuration services
The System Runtime Profile is automatically included in all Agent Safehouse policies. You cannot disable it without breaking basic agent functionality.
System Paths
Core System Binaries
Agents need access to system binaries and libraries for spawning tools:Configuration and System Files
Essential system configuration files for networking, DNS, and shell operations:XDG Base Directory Metadata
Agents probe common XDG paths during startup:file-read-metadata allows directory traversal and stat() calls but not reading file contents. This is sufficient for path resolution without exposing data.Process Control
Execution and Forking
Agents frequently chain subprocesses, so process primitives are broadly allowed:Why are process permissions so broad?
Why are process permissions so broad?
Agent workflows inherently involve spawning many subprocesses: git, npm, python, cargo, docker, etc. Restricting process execution would break core agent functionality. Agent Safehouse focuses on data access control rather than process restrictions.
Commented Debug Permissions
For debugging, you can enable additional process introspection:Temporary Files and Sockets
Read/Write Temp Access
Agents need temporary storage for builds, caches, and IPC:Launchd Listener Socket Protection
A defense-in-depth measure blocks launchd listener sockets by default:Device Nodes
Terminal I/O and PTYs
Shell sessions and interactive tools require device node access:Entropy Sources
Cryptographic operations need random data:Terminal Control (ioctl)
Restrictioctl operations to terminal devices:
Mach Services
Agents require various macOS system services for networking, logging, and file events:DNS & Networking
dnssd.service, SystemConfiguration.DNSConfiguration, and configd enable DNS resolution for package managers and git operationsLogging & Diagnostics
logd, diagnosticd, and analyticsd support unified logging used by system frameworksFile Events
FSEvents allows file system watchers for development tools like test runners and build systemsTrust & Security
trustd.agent enables HTTPS certificate validation for package downloadsSystem Sockets
Shared Memory
Notification Center uses POSIX shared memory:Integration with Other Profiles
The System Runtime Profile provides the foundation that other profiles build upon:Base Profile
Uses
HOME_DIR and helper macros defined in Base ProfileToolchains
Toolchain profiles depend on system runtime for process execution and temp files
Network Profile
Network profile extends these mach services with socket operations
Integrations
Integration profiles selectively enable launchd listener sockets and additional services
Customization Examples
Restrict Homebrew access
Restrict Homebrew access
If you want to prevent agents from accessing Homebrew packages, create a custom deny rule:Add this via
--append-profile to override the System Runtime allow rule.Enable process debugging
Enable process debugging
Uncomment the debugging process permissions:
Add custom system paths
Add custom system paths
If your environment uses non-standard system paths: