Claude Scientific Writer: A Research-First Writing Tool for Papers and Grant Proposals
Project brief: A general purpose scientific writer. Use the Python API Use as a Claude Code Plugin (Recommended) Scientific Writer works best as a Claude Code (Cursor) plugin**, providing reliable access to all scientific writing capabilities directly in your IDE.
At a glance
- What is it?
- K-Dense's MIT-licensed Python package and Claude Code plugin drafts scientific documents only after a literature lookup, then compiles them through LaTeX. It is opinionated, dependency-heavy, and worth understanding before you install it.
- Who is it for?
- Adopt it if you already write in LaTeX, hold an Anthropic API key, and want citations resolved before prose is generated; the plugin route is the path the README recommends. Skip it if you need an offline tool, if you cannot install a TeX distribution, or if your output target is a Word-first workflow with tracked changes, since the README does not document that.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The Problem: Citations That Arrive After the Prose
Most AI writing tools generate text first and let you bolt references on afterward. Scientific Writer inverts that order. According to the README, it "performs comprehensive research before writing, ensuring every claim is supported by real, verifiable sources." That sequencing is the entire product thesis. It targets researchers who need a first draft of a paper, a literature review, a poster, or a grant proposal, and who care more about whether the citations resolve than about how quickly the draft appears. The README frames the audience as people writing "publication-ready scientific papers, reports, posters, grant proposals, literature reviews." The word publication-ready is doing a lot of work there, and whether it holds depends on your journal's formatting rules, not on the tool. If you write in Word and never touch a .bib file, the output format alone will make this the wrong choice.
How the Research-Before-Drafting Pipeline Actually Runs
The repository layout separates the machinery into distinct directories: scientific_writer/ holds the Python package, skills/ holds the writing capabilities, templates/ holds document skeletons, commands/ holds the Claude Code slash commands, and extensions/ holds add-ons. The pyproject.toml lists the runtime dependencies and they are telling. claude-agent-sdk is pinned to >=0.2.126,<0.3, with a comment explaining the cap: the code imports the 0.2.x hook and types surface (StopHookInput, HookContext), and the SDK API is still evolving before 1.0. That pin is a real constraint. You cannot casually upgrade the agent SDK without checking whether the hook interface moved.
The research step routes through Parallel, either via parallel-cli login or a PARALLEL_API_KEY in .env. Image generation routes through OpenRouter and is optional. PDF output routes through a LaTeX distribution, with pdflatex, bibtex, and preferably latexmk. So a single document request touches four external systems: Anthropic for the model, Parallel for literature, optionally OpenRouter for figures, and your local TeX install for the final compile. Any one of them failing changes what you get. The README does not document a fallback when the research lookup is unavailable, which means an offline machine is not a supported configuration.
Installing Scientific Writer and Running a First Paper
The README presents three install paths and recommends the plugin. Start with the PyPI route if you want the CLI or the Python API, since it is the shortest. The base install pulls the core package; the analysis and office extras are separate so you do not pay for cohort statistics or DOCX handling unless you need them.
pip install scientific-writer
pip install "scientific-writer[analysis]" # cohort statistics and survival analysis
pip install "scientific-writer[office]" # DOCX/PPTX/XLSX and MarkItDown helpersNext, create the .env file. The repository ships a .env.example listing every key. ANTHROPIC_API_KEY is required; PARALLEL_API_KEY is optional only if you authenticate the CLI instead; OPENROUTER_API_KEY is optional and gates image generation. NCBI_API_KEY and NCBI_EMAIL are commented out and only raise your PubMed lookup rate.
echo "ANTHROPIC_API_KEY=your_key" > .env
echo "PARALLEL_API_KEY=your_parallel_key" >> .env
echo "OPENROUTER_API_KEY=your_openrouter_key" >> .envThen install and authenticate the research CLI, which the README pins to a specific version.
uv tool install "parallel-web-tools[cli]==0.7.1"
parallel-cli login
parallel-cli authFinally, launch the CLI. The --effort flag controls how much work the agent does, and --help exposes permission, budget, token-usage and input-consumption controls. Note the default: the README states input files are preserved unless you pass --consume-inputs, which removes them after a successful copy.
scientific-writer --effort highIf you prefer the plugin route, the README gives four steps: add the marketplace, install the plugin, restart Claude Code, then run /claude-scientific-writer:scientific-writer-init in your project. That init command writes a CLAUDE.md file with writing instructions and makes the skills available. The README says 26 skills are selected. After that you prompt in natural language, attaching data files and figures by name.
The LaTeX and API-Key Dependencies Are Not Optional
Two constraints will decide whether this tool fits. The first is LaTeX. The README lists a LaTeX distribution as a prerequisite for PDF generation, naming pdflatex, bibtex, and preferably latexmk. There is no documented path to a PDF without it. If your institution manages software centrally and you cannot install TeX, the tool's headline output is unavailable to you. LibreOffice and FFmpeg are listed as optional, for Office rendering and media conversion respectively, so those are softer requirements.
The second is the API key surface. ANTHROPIC_API_KEY is the only strictly required key, but the research lookup that distinguishes this tool from a plain writing assistant depends on Parallel, either through the CLI login or the key. The README does not describe what happens to citation quality when that lookup is skipped. The honest reading is that without Parallel you get the writing machinery without the verification promise, which removes the main reason to choose this over prompting a model directly.
There is also a version pin to respect. The claude-agent-sdk cap below 0.3 is explicit in pyproject.toml, and the accompanying comment says the SDK API is still evolving pre-1.0. Treat dependency upgrades as a task that needs a test document, not a routine bump.
Where a General-Purpose Agent Beats This Tool
The obvious alternative is a general coding or research agent with a file system and a shell, pointed at the same data. The difference is not model quality, it is the scaffolding. A general agent gives you a blank context and expects you to supply the instructions for literature search, citation formatting, figure placement, and LaTeX structure on every run. Scientific Writer ships those as fixed artifacts: the skills/ directory, the templates/ directory, and the CLAUDE.md that scientific-writer-init writes. You trade flexibility for repeatability.
That trade cuts both ways. If your document type is not in the skill set, or your journal requires a template the repository does not carry, the scaffolding becomes something to work around rather than with. A general agent would simply be told what to do. The README does not document how to add or override a skill, which is the gap that matters most for anyone whose output format is unusual. For a standard Nature-style paper or an NSF proposal, the defaults are likely closer to what you want than a blank prompt.
Maintenance, Licence and Upgrade Cost
The repository is not archived and the last push was on 2026-08-13, which carried release v2.21.0. The two releases before it, v2.20.0 and v2.19.0, landed on 2026-08-13 and 2026-07-29 respectively, so the release cadence has been steady rather than dormant. The package carries the classifier "Development Status :: 4 - Beta", which is worth reading literally: the maintainers describe it as beta, so pin your version in CI rather than tracking the latest tag.
The licence is MIT, stated in both the README badge and the pyproject.toml license field. MIT permits commercial and academic use, modification and redistribution with the copyright notice retained. What MIT does not settle is the terms of the services the tool calls: your Anthropic usage, your Parallel plan, and any OpenRouter spend are governed by those vendors' agreements, not by this repository. If you are generating grant proposals that pass through an institutional review, check your institution's policy on sending unpublished data to third-party APIs before you run anything. That is a policy question, not a licence question, and the repository does not answer it.
On upgrade cost, the pinned agent SDK is the item to watch. The comment in pyproject.toml says the API is still evolving before 1.0, so a future release that moves past 0.3 will require the maintainers to adapt the hook code. Budget for re-running a known document after any version jump.
Editorial conclusion
Adopt it if you already write in LaTeX, hold an Anthropic API key, and want citations resolved before prose is generated; the plugin route is the path the README recommends. Skip it if you need an offline tool, if you cannot install a TeX distribution, or if your output target is a Word-first workflow with tracked changes, since the README does not document that. Before committing, verify three things: that parallel-cli login or PARALLEL_API_KEY is working, that pdflatex and bibtex resolve on your PATH, and that the generated .tex and .bib files match your target journal's style requirements.
Frequently asked questions
Is Claude good for academic writing?
The README positions Scientific Writer as a tool that produces publication-ready scientific papers, reports, posters and grant proposals using Claude models, with the claim that every claim is supported by real, verifiable sources. That claim depends on the Parallel research lookup being configured, so the model alone is not the whole answer.
Is Claude useful for scientific research?
This project uses Claude through the claude-agent-sdk to run a research-then-write pipeline, with literature lookup handled by Parallel Search and Extract and citations verified against that lookup. The README frames it as a deep research and writing tool rather than a general research assistant.
What does a scientific writer do?
In this project's terms, it performs comprehensive research before writing and then generates formatted documents such as papers, literature reviews, grant proposals and posters, backed by citations. The work is split across the skills/ and templates/ directories in the repository.
Which Claude model is best for scientific writing?
The README and pyproject.toml do not name a specific Claude model or recommend one for scientific writing. The package pins claude-agent-sdk to >=0.2.126,<0.3, which constrains the SDK surface rather than the model choice.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/k-dense-ai-claude-scientific-writer)