grimmoire
A small terminal spellbook for Library Genesis: search, stream a book to a temp cache, open it in zathura for a quick read, then either keep it in a persistent collection folder or discard it.
- Type-to-filter TUI for picking from search results.
- Books stream to a temp cache first; only kept on explicit confirmation.
- Two-tier storage: ephemeral cache + persistent collection (XDG-compliant).
- Top-level menu: search / browse / delete.
Requirements
- Python 3.10+
- zathura installed at the system level (via your package manager)
Installation
pipx keeps grimmoire in an isolated venv but exposes the grimmoire
command on your PATH:
pipx install grimmoire
Or with pip:
pip install --user grimmoire
To install from a working copy of this repo (e.g. for development), see DEVELOPING.md.
Usage
grimmoire
Then choose what to do from the menu:
- Search Library — search, pick a book (preferring EPUB), download, open in zathura. After reading, choose Keep (default) or Discard.
- Browse my collection — pick a saved book, open in zathura. After reading, choose Delete (default: keep).
- Delete from collection — pick a saved book, confirm, delete. (No zathura; for batch pruning without re-reading each one.)
Ctrl+C cancels any prompt.
Storage
Storage follows the XDG Base Directory Specification:
- Cache (in-flight downloads):
$XDG_CACHE_HOME/grimmoire/tmp/(default~/.cache/grimmoire/tmp/) - Collection (kept books):
$XDG_DATA_HOME/grimmoire/library/(default~/.local/share/grimmoire/library/)
The collection folder is created automatically on first use.
License
GPLv3
Metadata
Release files for grimmoire 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| grimmoire-0.1.0.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grimmoire-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.5 kB
Release files / grimmoire-0.1.0.tar.gz
| Download URL | grimmoire-0.1.0.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5343b80ca9f4cd8cd7205005770d2f53565efa1f4e584e48bd60f343e925419
|
|
BLAKE2b-256 checksum How to use checksums |
41bd92a47d458a2318de067d0912c88a9f06436db6de5dad09b8fe9123d77f82
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.
Transparency logRelease files / grimmoire-0.1.0-py3-none-any.whl
| Download URL | grimmoire-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4711bea0870f5dd37d4774d52c84dc44b2377ac9bd8b3256bffd12a63a24fab3
|
|
BLAKE2b-256 checksum How to use checksums |
dff149c20237e7ae39e20150bb005f8c7635f13b7f46205b84c55fea192150c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.
Transparency log