13 PonderCode
I have talked about sandboxing, Bubblewrap, OpenCode Go and pi in previous logs. I finally decided to take the plunge and develop my own coding harness. My normal workflow revolves around spec-based development and a lot of pondering before I get the LLM to make changes. So I have decided to call the harness PonderCode.
The initial feature set:
- Sandboxing is nonnegotiable and must be enabled by default
- Tools: read/write/replace/list/move/search/fetch/exec/vcs
- A profile system where a profile specifies the tools available, the whitelist of hosts for fetch, and the folders and files that must be mapped into the sandbox in ro/rw mode
- KV caching for llama.cpp
- Session continuations: start a session with one model and continue it with another
I store provider and model information, as well as profiles in a TOML file. The harness executes the profile against the current directory.
I got an initial version working today.

Here, you can see the KV prefix caching mechanism working with llama.cpp. pp is 29K t/s with a Q4 quant of Gemma 4 12B running on my 9070 XT!

I also hit some other important milestones today:
fetchcan only connect to domain name and ip:port combinations in the profile whitelist.execis only allowed inside a Bubblewrap sandbox where no network is available.
While there is some overlap between Adamant and PonderCode, they are two completely different projects:
- Adamant is planned as a general wrapper around Bubblewrap.
- PonderCode is a harness that produces LLM-specific sandboxing.