Full disclosure: I am a part of nono community.
nono is an open source sandbox for AI coding agents. It uses Landlock on Linux and Seatbelt on macOS to enforce filesystem and command policies at the kernel level. The agent process cannot bypass it from the application layer.
It ships with ready-to-use profiles for Claude Code, Codex, and OpenCode. To sandbox Claude Code:
```
nono run --profile claude-code -- claude
```
That's it. The default policy blocks credential stores (~/.ssh, ~/.aws, ~/.kube), browser cookies, shell history, and a set of destructive commands (rm, dd, sudo, shutdown). The agent can only touch what the profile explicitly permits.
If you run a custom agent and need to build your own profile, `nono learn` traces what your agent actually touches and tells you exactly which paths to allow. No guesswork.
```
nono learn -- python my_agent.py
```
Full walkthrough in the blog: https://nono.sh/blog/nono-learn-policy-profile
GitHub: https://github.com/always-further/nono
Curious how you are sandboxing your agents right now.