All projectsSam BaiGet in touch

Execution infrastructure

2026

Rookhold

Run code. Set limits. Keep the evidence.

RookholdInterface preview
Rookhold v0.6 console demo showing the job queue, execution results, and service controls
Console demo · v0.6Full-size image

About the project

I built Rookhold to run short scripts with resource limits, live output, and a verifiable record of the result.

Put a boundary around each job

A short script can still consume too much memory, read files, or keep running indefinitely. I built Rookhold around that problem: give generated code, user-defined transforms, and evaluators a separate execution path, with the server setting limits on time, memory, processes, files, and output.

Keep the job history together

I use one Rust service for scoped authentication, a bounded queue, fair scheduling, execution, and durable results. Python, Node, and Bash jobs share an API for live output and cancellation across the CLI, SDKs, MCP adapter, and dashboard. SQLite keeps the job state and ordered events, so a disconnected client can catch up without losing its place.

Make the result checkable

A completed job records the controls the executor actually observed. Its receipt can be bound to a signed DSSE/in-toto statement using Ed25519. I included an offline verifier to check the exact bytes. Saving the result and signing it are separate steps, with a durable outbox letting a restarted service finish pending attestation work.

Keep execution narrowly scoped

I kept the released system focused on short, stateless jobs on one node. That leaves persistent workspaces, interactive terminals, and multi-node scheduling outside its scope. Guarded execution requires Linux x86_64, gVisor, and the documented host setup. The local development mode has no isolation boundary.

Next project

Portly

Know what is running on localhost.

View project
Portly terminal interface using the documented README example of local ports and processes