D&D 5th Edition reference TUI — spells, monsters, items, feats, and rules in the terminal
Project description
Grimoire 5e
A terminal UI for D&D 5th Edition reference material — spells, monsters, items, feats, and rules — all searchable and filterable without leaving your keyboard.
Features
- Quick Search across all content types with
s:,m:,i:,f:,r:prefixes - Spells — filter by level, school, class, source; sort by name / level / school
- Monsters — filter by CR, type, environment, source; sort by name / CR / type
- Items — filter by type (weapon, armor, wondrous, potion, poison…), rarity, attunement
- Feats — filter by source
- Rules — conditions, status effects, diseases, and core rules from XPHB
- Themes — Classic D&D, 5e Tools, Arcane, Parchment, Gelatinous Cube (+ Textual built-ins)
- Manage Sources in-app — download new books or toggle active ones without restarting
- Custom source upload — import third-party or homebrew books in 5etools format
- Supports 30+ official sourcebooks including adventures and Forgotten Realms titles
Requirements
- Python 3.11 or newer
- Internet connection for first-run data download
- Windows only: Windows Terminal (the default CMD/PowerShell console does not support the required ANSI colours)
Installation
Recommended (pipx)
pipx installs Python CLI tools in isolated environments and puts them on your PATH — no virtual environment management needed.
# macOS
brew install pipx && pipx install grimoire5e
# Linux (Debian/Ubuntu)
apt install pipx && pipx install grimoire5e
# Windows (in Windows Terminal, using winget)
winget install Python.Launcher
pip install pipx
pipx install grimoire5e
Alternative (pip)
pip install grimoire5e
From source (for development)
git clone https://github.com/manuelgros/grimoire5e.git
cd grimoire5e
pip install -e .
First Run
On first launch, Grimoire opens a setup wizard where you select which source books to download. Only books you legally own should be selected.
grimoire
Data is downloaded from the public 5etools mirror and stored in your platform's user data directory:
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/grimoire/ |
| Linux | ~/.local/share/grimoire/ |
| Windows | %APPDATA%\grimoire5e\grimoire\ |
The selection can be later edited via the Settings tab
Usage
grimoire # launch app (setup wizard on first run)
grimoire --manage-sources # open source manager to add/remove books
grimoire --import /path/to/file.json # import a custom source and exit
Keyboard shortcuts
| Key | Action |
|---|---|
Tab / Shift+Tab |
Navigate between filters |
↑ / ↓ |
Move through the list |
Enter |
Open detail view |
/ |
Focus search |
Esc |
Return to Quick Search |
Ctrl+1–7 |
Jump to tab |
q |
Quit |
Custom Sources
Grimoire can import third-party sourcebooks, adventures, or homebrew content as long as they are in the 5etools monolithic JSON format — a single .json file with all content under top-level keys.
Importing
In-app: Settings tab → Upload Source → enter the full path to your JSON file → Validate → Confirm Import.
CLI (no UI):
grimoire --import "/path/to/FleeMortals.json"
The source is split into per-type files and stored in the data directory. It then appears in all content tabs and source filter dropdowns alongside official sources — no restart required.
Managing custom sources
Custom sources appear in the Settings tab source grid with a (custom) label. To remove one:
Settings tab → Remove Custom → check the sources to delete → Remove Selected.
This deletes both the data files and the registration entry. The source will disappear from all tabs immediately.
Expected file format
Your JSON file must be a 5etools-format "data bundle" — a single object with one or more of these top-level keys:
| Key | Content |
|---|---|
spell |
Array of spell objects |
monster |
Array of monster stat blocks |
item |
Array of magic items |
baseitem |
Array of mundane/base items |
magicvariant |
Array of magic variant items (e.g. +1 weapons) |
feat |
Array of feats |
condition |
Array of conditions |
disease |
Array of diseases |
status |
Array of status effects |
Keys that are absent or empty are silently skipped — you don't need all of them.
What to watch out for
sourcefield is required on every object. All items must share a consistent source code (e.g."FM"for Flee, Mortals!). Grimoire uses this to register and filter the source — objects with inconsistent or missing source codes may not appear.- Source code must be unique. If you import a file whose source code matches an already-registered custom source, the existing files will be silently overwritten.
- Official source codes are reserved. Do not use codes like
PHB,DMG,XMM, etc. — they will conflict with downloaded official data. namefield is required on every object.- Magic variant items (
magicvariant) use{=fieldName}placeholders in their entries (e.g.{=bonusAc}) — these are resolved automatically from theinheritsblock, so no special handling is needed in your file. - Grimoire does not validate or reformat your JSON beyond reading the supported keys. If an object is missing required fields (name, source) it will be skipped during load without an error message.
Supported Sources
Core (2024) XPHB · XDMG · XMM
Core (2014) PHB · DMG · MM
Supplements XGE · TCE · VGM · MTF · MPMM · FTD · BGG · VRGR · MOT · GGR · EGW · SCC · AI · BMT · PHB
Adventures HotDQ · RoT · PotA · OotA · CoS · SKT · ToA · WDH · WDMM · BGDIA · IDRotF · WBtW · FRAiF
Forgotten Realms FRHoF
Legal
This tool downloads data from the 5etools-mirror-3 repository for personal use only. Grimoire 5e does not bundle any game content — all data is fetched at runtime from publicly available mirrors of D&D 5e material published under the Creative Commons Attribution 4.0 license (for XPHB/2024 content) or used under fair use for personal reference.
Only download content you legally own.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grimoire5e-0.2.0.tar.gz.
File metadata
- Download URL: grimoire5e-0.2.0.tar.gz
- Upload date:
- Size: 45.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44d7b706eb56b0a126bdb62eaf70ce530ff94ed23ce367ad3ed7cb3297c73bdb
|
|
| MD5 |
62b54680991eceec8d626c0b27b46508
|
|
| BLAKE2b-256 |
b1c29297de0d6b80e5a5136c4526f27fd3d9f953340c24b48dd4287db9b8a5fa
|
File details
Details for the file grimoire5e-0.2.0-py3-none-any.whl.
File metadata
- Download URL: grimoire5e-0.2.0-py3-none-any.whl
- Upload date:
- Size: 62.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb3f913983ac513e0cd9d949b9fcb40d114992d45e9411eb157cbfc349655910
|
|
| MD5 |
a450cfc8fbe025c40da78cb33d730d42
|
|
| BLAKE2b-256 |
ab7c6ef5695eab88579bf169b4680cb8054c826f3979f0574d165bb57bc6af21
|