A lean MarkItDown-style converter built for research papers, equations, citations, and researcher-specific Markdown workflows.
Project description
ResearchDown
ResearchDown is a tiny, from-scratch document-to-Markdown tool for mathematical researchers and research-heavy reading workflows.
It is inspired by the broad idea of Microsoft MarkItDown, but intentionally keeps a smaller surface area:
- Convert papers and notes into Markdown from plain text, Markdown, HTML, PDF, and DOCX.
- Preserve research structure: title, abstract, numbered sections, equations, citations, references, theorem-like blocks, figures, and tables.
- Add a researcher-facing digest with extracted claims, methods, limitations, open questions, math objects, and citation signals.
- Run with built-in or custom personalities so output can match how a specific researcher reads.
- Avoid heavyweight services by default. Optional format support is installed only when needed.
Quickstart With uv
From this repo:
uv run researchdown examples/sample-paper.txt
Write Markdown to a file:
uv run researchdown examples/sample-paper.txt -o output.md
Or use the positional output form:
uv run researchdown examples/sample-paper.txt output.md
Use a built-in researcher profile:
uv run researchdown examples/sample-paper.txt --profile theorem-mapper
Use a custom personality plus one-off requests:
uv run researchdown examples/sample-paper.txt \
--persona examples/persona.toml \
--request "Prefer theorem/proof maps"
Install optional extractors into the uv environment when you need richer formats:
uv sync --extra pdf --extra html --extra docx
uv run researchdown paper.pdf -o paper.md
Run tests:
uv run --group dev pytest
pip Install
uv run is the easiest path, but regular pip still works:
python3 -m pip install -e .
PyPI Install
Once published to PyPI:
Install into the current project environment:
uv pip install researchdown
Or install it as a reusable command-line tool:
uv tool install researchdown
Then run it:
researchdown paper_1.pdf paper1summary.md
researchdown paper_2.pdf -o paper2summary.md --profile peer-reviewer
researchdown paper_3.pdf paper3summary.md --request "Focus on assumptions and limitations"
For PDF, DOCX, and HTML support:
uv pip install "researchdown[all]"
If you prefer an isolated one-off run without installing:
uvx researchdown paper_1.pdf paper1summary.md
Publishing
Build the release artifacts:
uv build
Publish to TestPyPI first:
uv publish --publish-url https://test.pypi.org/legacy/
Publish to PyPI:
uv publish
CLI
researchdown paper.pdf paper.md
researchdown paper.pdf -o paper.md
researchdown paper.html --profile theorem-mapper
researchdown notes.txt --request "Focus on assumptions and possible counterexamples"
researchdown paper.pdf --persona examples/persona.toml --include-prompt
Python API
from researchdown import ResearchDown
rd = ResearchDown(
profile="literature-scout",
special_requests=["Track datasets and evaluation metrics"],
)
result = rd.convert("paper.pdf")
print(result.markdown)
Custom Personalities
Use JSON or TOML:
name = "skeptical applied mathematician"
tone = "precise, terse, assumption-hunting"
focus = ["definitions", "proof obligations", "failure cases"]
questions = [
"Which claims depend on smoothness or compactness?",
"Where would the method break under noisy data?"
]
Then run:
researchdown paper.pdf --persona persona.toml --request "Prefer theorem/proof maps"
Design
ResearchDown has only four moving parts:
extractors: read source text from a small set of formats.analyzer: detects research-paper structure and signals.persona: merges built-in profiles, custom personality files, and one-off requests.renderer: writes clean Markdown plus optional prompt instructions for downstream LLMs.
No plugin registry, no cloud dependency, no large framework.
Security
ResearchDown reads files with the privileges of the current process. Do not pass untrusted paths or untrusted remote content to a hosted service without your own validation and sandboxing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file researchdown-0.1.0.tar.gz.
File metadata
- Download URL: researchdown-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cbf286eebaaefd87564191f852cc8fb47cad560142641c4cd9c0f4753ce199d
|
|
| MD5 |
2372311b5b385792fe8922853f14e088
|
|
| BLAKE2b-256 |
51e4640b447d791851544c549d6b44c5391ffa54aeb694ba4e5ef9502e094f09
|
File details
Details for the file researchdown-0.1.0-py3-none-any.whl.
File metadata
- Download URL: researchdown-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07784099fec65c86f34ed0a248cb6cccfd0027dae044bf8496362d6ff7767a93
|
|
| MD5 |
7ad27888593534a5576ded17871b442d
|
|
| BLAKE2b-256 |
a6045e6984b02b70ab757edd8d9e23b493c2ab6ea07eede44d96798e3a6727de
|