OpenDraft
Turn one topic line into a research draft whose every DOI was confirmed by at least two scholarly databases.
- Source repo
- federicodeponte/opendraft
- Stars
- ★ 497
- Last updated
- 2d ago
- License
- MIT
- Primary language
- Python
- FA score
- 81/100 · Good
At a glance
- How it runs
- Works with
- Universal · cross-platformCodex · Claude Code · OpenAI API · Claude API
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A graduate student starting a master's thesis or PhD dissertation who wants a 30-80 page structured first draft with a real, checkable bibliography to rewrite from.
- Not a fit if
- Writers who want a submission-ready final paper with no human review
- Users who only need light text polishing and no citation checking
- Source review
- 81/100 · Good
What does this agent do, and when should you use it?
OpenDraft is an open-source Python engine that turns a single topic line into a first draft of a research paper, literature review or thesis chapter, typically 10,000-20,000+ words and 5-80+ pages in 10-20 minutes. It runs 19 specialized agents across six phases: research, structure, writing, citation, polish and export. Its differentiator is citation handling: candidates are found via CrossRef, OpenAlex and Semantic Scholar, and by default a citation survives only if its DOI is held by at least two of those three databases; single-source and unconfirmed results are dropped and logged. Every entry in bibliography.json carries provenance fields such as verification_status and verification_sources, and a separate CitationClaimVerifier judges whether a source plausibly supports the claim it is attached to. You can run it three ways: as a CLI, as a Python library imported into your own code, or as the autonomous-research Skill for Claude Code and Codex. The software is MIT-licensed and free, but you bring your own model API keys, at roughly $0.35-$3.00 of API cost per draft.
The pipeline orchestrates 19 agents through RESEARCH, STRUCTURE, WRITING, CITATION, POLISH and EXPORT phases. Research queries the CrossRef, OpenAlex and Semantic Scholar APIs for candidates, then looks each DOI up directly; with the defaults require_multi_source=True and min_confirming_sources=2, anything confirmed by fewer than two databases is dropped. The citation phase dedupes, quality-filters, and runs CitationClaimVerifier against the paper topic, returning RELEVANT, IRRELEVANT or UNCERTAIN and writing citation_claim_verification.md plus .json (irrelevant citations are removed only above CLAIM_VERIFICATION_MIN_CONFIDENCE, default 0.7). Output exports to PDF, Word (.docx) or LaTeX via to_pdf(), to_docx(), to_latex(), in 57+ languages. Companion commands include opendraft tldr (five-bullet summary), opendraft digest (ElevenLabs audio briefing), opendraft revise (versioned AI revision), opendraft data (World Bank, Eurostat, Our World in Data), and --expose for a fast scoping report.
- A graduate student starting a master's thesis or PhD dissertation who wants a 30-80 page structured first draft with a real, checkable bibliography to rewrite from.
- A researcher scoping a literature review who needs to confirm enough verifiable literature exists before committing (run --expose for a three-times-faster overview).
- Someone preparing a journal submission who needs LaTeX source at the end for the publisher's template.
- A lab that wants a DOI-bearing candidate source list with per-citation provenance before running its own formal search.
- A Claude Code or Codex user who wants the research workflow as an editable Skill rather than a service call, with no API key of its own.
- A reader who has someone else's PDF paper and just wants opendraft tldr or opendraft digest to get the gist or a 60-second audio briefing.
How do you install or deploy this agent?
Prerequisites: Python 3.10+ and a free Gemini API key.
git clone https://github.com/federicodeponte/opendraft.git
cd opendraft
pip install -r requirements.txtCreate a .env in that directory with your key (Gemini is the default provider):
GOOGLE_API_KEY=your-gemini-api-keyPDF reading in the TL;DR and digest tools needs an optional extra:
pip install opendraft[pdf]If you only want the agent Skill (no Python engine), install it directly:
npx skills add federicodeponte/opendraft --skill autonomous-researchOther providers need extra configuration: OpenAI uses AI_PROVIDER=openai plus OPENAI_API_KEY, Anthropic uses AI_PROVIDER=claude plus ANTHROPIC_API_KEY. Audio digests additionally require ELEVENLABS_API_KEY.
How do you use this agent?
As a Python library:
from engine.draft_generator import DraftGenerator
generator = DraftGenerator()
draft = generator.generate(
topic="The Impact of AI on Academic Research",
paper_type="master", # research_paper, bachelor, master, phd
language="en"
)
draft.to_pdf("thesis.pdf")
draft.to_docx("thesis.docx")
draft.to_latex("thesis.tex")From the command line:
# Fast scoping overview instead of a full draft
opendraft "Neural Networks in Healthcare" --expose
# Revise an existing draft; writes draft_v2.md plus PDF/DOCX
opendraft revise ./output "Make the introduction longer and add more context"
# Five-bullet summary of any paper
opendraft tldr paper.pdf -o summary.md
# 60-second audio briefing (needs ELEVENLABS_API_KEY)
opendraft digest paper.pdf --voice adamIn an agent, after connecting Edge, the invocation is just Write a paper on <topic>. That Skill is 18 markdown prompt stages plus 5 standard-library Python scripts, does not call this Python engine or any hosted service, and needs no API key because the agent reading it is the model.
What are this agent's strengths and limitations?
- Multi-source DOI confirmation is the default, not an opt-in: fewer candidates get through, but each surviving citation is held by at least two databases, and single-source drops are logged.
- Provenance is unusually explicit - verification_status and verification_sources are written even when empty, so an unconfirmed citation cannot serialize to look confirmed.
- A second, separate check (CitationClaimVerifier) targets whether a source supports the claim it is cited for, and the README states plainly that these are LLM judgements, not proofs.
- Three documented entry points - CLI, importable Python library, and an Apache-2.0 Claude Code / Codex Skill whose 18 stages and 5 scripts are files you can open and edit.
- MIT licensed with a real export surface (PDF, Word, LaTeX), 57+ languages, and swappable model providers (Gemini default, OpenAI, Anthropic).
- Free software but bring-your-own keys: roughly $0.35-$3.00 per draft, plus a hard network dependency on scholarly APIs and a model provider.
- Strict confirmation shrinks the bibliography enough that a run can now fail outright with PipelineValidationError when zero citations survive, and the quoted citation-count and page-length figures predate multi-source confirmation and have not been re-measured.
- The three databases are not independent: OpenAlex and Semantic Scholar both ingest Crossref metadata, and one of the confirming two may be the database that supplied the candidate in the first place, taken at its word.
- No arXiv API client, and claim-level checking runs against the paper topic during the citation phase because no draft text exists yet - sentence-level checking requires a separate call to run_citation_claim_verification().
- Explicitly not a one-click author: human review, your own analysis, and compliance with your institution's AI policy are required, and the output is a draft, not a submission-ready paper.
How does this agent compare with similar options?
The README positions OpenDraft against general-purpose AI writing tools that produce confident prose with hallucinated or unverifiable citations, and argues for a multi-agent pipeline grounded in real literature instead. It also points to related surfaces: the hosted OpenPaper app at openpaper.dev, the Edge skill gateway at getedge.cc, and ChatGPT-style single-model alternatives that the project's chatgpt-alternative topic tag names.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| OpenDraft This agent | 81 · Good | CLIFree + model costs | ★ 497 | 2d ago | Python | Codex · Claude Code · OpenAI API · Claude API |
| PaperJury | 79 · Good | Agent plugin / skillFree + model costs | ★ 1.2k | 1mo ago | JavaScript | Codex · Claude Code |
| PaperDebugger | 44 · Major gaps | Browser extensionFree + model costs | ★ 1.5k | 3mo ago | TypeScript | — |
| PaperOrchestra Skill Pack | 62 · Some gaps | Agent plugin / skillFree + model costs | ★ 673 | 13d ago | Python | Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Least privilege is reasonable: writes to a local workspace, queries scholarly/data APIs on demand; the Skill port is a keyless prompt+script bundle with no hosted service. Provenance fields (confirming_sources vs independently_confirmed_by) make data flow unusually transparent. Deductions: user confirmation and rollback amount to 'review manually' plus revise version suffixes, with no agent-level confirmation mechanism; the LICENSE copyright holder (SCAILE Technologies GmbH) differs from the stated author (Federico De Ponte), so attribution needs independent verification.
Dependencies are range-bounded with comments; the publish workflow guards against the 1.7.2 packaging regression; tests show graceful failure (error statuses, 'Try:' hints, PipelineValidationError). Deductions: no lockfile/hash pinning, the project itself admits headline citation counts were not re-measured after the stricter default, and the README structure section is truncated in the provided files.
Audiences (researchers, students, maintainers), the 'What OpenDraft is NOT' boundary statement, and per-setting explanations of what verification does and does not establish are thorough. Deduction: trigger and environment coherence requires cross-referencing sections (engine vs Skill differences, no arXiv client), not stated in one place.
Information architecture, install steps, examples, FAQ, known limitations (historical metrics explicitly flagged), and MIT licensing are all in place — unusually high convention quality. Deductions: a CHANGELOG is referenced but its content is not shown; the 48-hour security response is a promise, not evidence; publisher identity is unverified.
Output is directly usable: PDF/DOCX/LaTeX export, per-citation verification_status in bibliography., and unconfirmed sources can never serialize as confirmed. Multi-source confirmation plus claim-level checking is clear marginal value over single-model writing tools; API cost ranges are disclosed. Deduction: strict defaults shrink bibliographies and can fail a run; the cost/benefit tuning burden falls on the user.
The strongest dimension: per-DOI multi-database confirmation, verification_sources serialized even when empty, explicit separation of existence proof from claim support, and candor that OpenAlex/Semantic Scholar ingest Crossref metadata. Near full marks, with minor reservation because the LLM relevance judge reads only title and abstract, not full text.
- Citation confirmation only proves a DOI exists and is indexed, not that the source supports the sentence it is attached to; claim verdicts are language-model judgements based on title/abstract only and require human review.
- OpenAlex and Semantic Scholar both ingest Crossref metadata, so 'confirmed by 2 of 3 databases' is not three independent attestations.
- Strict defaults reduce citation counts and can fail the run with PipelineValidationError; headline citation metrics are historical and not re-measured.
- The LICENSE copyright holder (SCAILE Technologies GmbH) differs from the stated repository author; verify attribution before commercial use or redistribution.
- Users supply their own API keys (Gemini/OpenAI/Anthropic/ElevenLabs); do not commit them, and note that queries are sent to third-party scholarly and data APIs.