LLM-native academic PDF to Obsidian Markdown converter.
Project description
paper2mdviallm
paper2mdviallm is a Python CLI for converting digital academic PDFs into
Obsidian-friendly Markdown.
It is the external conversion backend used by the Scholia Obsidian plugin, but it can also be installed and run on its own.
Install
When paper2mdviallm is published to PyPI, install it into a dedicated environment:
conda create -n scholia python=3.11
conda activate scholia
pip install paper2mdviallm
For local development from this repository:
python -m venv .venv
.venv/bin/pip install -r requirements-dev.txt
.venv/bin/pip install -e .
Requirements
- Python 3.10+
- An OpenAI or Anthropic API key
- Digital PDFs with a text layer
The CLI reads API keys from the environment:
OPENAI_API_KEYANTHROPIC_API_KEY
Usage
Inspect a PDF before conversion:
paper2mdviallm inspect paper.pdf
Convert a PDF to Markdown:
paper2mdviallm convert paper.pdf -o out/
Override the model or concurrency when needed:
paper2mdviallm convert paper.pdf -o out/ --model claude-sonnet-4-6 --concurrency 3
With Scholia
After installing into a conda environment, point Scholia at either:
- the environment root, such as
/Users/me/miniconda3/envs/scholia, or - the concrete executable, such as
/Users/me/miniconda3/envs/scholia/bin/paper2mdviallm
Scholia resolves the binary and executes it directly.
Development
Run tests:
python -m pytest tests
Bootstrap from the repo root:
tools/paper2mdviallm/bootstrap.sh
Boundaries
- The current target is digital PDFs, not OCR-heavy scanned documents.
- Formula-heavy papers still need manual inspection after conversion.
- The output is optimized for Obsidian reading workflows rather than general document fidelity.
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 paper2mdviallm-0.1.0.tar.gz.
File metadata
- Download URL: paper2mdviallm-0.1.0.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bb96a91656e64f837dd1e1789eb4064416fafb04378d5b6549930b2a9ad6e9f
|
|
| MD5 |
05ff252254d2f720ce20f4f82b3dbb1f
|
|
| BLAKE2b-256 |
3cdd443b9cfbfe79f4677a75ac26d913fd1de19668a7a26627f596e5d73b9179
|
File details
Details for the file paper2mdviallm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paper2mdviallm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6d28dc9c871f836a9af191df3f100125293fed16bf267cca5930d1a2407b6ee
|
|
| MD5 |
49ab87aaa386a78a87a54ca307432ae2
|
|
| BLAKE2b-256 |
db8d5300ddd7371b290335b98828e0a34daf0638bd7d2e068bd758ed48c804c9
|