<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tooling on t0ul</title><link>https://t0ul.com/tags/tooling/</link><description>Recent content in Tooling on t0ul</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 19 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://t0ul.com/tags/tooling/index.xml" rel="self" type="application/rss+xml"/><item><title>Walk away, read it over coffee</title><link>https://t0ul.com/blog/eva-walk-away-read-it-over-coffee/</link><pubDate>Mon, 19 Oct 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-walk-away-read-it-over-coffee/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. This is the last one, and it is the mode the whole cockpit was pointed at: the overnight blind campaign. Code in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;; write-ups in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;Here is the honest advantage of a tester that runs on my own laptop. It is not that it is smarter than a cloud model, because &lt;a href="https://t0ul.com/blog/gored-not-first-and-the-gpu/"&gt;my GORED series&lt;/a&gt; is clear that it is not. It is that it costs nothing per hour and never gets bored. A frontier model billed by the token is a thing you ration. A small model running locally is a thing you can leave on all night, pointed at a problem, for the price of some electricity.&lt;/p&gt;</description></item><item><title>A factory I wouldn't fake</title><link>https://t0ul.com/blog/eva-a-factory-i-wouldnt-fake/</link><pubDate>Mon, 05 Oct 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-a-factory-i-wouldnt-fake/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. &lt;a href="https://t0ul.com/blog/eva-a-sortie-log-that-survives-a-restart/"&gt;Last time&lt;/a&gt; I gave runs a durable home so they survive a restart. This post is about the one surface I refused to fake, and what it took to make it real. Code in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;; write-ups in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;Every cockpit wants a factory behind it, and EVA&amp;rsquo;s is Studio: the place the skills a run is built from are meant to be authored, tried, and saved. I built it, and then for a while I would not let you save. You could list every skill, read it, pick it, and the edit button was not there, on purpose. That restraint is the first half of this post, because it is the same standard I hold every number in this project to. The second half is the payoff, because the piece that was missing has since landed, and the editor is real now in the one way that matters: a skill you change actually changes the next run.&lt;/p&gt;</description></item><item><title>A sortie log that survives a restart</title><link>https://t0ul.com/blog/eva-a-sortie-log-that-survives-a-restart/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-a-sortie-log-that-survives-a-restart/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. &lt;a href="https://t0ul.com/blog/eva-watching-it-think/"&gt;Last time&lt;/a&gt; I streamed a live run to the browser by tailing its trace. This post is what happens when those runs pile up and I want them to survive a restart. Code in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;; write-ups in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;Once I could watch a run, I started doing a lot of them. Different models, different prompts, the same target, trying to build a feel for what moved the needle. And every one of them left a trace file in a directory, which was fine, but the cockpit&amp;rsquo;s sense of what runs existed lived in memory. So the first time I restarted the server to ship a change, my whole afternoon of sorties vanished from the list. The traces were still on disk, but EVA had forgotten they happened.&lt;/p&gt;</description></item><item><title>Watching it think</title><link>https://t0ul.com/blog/eva-watching-it-think/</link><pubDate>Mon, 07 Sep 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-watching-it-think/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. The &lt;a href="https://t0ul.com/blog/eva-llm-proposes-human-disposes/"&gt;last post&lt;/a&gt; was the seam that lets a piloted run and a headless CI run be one loop. This one turns the dial down and actually watches a run go. Code in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;; write-ups in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="intro"&gt;Intro&lt;/h2&gt;
&lt;p&gt;My first run page was embarrassing. It used a meta refresh, the old trick where the page reloads itself every couple of seconds, and watching a run through it felt like watching a kettle by blinking. You would catch the state at two-second strobes, the page would jump to the top on every reload, and a fast run would be half over before the first refresh landed. It worked, in the sense that the numbers were eventually right, but it was no way to watch a model think.&lt;/p&gt;</description></item><item><title>LLM proposes, human disposes, on a dial</title><link>https://t0ul.com/blog/eva-llm-proposes-human-disposes/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-llm-proposes-human-disposes/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. Last time I made the case that EVA is a thin window over the one engine my command line and CI already run. This post is about the seam that lets a human-piloted run and an autonomous CI run be that one engine. Code lives in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;; write-ups in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>A cockpit for the red-team runs</title><link>https://t0ul.com/blog/eva-a-cockpit-for-the-runs/</link><pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate><guid>https://t0ul.com/blog/eva-a-cockpit-for-the-runs/</guid><description>&lt;p&gt;&lt;em&gt;Part of my EVA series, where I build the cockpit I pilot &lt;a href="https://github.com/t0ul/GORED"&gt;GORED&lt;/a&gt; runs from. GORED is the harness that points small local language models at my own web apps and measures, honestly, whether they can break them; EVA is the web surface I drive it from. The harness and the cockpit both live in &lt;a href="https://github.com/t0ul/GORED"&gt;t0ul/GORED&lt;/a&gt;, and these write-ups live in &lt;a href="https://github.com/t0ul/ai-security-engineering"&gt;t0ul/ai-security-engineering&lt;/a&gt;. Every run EVA shows you is a kept, hash-verified trace.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>