Tools for working with AI agents and reading arguments, plus research and reference works: a Byzantine atlas, a medical evidence map and two evidence checks.
Small tools that put AI reasoning on display.
A flight recorder for AI coding agents. It captures what Claude Code actually did, prompts, tool calls, file edits, failures and subagent handoffs, and lets you replay a session, trace a file change back to the agent that made it, and see how a failure was recovered. Nothing leaves the Mac.
Take the guided tourScreens from the running Mac app, with synthetic sessions
AI coding agents now run for long stretches, start subagents and edit dozens of files. When something breaks, the only record is a scrolling transcript. There is no way to see the session as a whole, ask which agent changed a file, or tell what was observed from what someone guessed afterward.
A native macOS app in SwiftUI over SQLite with full-text search. I wrote the specification package and asked for it to be as sleek as a flight instrument; Claude Code built the app, the hook relay and the synthetic sessions, and ran the builds on my Mac through Remote Control.
A Mac app for running AI agents on models that live on your own computer. You point an agent at a project folder, choose how much it may touch, and approve each change. It also covers chat, chat with your documents and visual agent workflows, all inside a retro terminal look built from text characters.
Download for MacSigned, notarized and self-updating. Needs Ollama, which the first-run setup installs.
A built-in agent lists, reads, searches, writes and edits files and runs commands, using a model running locally through Ollama. Access is chosen per session: read only, ask before each change, or auto-approve edits. Every change is checkpointed and can be undone.
The same launcher also drives Claude Code and Codex, either on the user's own cloud account or pointed at a local model. Skills and MCP tools plug in, and a timed-out run can be continued, with the agent told which files the last attempt already changed.
Grades each installed model on whether it can drive an agent: does it make real tool calls, how fast does it write, and how long does it take to wake. The agent picker defaults to the best-graded model.
A drag-and-drop canvas for wiring agents, prompts, routers, human approval gates and shell steps into a workflow, with zoom, fit, a minimap and ten starter templates. One template has an agent edit AgentForge itself, rebuild it and relaunch it.
Chat with your own documents. PDFs, Word files and code are split up and indexed with a local embedding model, and answers cite the passage they came from. Agents can search the library too.
Idea Forge, a slot machine that rolls a project idea; ASCII Studio with effects and 24 animated creatures; Sprite Lab, where a model can draw a sprite from a prompt; a music visualizer; and an Agent Theater where running agents appear as characters.
Local models fail as agents in quiet ways. Some write a tool call as text instead of making it, some announce the next step and then stop, and some repeat the same action forever. The harness recovers tool calls written as text, nudges a model that promised an action it did not take, redirects and then stops repeat loops, and frees memory and reloads the model onto the graphics chip before a long run. Model Lab measures which models need this help, so the default is one that does not.
Built with Claude Code as a native SwiftUI app with no third-party code apart from the Sparkle updater. Every animation is plain text redrawn by a capped clock, and everything pauses when the window is in the background. Releases are signed with my Apple Developer ID, notarized by Apple and served from a Cloudflare Worker that also hosts the update feed. A feedback button attaches diagnostics and recent crash reports, with personal paths removed.
Persuasive writing hides its structure. This tool maps a text into its thesis, claims, evidence, unstated assumptions and objections, then flags the weak links so you can see what is actually supported.
Claude Code wrote the page, the sample texts and each analysis. The look is deliberately separate from this portfolio: a dark radiology light box, where the examples are plates and the fixes are recommendations.
Ask one AI for advice and you tend to get one balanced, agreeable answer that hides the real disagreement. This tool seats five advisers with fixed temperaments and lets them argue your decision, then vote.
Claude Code built the page and wrote the four example debates. It has its own look, an after-hours boardroom with a brass-nameplate table and a chair's resolution sealed in wax, so it reads as a separate product.
Reference works and original research, including medical research.
An illustrated encyclopedia of the Eastern Roman Empire, 324 to 1453, built around a mosaic atlas you can drag through 1,129 years and watch the borders move.
Territory is one fixed grid of tesserae, each slightly varied in shade, with grout between them. The empire is imperial purple edged in gold; the sea is blue tile. A Borders mode switches to clean outlines, and light and dark themes each have their own palette.
When borders change, only the tiles that changed owner turn over, in a wave that starts from the conqueror's side, so territory is taken rather than repainted. Cities that change hands send out a ripple.
Drag, click or use the keyboard; play at 1 to 50 years a second; or press Next change to jump to the next year the map moves. Ownership is cached per snapshot and neighbours precomputed, so fast scrubbing stays smooth.
Overlapping claims of more than about 500 km² become hatched contested land instead of being handed to one side. Five places where the source disagrees with history, from Manzikert to 1453, are corrected and explained on the map.
An automated check confirms zero invalid geometries and zero overlaps across all 200 snapshots, and ten key years match the source to within 1% of land area. Five other map sources were evaluated and rejected, each with a written reason.
Compare two years side by side with a draggable divider, switch to a table of powers, toggle cities, battles and campaign routes, and share any view by its URL. Patterns stand in for colour, and reduced motion swaps flips for fades.
React, TypeScript and d3-geo, with Python pipelines for the map geometry: borders from the Seshat Cliopatria dataset, coastlines from Natural Earth, and 96 cities and 71 battles from Wikidata. It ships with 20 slider tests, 60 screenshot checks across phone and desktop, and Lighthouse mobile scores of 93 to 96.
One long Claude Code session took it from an empty folder to a verified site. Claude evaluated map sources and their licences, built three data pipelines and the renderer, and wrote its own reports on what failed, what was skipped and where the sources disagree, for me to review.
Thousands of small studies have measured something in people with ME/CFS or Long COVID, and few results have been checked against each other. This project read the whole PubMed literature, pulled out every measured finding with its quote, and graded which ones independent labs have actually replicated.
Research write-up
ME/CFS has been studied for decades and Long COVID has added thousands of papers in a few years, but most studies are small and many contradict each other. Nobody had pulled the whole literature into one table that says which findings hold up across independent labs and which do not.
The replicated findings suggested an immune, vascular and autonomic chain. Before opening any genetic data, the predictions were written down and locked with a file hash, then tested against the open DecodeME genome study with MAGMA gene-set and tissue analysis. The signal sat in the brain: 11 of 13 brain tissues and the pituitary were enriched, which agrees with what the DecodeME team reported themselves.
Built with Claude, under my direction, across several long Claude sessions. Claude wrote the search and grading code, ran the extraction in batches of 100 abstracts, audited its own output and ran the genetics pipeline. I directed the work and made the calls along the way, including writing the genetics predictions down before the test.
Discharge papers are written in abbreviations and handed to people who are tired, unwell or 80 years old. Paste them in and get a plain-language care sheet plus a calendar reminder for every dose, task and appointment, with anything unclear marked instead of guessed.
Try the demoThe example and calendar buttons work on this site; reading new instructions runs inside Claude
Built with Claude as a single page that calls Claude to read the instructions. Claude wrote the page, the prompt, the calendar files and the example, and checked prior work in the field, under my direction.
Military trauma guidelines tell medics and surgeons what to do, and each recommendation cites a paper. This audit checked whether the cited papers say what the guidelines claim, and found reference lists whose numbers had slipped out of line.
Research write-up
Built with Claude under my direction. Claude downloaded the guidelines, extracted every cited statement, matched each reference to PubMed, graded support and ran the reference-shift test; ChatGPT did the second-model check. The result is a list of specific, correctable errors in these guidelines.