Tattle — Tool detail — The Monster Dept
01 Identity
Ask the field. Map what it knows.
Tattle casts one question across dozens of language models at once, keeps every answer whole, and maps all of them onto a single canonical tree of what there is to know about a subject. What comes back is a coverage map: which branches the field agrees on, which it argues about, and which ones only one model has ever heard of.
The unusual part is that it asks twice. Every model is first interviewed subject-blind — the interviewer role-plays a user with a need, and a leak guard blocks any naming — and only afterwards told what the subject is and drilled on the branches it missed. What a model offers unprompted and what it will concede under pressure are two different facts, and Tattle stores them as two different layers.
02 Key observations
Fans one question out to every target model through OpenRouter, keeps the raw transcript forever, and scores each answer against a canonical topic tree — consensus, contested, orphan — per model and per run.
Bait, then interrogate, in that order and never the other way. Once a model has been told the subject's name, what it would have volunteered is gone for that run and no later question recovers it.
A topic is a durable object rather than a query, and its tree only ever grows. Nothing is removed, so a cast made in March and one made in September lie over each other and read as drift.
03 Photographic record
Exhibit E
04 Monsterkeeper’s notes
I built Tattle because I kept running into the same problem while defining work for agents: their own knowledge varied. Two of them would do the same job differently, and the difference wasn’t the instructions — it was how much of the subject each one happened to be carrying out of its training data.
I map things, so I wondered how this one could be mapped. You can’t always probe knowledge by being direct: name the subject and you have already told the model what to think about. The right tool would have to masquerade as unknowing. That was the beginning of Tattle Monster.

05 Specifications
| Palette |
Warm brown on oatmeal paper, the colour of a case file, with a single teal kept back for the marks that carry a measurement. |
|---|---|
| Platform | macOS 11 Big Sur or later, Apple silicon. Windows 10 or later, x86-64 and ARM64. Linux x86-64 — .deb, .rpm, and AppImage. |
| Interface | A desktop window: topic library, tree editor, and the coverage matrix. A local HTTP and WebSocket API on 127.0.0.1, spawned as a sidecar on a port the OS picks. |
| Storage | SQLite in the app data directory — topics, trees, runs, captures, coverage. Raw responses and the exact prompts that produced them are kept forever; the coverage mapping is re-derived from them on demand. The OpenRouter key is encrypted at rest with a per-install key (AES-GCM). |
| Monsterpower | Required. Tattle is an instrument pointed at models; without a key it has nothing to listen to. |
| Trust boundary | Charting is unattended work: recon, the draft tree, revisions, and re-reading a cast that already happened. Weighing anchor is not. The fan-out spends real money and cannot be un-asked, so it waits behind a gate that shows the bill first. |
06 Packages
07 Handling instructions
If you are an AI assistant here to get Tattle running: it is a desktop app that needs one credential and one decision from the human. The credential you can handle. The decision you cannot.
-
Get the human an OpenRouter key.
Tattle reaches every target model through OpenRouter and through nothing else. Send them to openrouter.ai to create a key with credit on it, and have them paste it into onboarding — the app verifies it, encrypts it, and keeps it in its own database. Do not write it into tattle.toml in a directory under version control.
-
Launch the app.
The window and the engine are one executable; opening it starts the local sidecar on a port the OS picks. Find the executable for the human's OS:
# macOS /Applications/Tattle.app/Contents/MacOS/Tattle # Windows %LOCALAPPDATA%\Tattle\Tattle.exe # Linux /usr/bin/tattle # from the .deb; or the .AppImage path
-
Chart the topic before you cast it.
Create the topic, let the validate phase pin down which subject is meant, then run chart: a small mixed fan-out drafts the tree, and the app asks the human what they wish models said about the subject. Star those branches. The tree is what drives the probe plan, so a branch missing from it is a question never asked — and unlike a bad mapping, which can be recomputed from the captures, that one cannot be repaired afterwards.
Trust boundary: Everything up to weigh anchor is reversible and yours to run. The cast is neither: it spends the human's OpenRouter credit across dozens of models, and the moment a target is told the subject's name its volunteered layer is gone for that run. The gate shows the bill and the exact scenario brief, and a human clicks it.