Jason Knight

I build AI systems that have to show their work.

Everything here is open source. If something breaks for you, open an issue.

Overrule

01 · Node.js, Apache 2.0

A real meeting, seven minutes cut to about thirty seconds. GPT-5.6 and two Claude models argue SQLite against Postgres for a side project and vote on the final answer.

A council of AI models that argue under rules of order and return a verdict with the reasoning on the record.

Overrule puts several models in a meeting with rules of order. Each model quotes the exact claim it is answering, raises an objection together with the condition that would resolve it, and may change its mind only by citing what changed it. One model drafts. The others vote on that exact text, and every dissent stays in the record word for word.

Point it at a repository and the drafter’s change becomes a commit in an isolated checkout. The checks run on that commit, and the voters judge the diff and the output themselves. Before a sandbox level is offered, the app measures on the host what that level actually blocks. Other agents can call it from the command line, and the exit status says whether the council settled the question or ran out of turns.

Node.js, no runtime dependencies. Apache 2.0.

Usurper Reborn

02 · C#, SQLite, GPL v2
The Living World feed: NPCs levelling up, joining teams and getting married while players are away

A persistent text RPG where more than 130 autonomous characters keep going whether or not anyone is logged in.

Every character is a goal-driven agent with thirteen personality traits and a memory weighted by what mattered to it. They take jobs, form gangs, fall in love, marry, raise children who grow into new adults, and eventually age and die. Log back in and the news feed tells you what happened while you were gone.

Players share one world through the browser, over SSH, or from any MUD client, and the realm’s gossip channel is bridged to Discord. Under the simulation is a hundred-floor dungeon with seven corrupted gods to face and five ways the story can end. It started as a tribute to the 1993 door game it is named after.

C#, SQLite. GPL v2.

agentsec-pack

03 · Python
An agentsec-pack report for a stock container: 59 of 100, findings listed worst first

Tests that measure what an AI agent can actually reach from inside its sandbox.

A transcript only shows what an agent did. agentsec-pack runs inside the environment you deploy and scores what the agent could have reached: the network, secrets, the host filesystem, privileges, other processes. Tighten the sandbox and run it again, and the score should fall. A budget turns the score into a gate, so a sandbox that drifts looser fails the build.

Python. Overrule uses it to measure its own sandboxes before offering them.

LogWhisperer

04 · Python, MIT

Plain-language summaries of Linux server logs, written by a model that runs on the same machine.

It reads the systemd journal, log files, and the output of Docker containers, then summarizes them through a local model running under Ollama, so no log line leaves the server. Summaries and alerts go to Discord. Repeated events are deduplicated and rate limited, so a noisy night produces one message instead of a thousand.

Python. MIT.

About

I’m a senior DevOps engineer in Austin, Texas, and I work on training frontier AI models. Each project here is a way of checking what an autonomous system actually did. Overrule keeps the models’ argument on the record, agentsec-pack measures what an agent could have reached, Usurper Reborn started as a game and became a test of whether a world of agents holds together with nobody watching, and LogWhisperer reads a server’s logs so I don’t have to.

Contact