Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Mdtero logo

Mdtero

Structured Markdown for research workflows.

Mdtero turns papers into reusable Markdown packages for reading, translation, project research, and local agents.

Python/uv CLI, TUI, browser extension, and agent skill bundle are maintained as the public client surfaces.

Languages: English | 简体中文

Install

uv tool install --force --reinstall git+https://github.com/JonbinC/doi2md.git
mdtero setup
mdtero doctor --json

During alpha, install from this GitHub repository. If uv is unavailable, use the installer:

curl -Ls https://mdtero.com/install.sh | sh
curl -Ls https://mdtero.com/install.sh | sh -s -- --agent codex

The installer supports uv, pipx, and Python fallbacks. --agent <target> installs a local agent skill.

Use Mdtero

mdtero discover "thermal energy storage" --limit 5 --interactive
mdtero parse <doi-or-url> --wait --timeout 300 --json
mdtero parse --file paper.pdf --trace --wait --timeout 600 --json
mdtero status <task-id> --wait --timeout 300 --json
mdtero download <task-id> paper_md --output-dir ./mdtero-output --json
mdtero translate <task-id> --to zh-CN --wait --timeout 600 --json

mdtero doctor --json returns safe auth/dependency/academic/Zotero/project/RAG summaries without echoing credentials.

The CLI is the default path. Desktop installs prepare the local access helper automatically for campus-network and browser-required routes. Use the browser extension only for current-page capture or when an existing browser session is needed; it can hand DOI, URL, PDF, EPUB, HTML, or XML artifacts back to the CLI.

Choose the surface for your environment

Environment Best surface What it can solve Boundary
Campus Windows/macOS with a full browser Extension + optional local Relay OA, campus-IP routes, browser login/challenges, entitled closed articles The user completes visible login or verification.
CLI/Agent on a server only CLI/API OA, structured APIs, ordinary HTTP, VPN/IP-authorized files, and uploads No browser session; WAF/login-only closed content needs a file or another desktop.
Server Agent plus a separate campus desktop Server CLI/API + Relay on the desktop; extension as manual fallback Full authorized browser acquisition on the desktop, then cloud parsing The extension alone is user-triggered; use Relay when the server must request the article remotely.
Server connected to campus VPN without a browser CLI/API with the VPN or proxy IP-authorized machine-readable PDF/XML/HTML VPN supplies network access, not browser cookies or challenge completion.

In short: a browser is required for browser-bound entitlement; a campus IP or VPN is sufficient only when the publisher exposes a machine-readable route. Mdtero never bypasses a paywall or exports browser session material.

Project Workflow

Use a local Mdtero project when you are handling a paper set:

mdtero project init --name literature-review
mdtero project import-bib references.bib --json
mdtero project parse --wait --timeout 300 --json
mdtero rag query "What are the strongest findings?" --build-if-needed --json

Zotero support is conservative: mdtero zotero sync adds Mdtero result notes and tags for matching succeeded items without rewriting Zotero bibliographic metadata.

Browser And Agents

Use the browser extension as a lightweight fallback for a paper open in your browser, content accessed through your own session, or a file you want to upload. The extension and CLI share task history, downloads, and translation.

Install a local agent skill with:

mdtero agent install --interactive
mdtero mcp briefing --json

The briefing provides safe task state, available downloads, citations, and suggested next steps. Keep API keys and other secrets out of prompts, logs, and repositories. For a trusted headless machine, enter a fresh key only at the secure mdtero setup --api-key --json prompt.

Access Boundaries

Mdtero helps process material you are permitted to access. Publisher subscriptions, institutional access, and source-specific credentials remain your responsibility. When a source needs your browser session or a local copy, use the extension or upload the saved file.

Parser and source-selection implementation are service internals, not user configuration. The stable workflow is submit, check status, download, translate, and use the resulting Markdown in a project.

Product Boundary

Mdtero Account is the control plane for Mdtero API keys, quota, billing, history, and install prompts. Academic source keys stay in local mdtero config academic configuration; OpenAlex discovery also has a server-managed fallback, so users do not need to configure an OpenAlex key just to search. The CLI-managed local access helper and browser extension remain separate from provider credentials.

Shared /api/v1 server contract

The CLI, extension, dashboard, and MCP briefing expose this contract: /api/v1/route, /api/v1/extension/route, /api/v1/tasks/parse, /api/v1/tasks/upload, /api/v1/tasks/{task_id}, /api/v1/tasks/{task_id}/download/{artifact}, /api/v1/discovery/search, /api/v1/tasks/translate, /api/v1/projects, /api/v1/projects/{project_id}/tasks/{task_id}/import, /api/v1/projects/{project_id}/rag/status, /api/v1/projects/{project_id}/rag/build, and /api/v1/projects/{project_id}/rag/query.

Repo Map

The Python package owns the CLI and local workflow; the extension/ package is the lightweight browser fallback and nextmdtero/ is the website/dashboard workspace.

Documentation

Development

uv run --with pytest --with rich --with textual --with httpx --with requests --with curl_cffi --with pyzotero --with fastmcp pytest tests_py -q
npm --prefix extension test
npm --prefix extension run build

Download files

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

Source Distribution

mdtero-0.2.0a28.tar.gz (636.7 kB view details)

Uploaded Source

Built Distribution

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

mdtero-0.2.0a28-py3-none-any.whl (233.5 kB view details)

Uploaded Python 3

File details

Details for the file mdtero-0.2.0a28.tar.gz.

File metadata

  • Download URL: mdtero-0.2.0a28.tar.gz
  • Upload date:
  • Size: 636.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdtero-0.2.0a28.tar.gz
Algorithm Hash digest
SHA256 16caa8217669547b69c87171742f225dee803ba55c9fdf0a7e8a14c151fef521
MD5 fc95f434cdc9b4682c246dd133b25b55
BLAKE2b-256 33d06bb36db149cc2070e3258b5b61e3c0800b60f4dba2dd6317d2b50dd80930

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdtero-0.2.0a28.tar.gz:

Publisher: publish-mdtero-pypi.yml on JonbinC/doi2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mdtero-0.2.0a28-py3-none-any.whl.

File metadata

  • Download URL: mdtero-0.2.0a28-py3-none-any.whl
  • Upload date:
  • Size: 233.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for mdtero-0.2.0a28-py3-none-any.whl
Algorithm Hash digest
SHA256 68a462aead09ebb1d46f6bf4237ca8deea97fa80ee21e9baec1506a144da3ff0
MD5 a1241ff19d17dc92cb1facaea15fa7a7
BLAKE2b-256 455c7aac755951d0e0a31cbc698454c0b0db42aaed8c4b3a7318759d69f12ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mdtero-0.2.0a28-py3-none-any.whl:

Publisher: publish-mdtero-pypi.yml on JonbinC/doi2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2026.4.26.3

2 files

2026.4.26.2

2 files

2026.4.26.1

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

This release

0.2.0a28 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page