Create a complete level-1 D&D character in your terminal. character-wizard
walks you through the choices in the SRD 5.2.1, saves the character as JSON, and
fills the official two-page character sheet for you.
character-wizard createAt the end, a character named Legolas produces:
legolas.json
legolas.pdf
The JSON file is the source of truth; the PDF is a convenient, filled-in view.
Download the archive for your computer and its matching .sha256 file from the
latest release.
| Platform | Archive |
|---|---|
| Linux (x86_64) | character-wizard-linux-x86_64.tar.gz |
| macOS (Apple Silicon) | character-wizard-macos-arm64.tar.gz |
| macOS (Intel) | character-wizard-macos-x86_64.tar.gz |
| Windows (x86_64) | character-wizard-windows-x86_64.zip |
Verify the archive, extract it, then run character-wizard (or
character-wizard.exe on Windows). You can place the executable on your PATH
to run it from any folder. No Python or package manager is required.
# Linux
sha256sum --check character-wizard-linux-x86_64.tar.gz.sha256
# macOS
shasum --algorithm 256 --check character-wizard-macos-arm64.tar.gz.sha256In Windows PowerShell, run Get-FileHash .\character-wizard-windows-x86_64.zip -Algorithm SHA256 and compare it with the downloaded .sha256 file. The
binaries are unsigned, so Windows SmartScreen or macOS Gatekeeper may ask for
confirmation the first time you open one.
Run character-wizard create and answer the prompts. Your progress is saved
after each completed stage, so closing the terminal does not lose your work;
rerun the command to continue from the checkpoint. The final review lets you go
back and change a section before writing the files.
The official fillable character-sheet PDF is found in this order:
- The file passed with
--template. character-sheet.pdfin the folder where you run the command.- A validated cached copy.
If none is available, the program downloads and validates the supported official sheet, then caches it. For offline use, download the sheet yourself from the official character-sheet downloads and pass its path explicitly:
character-wizard create --template /path/to/character-sheet.pdfSet CHARACTER_WIZARD_CACHE_DIR to use a different cache location.
By default, output names come from the character name, lowercased and made safe
for a filename: Legolas becomes legolas.json and legolas.pdf. Use --json
and --output whenever you want different names or folders:
character-wizard create --json saves/legolas.json --output sheets/legolas.pdfExisting outputs require confirmation. Add --force for scripts and other
non-interactive use.
Validate a JSON record or print a quick character summary:
character-wizard validate legolas.json
character-wizard show legolas.jsonYou can render a known JSON record without completing the wizard again:
character-wizard create --from-json legolas.json --forceThat command still uses the name stored in the JSON for the default output
names. Pass --json or --output to override either one.
This project uses Rust 1.88.0.
rustup toolchain install 1.88.0 --profile minimal --component rustfmt --component clippy
cargo +1.88.0 build --release --locked
target/release/character-wizard --helpFor contributors, the complete check is:
cargo +1.88.0 fmt --check
cargo +1.88.0 clippy --all-targets -- -D warnings
cargo +1.88.0 test --locked
cargo +1.88.0 audit
cargo +1.88.0 deny checkThe current scope includes all 12 SRD classes, four backgrounds, and nine species at level 1. See CONTRIBUTING.md, the changelog, and the roadmap for project details. SRD attribution and character-sheet template terms are in THIRD_PARTY_NOTICES.md.
The original character-wizard source code is available under the MIT License.