I build infrastructure for AI agents that use tools, handle customer data, and spend credits. PANTHEON combines tenant isolation, spending controls, and approval gates; these repositories expose individual components for inspection and reuse.
It runs in production at pantheonlabs.info, and the write-up — with a live, attackable assistant — is at pantheonlabs.co.uk.
Each repo is one component extracted from it, with its behaviour and its limits written down:
| Repo | Documented behaviour and limits | |
|---|---|---|
| 🧪 ingress security | pantheon-tool-sanitizer | strips tool-protocol markup + Unicode/Tags-block smuggling from untrusted MCP tool text (covert channels — not semantic injection) |
| 🛡️ egress security | pantheon-ssrf-guard | an SSRF egress guard that survives DNS rebinding — re-checks the peer at connect time |
| 🔒 isolation | pantheon-rls | force-RLS tenant isolation — the database itself refuses cross-tenant access, fail-closed |
| 💰 money path | pantheon-credit-ledger | overdraft-proof, exactly-once credit metering over Postgres |
| 📅 domain sync | pantheon-ical | round-trip iCal (RFC 5545) read and write for booking calendars |
| ⚖️ agent governance | pantheon-guardrails | a constitution scorer that only spends an LLM judge on high-stakes replies, and supports a separate judging model, so the generator is not asked to mark its own work |
All Apache-2.0, tested, pip install-able — and small enough to read before you install (most are a single file; the largest is ~400 lines).
Away from the substrate, three small npm packages for drawing in a terminal — braillecanvas (a 24-bit-colour braille framebuffer, 2×4 dots per cell), skymaths (positional astronomy: Sun, Moon, planets, precession), and starwheel (a live planisphere for your location and clock, built on both — its only dependency) — plus terrafirma, a GNOME Shell extension that puts the real sky over your wallpaper.
Don't trust the claims — verify the live ones, then let's talk.
📍 Cardiff, UK · self-hosted on Linux · ✉️ isaac@pantheonlabs.co.uk