Free, self-hosted Remarkable tablet manager. Sync, search, and export your handwritten notes without a subscription.
Remarkable charges $3-8/month for cloud sync, handwriting recognition, and basic integrations. You already paid $299-449 for the hardware. OpenRemarkable gives you all of that for free.
| Feature | Remarkable ($3-8/mo) | OpenRemarkable (Free) |
|---|---|---|
| Cloud sync | ✅ | ✅ |
| Handwriting OCR | ✅ (paid) | ✅ (free, local) |
| Full-text search | ❌ | ✅ |
| Self-hostable | ❌ | ✅ |
| REST API | ❌ | ✅ |
| Export (MD, PDF) | Limited | ✅ |
| Open source | ❌ | ✅ |
# Clone and install
git clone https://github.com/your-org/open-remarkable.git
cd open-remarkable
bun install && cd web && bun install && cd ..
# Set your device token
export REMARKABLE_DEVICE_TOKEN="your-token-here"
# Get one at: https://my.remarkable.com/connect/desktop
# Run
bun run dev # Backend on :3080
cd web && bun run dev # Frontend on :5174echo "REMARKABLE_DEVICE_TOKEN=your-token" > .env
docker compose up --build
# Open http://localhost:3080- Cloud Sync — Pull notebooks via Remarkable Cloud API
- Handwriting OCR — Tesseract-based recognition of .rm stroke files
- Full-text Search — Search across all recognized text
- PDF/EPUB Support — View uploaded documents with annotation overlays
- Export — Markdown, PDF, Obsidian-compatible formats
- REST API — Full programmatic access to your notes
- Dark Mode — Linear-inspired aesthetic
- Backend: Bun + Hono + SQLite (Drizzle ORM)
- Frontend: React + Vite + Tailwind CSS
- OCR: Tesseract (optional) + .rm stroke parser
| Endpoint | Method | Description |
|---|---|---|
/api/documents |
GET | List documents |
/api/documents/:id |
GET | Document detail with pages |
/api/documents/:id/pages/:p/svg |
GET | Rendered page SVG |
/api/documents/:id/pdf |
GET | Original PDF |
/api/documents/:id/ocr |
POST | Run OCR on document |
/api/documents/:id/export/markdown |
GET | Export as Markdown |
/api/search?q=term |
GET | Full-text search |
/api/sync |
POST | Trigger cloud sync |
/api/stats |
GET | Dashboard stats |
/api/settings |
GET/PUT | App settings |
MIT