A desktop application for reading academic papers efficiently. Lecto integrates PDF viewing, automatic section extraction, AI translation, AI chat, and Markdown notes into a single interface.
- PDF Viewer — Continuous scroll, zoom, and text selection
- Section Extraction — Automatically extracts sections from PDF using heading structure (no AI required)
- AI Translation — Translates each section with streaming output and caches results
- AI Chat — Ask questions about the paper with selectable section context
- Markdown Notes — Per-project notes with syntax highlighting and preview mode
- Multiple AI Providers — Works with OpenAI, LM Studio (local), and any OpenAI-compatible API
- Vault System — Organize projects in a folder hierarchy with drag-and-drop
- Dark / Light Mode
- Multilingual UI — English, Japanese, Chinese
Pre-built binaries are available on the Releases page.
| Platform | File |
|---|---|
| Windows | Lecto-0.1.0-win.zip |
| macOS | Lecto-0.1.0-arm64.dmg |
| Linux | Lecto-0.1.0.AppImage / lecto_0.1.0_amd64.deb |
No installation required for Windows and macOS — just extract and run.
A Vault is any folder on your computer where Lecto stores your projects. You will be prompted to choose one on first launch.
Click New Project, enter a name, and select a PDF file.
Go to Settings and add an AI preset with your API key, base URL, and model name.
| Provider | Base URL |
|---|---|
| OpenAI | https://api.openai.com/v1 |
| LM Studio (local) | http://localhost:1234/v1 |
| Other compatible APIs | any URL |
- Click a section in the panel to load it into the translation area
- Press Translate to translate the section
- Use the Chat area to ask questions about the paper
All data is stored as plain files inside your Vault:
{Vault}/
settings.json ← AI and language settings
projects/
{project-name}/
paper.pdf
sections.json ← Extracted sections and cached translations
chats/ ← Chat history
App-level settings (Vault path, theme) are stored in the OS user data directory:
| OS | Path |
|---|---|
| Windows | %APPDATA%\Lecto\ |
| macOS | ~/Library/Application Support/Lecto/ |
| Linux | ~/.config/Lecto/ |
- Section extraction quality depends on the PDF structure. Scanned PDFs or unusual layouts may not extract correctly.
- Very large sections may hit the AI model's context limit during translation.
- Node.js 20+
- Python 3.10+ with
pymupdf4llmandonnxruntime==1.19.2
pip install pymupdf4llm onnxruntime==1.19.2 pyinstaller
npm install
npm run dev# Windows (run on Windows)
pyinstaller --onedir scripts/extract_pdf.py -n extract_pdf --distpath resources `
--collect-all pymupdf --collect-all pymupdf4llm `
--exclude-module torch `
--exclude-module torchvision `
--exclude-module torchaudio `
--exclude-module matplotlib `
--exclude-module pandas `
--exclude-module scipy `
--exclude-module cv2
npm run dist
# macOS (run on macOS)
pyinstaller --onedir scripts/extract_pdf.py -n extract_pdf --distpath resources \
--collect-all pymupdf --collect-all pymupdf4llm \
--exclude-module torch \
--exclude-module torchvision \
--exclude-module torchaudio \
--exclude-module matplotlib \
--exclude-module pandas \
--exclude-module scipy \
--exclude-module cv2
npm run dist:mac
# Linux (run on Linux)
pyinstaller --onedir scripts/extract_pdf.py -n extract_pdf --distpath resources \
--collect-all pymupdf --collect-all pymupdf4llm \
--exclude-module torch \
--exclude-module torchvision \
--exclude-module torchaudio \
--exclude-module matplotlib \
--exclude-module pandas \
--exclude-module scipy \
--exclude-module cv2
npm run dist:linuxThis project is licensed under the GNU Affero General Public License v3.0.
This software includes the following AGPL-licensed components:
- pymupdf4llm — PDF to Markdown conversion (AGPL-3.0)
- PyMuPDF — PDF processing library (AGPL-3.0)
