A self-hosted book tracking web application that integrates directly with Calibre's database to provide reading progress tracking, status management, and streak functionality.
Think: Goodreads/StoryGraph but powered by your personal Calibre library.
Tome is a local-first book tracking application that gives you durable ownership of your reading history. It seamlessly integrates with your existing Calibre library to track reading progress, sessions, and streaks—without disrupting your workflow or requiring cloud services.
Your reading data lives locally, under your control, and survives platform changes forever.
- 🔗 Calibre Integration: Integrates directly with Calibre, automatically syncing your library
- 📖 Reading Progress Tracking: Track page-based or percentage-based progress with history
- 📈 Enhanced Reading Streaks: Daily streak tracking with configurable goals and analytics
▶️ Book Status Management: Organize books by reading status (To Read, Read Next, Reading, Read, and DNF). Supports rereads while preserving previous reading sessions.- 🏷️ Robust Tag Management: Easily remove a tag from many books in a single click, merge multiple tags into one, and bulk delete tags.
- 📊 Statistics Dashboard: Comprehensive reading statistics
- 🥇 Annual goals: Set and track annual reading goals
- 🪛 Self-Hosted: Full control over your data with no external dependencies
For detailed production deployment instructions, see the deployment guide.
# Install dependencies
bun install
# Configure environment
cp .env.example .env
# Edit .env and set CALIBRE_DB_PATH to your Calibre library
# Run database migrations
npm run db:migrate
# (Optionally) run DB seeder
npm run db:seed
# Start development server
bun run devVisit http://localhost:3000 and sync your Calibre library from the Library page.
Tome reads from and writes to Calibre’s metadata.db. Concurrent writes (for example, editing tags or ratings in Tome while Calibre is running) can lead to database locks or unpredictable results. Read-only access is safe!
Recommendation: Close Calibre before using Tome for metadata edits.
Tome writes to Calibre when you:
- Rate a book
- Manage tags, whether on
/books/:idor/tagspages
Active development can be viewed here, representing the upcoming release. Additionally, checkout repo discussions for release and feature announcements and more!
You're highly encouraged to create issues and create discussions! 🙏
Comprehensive documentation is available in the /docs directory:
- Documentation Index - Complete guide to all documentation
- Deployment Guide - Docker deployment, migrations, and production setup
- Database Management - Schema management, backups, and maintenance
- Troubleshooting - Common issues and solutions
- Architecture - System architecture and patterns
- Testing Guide - Testing patterns and best practices
Contributions are welcome! Before contributing, please:
- Read the Architecture Documentation to understand the system design
- Review the Constitution for project principles
- Check the Testing Guide for testing best practices
- Ensure all tests pass:
npm test
MIT
Built with a focus on local-first architecture, durable data ownership, and seamless Calibre integration.








