A writing assistant for humanities researchers. It helps you write a scholarly article in your own voice, using only the sources you choose, and hands you a Word file.
Version 0.20.7Academic Writer is a plugin (an add-on) for Claude Code, Anthropic's AI assistant that runs in a text window on your computer. You talk with Claude in plain language, and the plugin guides the conversation from a vague topic to a finished, footnoted article.
It can study your past articles and learn how you write: sentence length, the phrases you favour, how you open and close an argument.
Every footnote is checked against the sources you picked. A separate checker rejects any paragraph whose citation it cannot confirm.
You choose the topic, the sources, the thesis and the outline. Nothing is drafted until you approve the plan.
You get a .docx file. Comment on it in Word, and the plugin folds your comments back into the text.
It works in Hebrew and in English, including right-to-left layout and Hebrew footnotes. For example, a Hebrew paragraph in the finished file looks like this:
הטענה המרכזית של המאמר היא שהפולמוס לא נסב על שאלת הסמכות בלבד, אלא על הגדרת הקהילה עצמה.1
You need three things. Setup (step 4) checks each of them for you and explains anything that is missing.
| What | Why | Cost |
|---|---|---|
| Claude Code | The program the plugin runs inside. It comes with a Claude subscription that includes Claude Code. Download it from claude.com/claude-code. | Your Claude plan |
| A Gemini API key | An API key is a long password that lets the plugin use Google's Gemini AI, which does the drafting, proofreading and text recognition (these commands need the key). You get one from your own Google account in about two minutes; setup shows you how. | Free tier available |
| Microsoft Word | To read the finished article and to mark it up with comments and tracked changes. LibreOffice also opens the file, but Word handles comments and tracked changes best. | Your existing copy |
Helpful, but optional:
Installing happens once; allow about 15 minutes if you have never used Claude Code. Each step says what you should see.
irm https://claude.ai/install.ps1 | iex instead.
curl -fsSL https://claude.ai/install.sh | bashAcademic inside Documents). In Terminal type cd (with a space), drag the folder into the window, press Enter, type claude and press Enter.If Terminal says command not found: claude, close it, open a new Terminal window and repeat step 4.
In the prompt box, type these two lines one at a time, pressing Enter after each. Each prints a short confirmation. If the first one says it cannot find the marketplace, check the line is typed exactly and try again; if it still fails, copy the message to Claude:
/plugin marketplace add yodem/academic-writer/plugin install academic-writer@yodemThe first line tells Claude Code where to find the plugin (a marketplace is simply a list of plugins). The second installs it.
Type /exit and press Enter, then type claude again in the same folder, so the new commands appear. To check, type /plugin, open the Installed tab with the arrow keys and look for academic-writer.
If you prefer the regular terminal window instead of Claude Code's prompt box, the same two steps are:
claude plugin marketplace add yodem/academic-writer
claude plugin install academic-writer@yodemA terminal is a window where you type commands instead of clicking.
Terminal, press Enter.Terminal (or PowerShell), press Enter.Then go to the folder where you keep your research. Type cd (with a space), drag the folder from Finder or File Explorer into the window, and press Enter. Now type claude and press Enter. Everything the plugin creates for this project stays inside that folder.
In Claude Code, inside your research folder, type:
/academic-writer:setupSetup is a short conversation, one question at a time, about 10 minutes. It:
After you store the Gemini key, setup asks you to restart once: quit Claude Code completely (type /exit), open it again in the same folder, type /academic-writer:setup and choose Check my Gemini key. Your answers are saved, so nothing is asked twice.
AIza.After setup, if you want the plugin to learn your personal style, copy 5 to 10 of your published articles (PDF or Word) into the past-articles folder inside your research folder (setup created it), then run:
/academic-writer:initinit reads your articles, shows you what it learned about your style so you can correct it, and helps you connect your source library. It is safe to run setup or init again later; they update your profile and never erase it.
Setup and init also ask whether to add PageIndex, an optional second library for your books. The safe answer is "Not now": your books are then read from Trove, exactly as before. Section 11 explains the choice.
At the end, setup shows a short list of the commands that are ready for you, based on whether you are a student, a researcher or a teacher. Only commands whose tools are in place are listed. To see the list again, run /academic-writer:setup; for the full tour, run /academic-writer:intro.
Setup also asks you to choose one visible home folder. It keeps your details, your courses and the list of your project folders in one place you can open yourself.
Type /academic-writer:write. The first part is a conversation; the second part the plugin does on its own while you wait.
.docx with real Word footnotes and a bibliography. Claude tells you where it saved it./academic-writer:revise. It reads your comments, groups them, asks you to confirm each group, updates the text and makes a new Word file. Repeat 9 and 10 as often as you like.Before you submit: run /academic-writer:proofread for a final typo and language pass (you get a marked-up copy and a short report), and /academic-writer:review for a scorecard of the article's structure, argument and citations.
Type any of these in Claude Code. This list is generated from the plugin itself, so it always matches the version you have installed.
| Command | What it does |
|---|---|
/academic-writer:intro | Open the full guide in your web browser: what the plugin does, setup, your first article, privacy and troubleshooting. |
/academic-writer:setup | Friendly first-run setup for researchers with no technical background: checks each tool Academic Writer needs, explains it in one sentence, asks before installing anything, walks you through getting and safely storing a free Gemini key, and ends with a sample paragraph. |
/academic-writer:init | Full onboarding for Academic Writer: builds your researcher profile, learns your writing style from past articles, connects your research library, and offers Gemini. |
/academic-writer:write | Write a new academic article with the author, step by step: topic, sources, verified evidence, the author's thesis, an approved outline, drafting, a citation audit and a Word file. |
/academic-writer:revise | Read the Word comments and tracked changes the author left on a generated draft, group them, confirm each group, then update the article and the voice and feedback stores. |
/academic-writer:edit | Revise an article you already drafted: several passages at once, tone, structure, argument order or evidence. |
/academic-writer:edit-section | Quick revision of one section of an existing article: rewrite, expand, shorten, fix its citations or adjust its style. |
/academic-writer:proofread | Proofread a finished article (Markdown or Word) for typos, wrong words, grammar and editorial issues, producing a corrected copy, a report and an editorial memo without touching the original. |
/academic-writer:review | Score a completed article on six dimensions (structure, argument logic, citation completeness, source coverage, writing quality, academic conventions) and show a scorecard with concrete findings. |
/academic-writer:research | Investigate a topic or check a claim against the author's indexed sources, returning only passages whose quotations were verified word for word. |
/academic-writer:ideate | Guided brainstorming that turns a vague topic into a sharp research question, using who/what/when/where/why/how, a gap check against the author's sources and a choice of approach; saves a research brief that /academic-writer:write reads. |
/academic-writer:ocr | Turn a scan or photo into plain text: free readers when they agree, then Claude, then Gemini for the pages Claude cannot read. |
/academic-writer:ingest | Upload one article or chapter to the source library with printed page numbers, hinted contents and a citation guide. |
/academic-writer:ingest-book | Upload a whole book (multi-volume, scanned or EPUB) to the source library with a navigable hinted table of contents and a citation guide. |
/academic-writer:library-eval | Compare Trove and PageIndex on your own article: anonymised pairs you judge yourself, then the unblinded results. |
/academic-writer:voice | Build or update the author's voice profile: import older voice files, choose exemplar paragraphs from past papers, derive writing rules and sync them to Trove. |
/academic-writer:health | Check that Academic Writer is ready to use — your profile, the tools it needs (Python and its add-ons, Hebrew spelling, Trove, NotebookLM), the Gemini key and past articles — with a plain-language fix for anything missing. |
/academic-writer:help | A short list of every command and the three steps to get started. |
/academic-writer:courses | Use when setting up an academic term from a schedule, validating course resources, syncing your LMS (Moodle) materials, or running the daily course scan. |
/academic-writer:dashboard | Open the local course dashboard: one page that shows, for every course in the term, what is due next, whether its readings are ready, and what is new, with a week agenda and a page per course. |
/academic-writer:kotar-fetch | Download the cited pages of a book on Kotar (CET, through the Bar-Ilan OpenAthens proxy) as one PDF in printed-page order, for the author's own study. |
/academic-writer:lesson-notes | Use when processing a course recording into a structured Hebrew lesson note, or when resuming queued NotebookLM lesson transcripts with --pending. |
/academic-writer:watch | Show what Academic Writer is doing right now: the current step of the article run, how far it has got, and anything the checker rejected. |
You can also just describe what you want in your own words ("proofread my article", "how does this plugin work?"); Claude picks the right command for most requests. Setup, init and voice only run when you type them, because they change your settings.
There are two places. Neither is uploaded anywhere by the plugin except as described under Privacy.
| Folder or file | What it holds |
|---|---|
past-articles/ | Your published articles, for learning your style. |
.academic-helper/ | The project's working files: your profile (profile.md), the list of sources and their citation details, the outline, the drafts of each paragraph, and a log of each run. |
ocr-output/ | Text extracted from scanned pages by /academic-writer:ocr. |
Your .docx files | The finished articles. Claude tells you the file name each time. |
.academic-helper/library-eval/ | Only if you run a library comparison (section 11): its plan, the anonymous answers, your judgments, a sealed key that says which side was which, and the final report. |
Folders whose names start with a dot, like .academic-helper, are hidden by default. To see them: on a Mac, press Cmd+Shift+. in Finder; on Windows, open File Explorer, choose View, then Show, then Hidden items.
Your voice data (the passages you chose as examples of your style, the writing habits the plugin learned, your preferred terms, and the before-and-after pairs from your own corrections) lives in one place so every project benefits. It is inside your home folder under .claude/plugins/data/, in a folder whose name starts with academic-writer. The same folder keeps a small log of plugin mistakes you flagged during /academic-writer:revise, so they can be fixed. If you chose to install the plugin's own PageIndex helper (section 11), it lives here too, in a folder called pageindex, together with the books you prepared for it.
This folder survives plugin updates. It is removed if you uninstall the plugin, unless you ask to keep it (see section 10).
First, always: type /academic-writer:health. It checks your profile, key, tools and sources and tells you, in plain words, what to fix.
/academic-writer: commands do not appearClose Claude Code completely and open it again; new plugins load at start-up. If they still do not appear, type /plugin and check that academic-writer is listed and enabled. If it is missing, repeat the two install lines in section 3.
Run /academic-writer:setup again and choose to set up Gemini. After saving a key, start a new Claude Code session: the key is picked up when a session starts. If Google says the key is invalid, create a fresh one at aistudio.google.com/apikey and copy it again, with no spaces before or after.
The plugin keeps one profile per research folder. Check that you started Claude Code inside your research folder (section 3, "How to open a terminal"). If this is a new folder, run /academic-writer:setup there.
Run /academic-writer:setup; it checks the helper packages and offers to install them for you. If you prefer to do it yourself, paste this into a terminal:
python3 -m pip install python-docx lxml pdfplumber pymupdf jsonschemaIf the computer says python3 was not found, install Python 3 from python.org/downloads (on Windows, tick "Add Python to PATH" during installation), then try again.
Run /academic-writer:health. It says in plain words what is wrong: usually your Python is older than 3.10 (needed only for the larger helper), the pango add-on is missing on a Mac, there is no network connection, or the pageindex_command setting points at something that no longer exists. The basic helper works with Python 3.9. Your books stay safe in Trove whatever happens here, and Trove keeps working.
In Claude Code's window, mixed Hebrew and English can look jumbled; that is only the display. The Word file is laid out right to left. If the Word file itself looks wrong, make sure your article language in the profile is Hebrew (run /academic-writer:setup to check) and tell Claude what you see.
Update both the plugin list and the plugin, then restart Claude Code (section 10). If that does not help, run /academic-writer:health and share its report when asking for help.
Still stuck? Report the problem at github.com/yodem/academic-writer/issues and include the output of /academic-writer:health (it contains no keys).
Type these in a terminal (or with /plugin in Claude Code), then restart Claude Code:
claude plugin marketplace update yodem
claude plugin update academic-writer@yodemUpdating keeps your profile, drafts and voice data.
Important: uninstalling normally deletes the plugin's data folder, which holds your voice data (section 7). To keep it, add --keep-data:
claude plugin uninstall academic-writer@yodem --keep-dataYour research folders, drafts and Word files are never touched by uninstalling.
You can skip this section. Unless you choose otherwise, your books are read from Trove, as before, and nothing here changes how the plugin works for you.
PageIndex is a second library that keeps a short outline of every book, with a few lines on each section, so Claude can go straight to the likely page. For each article you choose where its books are read from, and you can change your mind later with /academic-writer:update-tools.
The default. Your books are read from Trove. Nothing else runs.
Your books are read from PageIndex instead. You need to prepare the books for it first.
One library answers. The other is tested quietly in the background on the same questions and can never change, slow down or break your result.
Setup, init and update-tools offer two ways, explain each in plain words, and ask before doing anything:
pango add-on) can also prepare a book that has no table of contents. The plugin shows you the plan and the size, installs only after you say yes, never installs Python for you, and can remove the helper again.pageindex_command setting (type /plugin, open Installed, choose academic-writer, then Configure). A command you set yourself always wins over the built-in helper. Never put a password in that setting./academic-writer:update-toolsSay you want PageIndex and choose Set it up on this computer. Then run /academic-writer:health to see which helper is in use and that it is ready.
A book must be prepared once before PageIndex can read it. When you add a book with /academic-writer:ingest or /academic-writer:ingest-book, the plugin writes it to Trove first, checks it, and then offers to prepare it for PageIndex too. It uses the same table of contents and the same page numbers, so a citation means the same page in both libraries. For each book it tells you how much text would be sent to Google for the summaries, and you choose: Gemini summaries, the free option that sends nothing, or not now. A problem here never undoes the Trove upload.
You can also add a reading to a book you already have, and prepare the books already in Trove in one go (a "backfill"). Both are safe to repeat: summaries already paid for are reused, and Trove is never changed.
Every lookup and every citation check is noted on your computer, in .academic-helper/retrieval.jsonl: how long it took, an estimate of how much text came back, and the citation checker's verdict. Ask Claude to "show me the library report" for a plain-language comparison on your real articles: speed, failures, how often the two libraries return the same page, how often the citation checker passes, the size of the text returned and the cost of any preparation or comparison runs. The size figures are estimates, not a bill. Nothing in that log is uploaded.
/academic-writer:library-eval answers a sharper question on your own sources: for the claims in this article, which library finds the better pages?
Be careful with small numbers. With only a handful of judged pairs the report says it is a first look, not a verdict, and so should you. The blind judging protects you as the judge; the helpers that find the pages can still tell from the shape of what they read which library they are looking at.
Full details, the report explained line by line and the known limits are in docs/library-routes.md in the project repository.