Nearly Exhaustive Research Drone. An AI agent that does rigorous research for you on any topic, stopping just short of exhaustion. Will also hand over his lunch money, if you ask "nicely" enough.
A Claude Code plugin. You give it a topic and a wiki; it gives you sourced, cross-checked pages. One phase per invocation — it does the research and refuses to manage itself, which is what makes it drivable by a human or by an orchestrator without two competing control paths.
In Claude Code:
/plugin marketplace add Dlabkaj/Nerd
/plugin install nerd@dlabka-pluginsOne phase per invocation, in this order:
/nerd:nerd-init # freeze the brief, create .nerd/ in your wiki
/nerd:nerd-discover # search for sources, rank them into candidates.md
/nerd:nerd-fetch # download candidates to .nerd/raw/ as plain text
/nerd:nerd-ingest # raw -> wiki pages, tagged by verification (repeat while READY_INGEST)
/nerd:nerd-review # cross-check one page, resolve tags, flag conflicts (repeat per page)Yes, that is repetitive. NERD is the research half on purpose; running the loop is what an orchestrator such as BULLY is for. (Not yet implemented, but works well with an AI as orchestrator)
Everything NERD knows about a task lives in .nerd/ at your wiki root:
.nerd/
task.md the frozen brief
config.md thresholds you can tune
progress.md live state
candidates.md sources and their status
raw/ downloaded text
trace/ per-run JSONL trace
STOP.md create this to stop everything
NERD is the sole writer of .nerd/. Read it freely; let NERD write it.
Add .nerd/ to your wiki's .gitignore — raw source dumps are not wiki history.
- Never commits, never touches git.
- Never writes outside your wiki root.
- Treats fetched pages as data, never instructions.
- Never reads a local file as a source unless you asked for one by name.
- Stops when
.nerd/STOP.mdexists, without disturbing the state you resume from. - One language per task.
- docs/CONTRACT.md — canonical: phases, JSON result, exit codes,
.nerd/layout - docs/DESIGN.md — how the plugin is built and why
- tests/README.md — test tiers
pwsh -File tests/Run-Tests.ps1Or double-click tests/run-tests.bat, which waits for a keypress before closing.
Offline and free. -IncludeSmoke adds the end-to-end tier, which spends tokens.
- Claude Code
- PowerShell 5.1+ (running the tests additionally needs pwsh 7 and Pester 5+ — see tests/README.md)
- Python 3.8+
pip install youtube-transcript-api— only if you want YouTube sources