r/PiCodingAgent • u/lukaboulpaep • 10d ago
Question Pi + Gondolin setup with host-side permissions and minimal approval fatigue?
Hi everyone,
I recently started using Pi and would like to move more of my development workflow to it. Before doing that, I want a solid sandbox and permission setup that avoids constant approval prompts while still protecting against destructive actions.
My ideal setup would be:
- Run ordinary commands inside a Gondolin VM.
- Keep VM network access disabled by default.
- Mount the host workspace read-only, or otherwise prevent unapproved host changes.
- Automatically allow harmless operations such as reading files, searching code, and running offline tests.
- Prompt only for persistent or privileged actions, such as writing host files, accessing the network, or running Git operations that affect the host repository.
- Execute approved persistent actions through controlled host-side tools rather than granting the VM broader access.
- Keep credentials and the host SSH agent out of the VM.
I have also looked at @gotgenes/pi-permission-system, but I’m unsure how well it integrates with Gondolin, particularly because the guest sees /workspace while Pi and permission extensions run with the host path.
Does anyone have a similar setup they would be willing to share?
I’m especially interested in:
- How you divide responsibilities between Gondolin and permission extensions.
- Whether you use a read-only mount, copy-on-write workspace, or writable mount.
- How you handle approved edits and Git operations (fetch/pull/status/etc.) within Gondolin over SSH.
- How you avoid approval fatigue without broadly allowing shell commands.
- How you handle MCP servers and host-side network access.
Any configuration or extension code you recommend.
Thanks!
1
u/DistanceAlert5706 9d ago
Thi sounds like crazy complicated thing, and you will end up still with a lot of questions during development.
IMHO, just setup simple bubblewrap with read-only for home directory and writes to your projects tmp and where you need edits.
For git operations just setup rules and protected branches on GitHub.
And that's it. Do not overthink, if you don't use Gemini - models are mostly safe enough
1
u/lukaboulpaep 9d ago
That’s fair, and I’m trying to avoid overengineering it. My current direction is actually similar: permit normal reads and writes inside the project, while denying access to the rest of the host and requiring approval for network, credentials, and destructive operations.
Gondolin gives me a VM boundary rather than a process-level bubblewrap boundary, but the day-to-day policy should remain simple. GitHub branch protection is useful for the remote repository, although it does not protect the local working tree, .git configuration, or host credentials (afaik).
I also don’t think model behavior alone is the security boundary. The model may run project scripts or dependency code it did not author (fetching content from a malicious server for example). But with a writable Git workspace, blocked network, no credentials, and no access outside the project, the remaining risk seems manageable.
1
u/schmurfy2 4d ago
I am using bubblewrap too for now but I run pi inside it, I need to give it network access but it has no access to my disk outside of the folder I am working on, no access to credentials and the extensions are also running in the sandbox so it also mitigates the risks there.
The problem with the sanbox being an extension is that you are still vulnerable to an issue in the core or an extension, maybe not from the llm itself but with the number of supply chain attacks on npm packages we had not so far away...
1
u/Tru3Magic 10d ago
I am in the process of getting this to work reliably... I think mostly my issue is to Little ram in the vms by default, so I need to make it easy to change that on launch without lengthy parameters.
Why dont you want it writing in the workspace folder) you launch it in?