Knowledge management meets spaced repetition.
mt helps you organize and retain knowledge over time.
mt is built around notes, which are simple markdown files stored locally on your computer.
Notes pop up for review according to a predefined schedule (aka spaced repetition). Reviewing your notes helps you remember them better, gives you a chance to improve them, and update them with new relevant information.
Add flashcards relevant to each note, review them Anki-style for active recall.
You can also create quizzes for yourself using AI (an API key is required).
- Intuitive but powerful UI.
- Markdown-based notes (extensible with plugins) with support for syntax highlighting, Mermaid diagrams, and more.
- Spaced repetition for entire notes, flashcards (like Anki), and AI-powered quizzes (API key required).
- Your data is stored locally on your machine.
- Git integration for version control and syncing.
- Cross-linking between notes for building a knowledge graph.
- Full-text search and tagging for easy organization and retrieval.
A web version is coming soon.
The easiest way to run mt is with Docker Compose.
- Download
docker-compose.ymlfrom this repository. - Optionally, set the
ANTHROPIC_API_KEYvariable to enable AI-powered features. - Run:
docker compose up -dYour notes are stored in ./mt-data on your host machine (created automatically).
Open your browser and go to http://localhost:3042.
# npm modules
npm install
npm run install-client
npm run install-server
# build it
npm run build
# start
node server/dist/index.jsOpen your browser and go to http://localhost:8042. Your notes will be stored in ~/mt (or C:\Users\YourName\mt on Windows) by default.
Read how to add a first note here
Once you add a note you can initialize a git repository git init inside your mt home directory (~/mt by default). As for now, mt doesn't commit changes for you, so if you care about versioning, do it manually. I have a private GitHub repo where I push my changes to keep them backed up.
You can use the provided startup script (./scripts/mt.sh) to launch the application as a daemon easily (works on Unix-like systems).
# start|stop|restart|status
./scripts/mt.sh start# add an alias
alias mt="$PATH_TO_MT/scripts/mt.sh"Contributions are welcome! Please open issues and pull requests.
AI usage is allowed. Just make sure you review the code before submitting.
