
Wren¶
An agentic research assistant for Claude Code — the reusable scaffolding of a working PhD research system, generalised so you can point it at your field on day one.
It gives you a memory that persists across sessions, a paper workflow with a Markdown↔Word build engine and a gold-standard freeze gate, behaviour rules that keep the assistant rigorous, and a pluggable data + reference layer — with no external service required to start.
Where this came from
Extracted and genericised from a disaster-risk-finance research system. All domain content, identity, hosting choices, and secrets have been stripped; you supply your own via one config file.
How it fits together¶
flowchart LR
S["npm create<br/>wren"] --> P["your project<br/>research-config.yml"]
P --> CC["Claude Code<br/>drives everything from the terminal"]
CC --> M["4-layer memory<br/>rules · session · corpus · per-paper"]
CC --> W["paper workflow<br/>Markdown ⇄ Word · freeze gate"]
CC --> D["pluggable data + references<br/>files → SQLite/DuckDB/Directus · BibTeX/Zotero"]
What you get¶
| Four-layer memory | Behaviour rules · cross-session context · corpus memory · per-paper deep work — each with one home and a boundary rule so nothing lands in the wrong place. See Concepts. |
| Paper workflow | A per-paper template (STATUS/PLAN/METHODS_LOG/NOTES + drafts/figures/reviews) and a build engine that round-trips Markdown ⇄ Word. A 14-phase pipeline with a gold-standard freeze gate (no drafting on un-frozen analysis). See Papers & the build engine. |
| Self-improving loop | /retro captures a learning at session end; a SessionStart hook resurfaces recent learnings; recurring feedback gets promoted into an always-on rule. |
| Pluggable data | Start with files (zero setup). Grow into local SQLite/DuckDB, a free self-hosted Directus (Docker, with its own MCP + admin UI), or any managed host. See Databases. |
| Pluggable references | Universal BibTeX/CSL-JSON adapter works with any manager. Opt into live Zotero via MCP. Mendeley supported via .bib export. See References & integrations. |
| Ambient signals | Long jobs post macOS notifications and log to RUNNING.md; degrade gracefully off macOS. |
Beyond Claude Code itself, nothing in the core needs Zotero, a database, a scheduler, or any other account. Those are opt-in modules you enable in one config file.
Quick start (≈15 minutes)¶
npm create wren@latest my-research
cd my-research
# answer ~11 prompts → writes research-config.yml, renders templates, installs hooks, inits git
Then open the folder in Claude Code and run /paper. See Getting Started for the full first-run walkthrough.
Skills¶
All 18 shipped skills are documented on the Skills page, grouped by what they do: orient & manage, write & submit, discover, and rigor & memory.
Requirements¶
- Claude Code
- Node ≥ 18 and Python ≥ 3.9
- macOS or Linux (scheduled jobs and desktop notifications are macOS-first; Linux uses cron and degrades notifications gracefully)
- Optional: Docker (for the local Directus database tier), a reference manager
License¶
MIT — see LICENSE.