mojtaba shoghi19 downloadsPDF and Markdown with OCR highlights, colour-coded sticky notes, translation (Persian, English, German, French), offline read-aloud, voice notes, flashcards with Anki export, and a Pomodoro timer
Axion is an offline-first Obsidian plugin that turns PDFs and Markdown into a unified environment for reading, research, and language learning
Axion is an offline-first Obsidian plugin that turns PDFs and Markdown into a unified environment for reading, research, and language learning. Highlight PDF pages, add sticky notes and text boxes, and use OCR to make scanned documents searchable. Translate text into multiple languages with local or online models, and listen with neural TTS; audio is saved per sentence so you can build a personal audio archive of key sentences. Create SRS flashcards with audio from the same content, track your review habit with a heatmap, and export cards to Anki. The offline-first design helps protect source privacy and keeps PDFs, Markdown, translation, listening, and review together in one vault—no constant switching between apps.
%%hl:…%% markers if the JSON sidecar is lost.:: text → single cardfront ::: back → two-sided card.apkg) — cards + audio, opens in Anki Desktop and AnkiDroid.icons/ folder.(available once accepted into the directory)
main.js, manifest.json, styles.css from the latest release.YourVault/.obsidian/plugins/axion/.For each PDF, Axion creates a study folder next to the PDF:
| Data | Path |
|---|---|
| Flashcards database | .obsidian/plugins/axion/flashcards.json |
| Downloaded voices & engine | .obsidian/plugins/axion/voices/ and /runtime/ |
| Downloaded translation model | .obsidian/plugins/axion/nllb/ |
| Downloaded OCR files | .obsidian/plugins/axion/ocr/ |
| Global audio folder (unassigned notes) | Language audio/ (configurable) |
| Icon overrides | .obsidian/plugins/axion/icons/*.svg |
jsdelivr.net / huggingface.co and cached locally.| Layer | Technology |
|---|---|
| Plugin host | Obsidian API |
| Language | TypeScript / ESBuild |
| TTS | Piper — ONNX models, Web Worker |
| Offline translation | NLLB-200 via ONNX Runtime Web |
| Online translation | Google Translate public endpoint |
| OCR | Tesseract.js (WASM) |
| Anki export | sql.js + fflate |
Issues and pull requests are welcome.
Please read CONTRIBUTING.md first.
See the CHANGELOG for what's new.
MIT License © 2026 Mojtaba Shoghi Samani