A productivity self-hosted tool to manage and browse cheatsheet and snippets (in a Markdown format).
This project is based on Bookmarker code base.


Finding a cheatsheet is very easy.
The search is a multi-line search
where each line is matched independently
(AND
relation between the lines),
either in a fuzzy or a full-match fashion.
In addition to the classic fuzzy/keyword-based search, a semantic search is also supported. Simply describe what you are looking for in a natural language and the most relevant cheatsheet will be presented.
It also generates an answer to your search query based on the semantic search result using a large language model (LLM) that runs locally. This allows for not just finding relevant content, but also receiving a direct, AI-generated response to your query for a more comprehensive and streamlined experience.
Snippets are stored locally in a SQLite database. This is useful when you don't want to expose sensitive data (e.g., in your workplace) with third-party tools. Note that it is recommended to periodically back up the SQLite file.
- Python 3.7 or higher
- Create a directory named
venv
- Run:
python -m venv <route/to/venv-directory>
source <route/to/venv-directory>/bin/activate
pip install -r requirements.txt
pip install -r requirements_ai.txt
Note: If you are not interested in running an LLM locally,
you can configure enable_ai
to false
and skip the last command.
- Activate the virtual environment:
source venv/bin/activate
- Run
python src/main.py
- From the browser:
http://localhost:8000
This project is well tested with unittests and end-to-end tests. The code coverage is 98%.
The build.py
script runs the following static code analysis and test suites:
- pycodestyle (pep8)
- pylint
- Unit tests
- End-to-end tests
To run build.py
:
- Activate the virtual environment:
source venv/bin/activate
- Install dev dependencies:
pip install -r requirements_dev.txt
- Run:
PYTHONPATH=src python build.py
To check coverage:
PYTHONPATH=src coverage run --concurrency=multiprocessing build.py
coverage combine
coverage html
- Open
htmlcov/index.html
in your browser