Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

researchdown-0.1.0.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

researchdown-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for researchdown-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9cbf286eebaaefd87564191f852cc8fb47cad560142641c4cd9c0f4753ce199d
MD5 2372311b5b385792fe8922853f14e088
BLAKE2b-256 51e4640b447d791851544c549d6b44c5391ffa54aeb694ba4e5ef9502e094f09

See more details on using hashes here.

File details

Details for the file researchdown-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for researchdown-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 07784099fec65c86f34ed0a248cb6cccfd0027dae044bf8496362d6ff7767a93
MD5 7ad27888593534a5576ded17871b442d
BLAKE2b-256 a6045e6984b02b70ab757edd8d9e23b493c2ab6ea07eede44d96798e3a6727de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page