Document intelligence for journalists — drop records in, find connections.
Watchdog is a command-line tool for journalists who accumulate large sets of public records — court filings, corporate records, freedom-of-information responses, land registries and so on. You drop documents into a folder, Watchdog reads every page, pulls out every person, company, address and relationship it finds, and builds them into a linked investigation vault you can search and question in plain English. Every extracted fact cites the document and page it came from.
The vault lives in Obsidian, a free note-taking app, as ordinary files on your computer. The information-extraction work is carried by an LLM (be that Claude, ChatGPT, Gemini, DeepSeek, etc.). The questions run in Claude Code, Anthropic's AI assistant for the terminal.
Watchdog is careful with your files. The originals never leave your computer, and all document conversion runs locally. But the extracted text of each document is sent to a cloud AI model for analysis, and there is no way to take that back. So Watchdog is only for documents that are public, or presumptively public.
Never use it with confidential source communications, leaked or unpublished material, private correspondence, or anything that could identify a source. If you are unsure whether a document is safe to process, do not process it.
- Reads almost anything. PDFs (scanned or not), Word documents, spreadsheets, images, web pages, audio and video. Scanned documents are OCR'd automatically; a 500-page PDF is no problem.
- Extracts entities, not just text. People, companies, addresses, relationships and dates become linked notes, with a page-level citation on every fact.
- Builds a timeline. Date-bound events from every document are assembled into one chronological view of the investigation.
- Surfaces what you might miss. Shared addresses, overlapping directors, an entity that keeps turning up, a new document that contradicts an old one. Contradictions are flagged — they are often stories in themselves.
- Applies specialist knowledge. Built-in guides for dozens of document types teach it what an experienced investigative journalist looks for in corporate filings, court records, land registries and more.
- Leaves you in charge. The vault is plain files you own and annotate. Facts the AI inferred rather than read are marked as such, and everything links back to the source page for verification.
A few steps, all run from your terminal:
drop files into _INCOMING/
↓
watchdog reads, OCRs and converts each document, sends the extracted
text to the AI model to pull out entities, facts and timeline
events, then writes everything to the vault and produces a
briefing — one command, confirming before each step
↓
your vault linked notes in Obsidian; ask questions in Claude Code
After Watchdog has processed the documents you've given it, you read the briefing, explore the vault in Obsidian, and ask questions inside Claude Code — /watchdog-query Who are the directors of Shell Co Ltd? — with every answer cited back to a page.
For a closer look at what happens to a single document — the OCR pipeline, the information extraction process, the final summarization step — see this illustrated walkthrough.
- macOS, Linux or Windows
- Obsidian — free
- Claude Code — free to install, and required for asking questions of your vault
- Claude access — a Claude.ai Pro or Max subscription, or an Anthropic API key, since Claude Code needs one either way. The ingest pipeline can be pointed at a different provider instead — OpenAI, Gemini, DeepSeek, or a local model — see Configuration; asking questions of the vault always runs on Claude
- Python 3.10+, plus a few free system tools the install guide covers
A Claude Pro subscription (US$20/month) is enough for most journalism work.
Watchdog benchmarks its own model and effort defaults against real court and financial filings rather than picking one on reputation alone — see Benchmarks for the full results. The current top recommendation for extraction is OpenAI's GPT-5.6 Luna, at roughly $1 per 1,000 pages; Claude stays the zero-setup default. See the install guide for how to set it up.
pipx install watchdog-intel
watchdog setupPrefer uv? Use uv tool install watchdog-intel instead of the first line.
Never used a terminal? The install guide walks through every step, starting from how to open one.
watchdog new "Shell Company Investigation"
cd ~/Investigations/shell-company-investigation
# drop documents into _INCOMING/, then:
watchdog
watchdog obsidianFor a full first-investigation walkthrough, see Getting started.
| Guide | What it covers |
|---|---|
| Install | Getting Watchdog set up, written for first-time terminal users |
| Methodology | What actually happens to your documents, and why, in plain English |
| Getting started | Your first investigation, start to finish |
| Investigating | Day-to-day work: questions, search, leads, web research |
| Commands | The complete command reference |
| Configuration | Every setting, model choices, controlling cost |
| Benchmarks | How model/effort defaults are measured, and what to expect in time and cost |
| The vault | What Watchdog builds on disk and how to read it |
| Domain skills | The built-in document-type expertise |
| Troubleshooting | When something goes wrong |
Watchdog uses AI to read documents, and AI makes mistakes — it can misread a name or draw a wrong inference. Every fact it records links to the source document and page, and facts it inferred rather than read are marked (inferred) — leads to verify, not findings. Treat the vault as a structured first read, not a finished product, and follow the link before you publish anything.
Three areas where help is most welcome:
- Domain skills — if you know a document type deeply, the extraction guides are plain markdown, no code required. Start from the template.
- Pipeline fixes — bug reports with a sample document (redacted if needed) are especially useful.
- Documentation — corrections, clarifications and translations, particularly to the install guide.
To run from source:
git clone https://github.com/tomcardoso/watchdog
cd watchdog
pipx install --editable . --force
watchdog setupPlease open an issue before starting significant work.
The vault structure and session-context approach were partly inspired by claude-obsidian by Daniel Agrici. Search is built on fastembed by Qdrant; the passage-window approach, +/- queries and show-the-source principle are borrowed from Semantra by Dylan Freedman. Embedding the raw corpus separately from the knowledge graph was partly informed by obsidian-smart-connections by Brian Petro, and the structured vault index for entity lookup by obsidian-claude-code. The ASCII dogs shown by watchdog new and watchdog about were drawn by Felix Lee and Sarah Kearsley.
MIT — see LICENSE.