initiative.sh's design philosophy is to minimize the time and effort between the question ("Is there a blacksmith nearby?") and the answer ("Yes, it's called Frosthammer & Sons, and Fenrik Frosthammer is at the forge.").
- Keyboard first: All commands can be typed. Most can be run at any time, so you don't need to waste time navigating menus to find the tool you want.
- Persistence: The people and places you generate remain visible in your scrollback history and can be saved to your journal, so you don't need to worry about forgetting to scribble down a generated name that came up in conversation.
The following features have not yet been implemented:
- Context: With your guidance, initiative.sh will track your party's location and the demographics in the area. If you're in a dwarvish settlement, the innkeeper and most of the patrons will probably be dwarves.
- Integrations: Integrate with Spotify to switch playlists as your players move through the world, with Home Assistant to dim the lights as the party beds down for the night, or use web hooks to build your own integrations.
- Cloud sync: Keep your journal in sync between devices.
Dependencies:
- Rust/Cargo
- wasm-pack (for web)
- npm (for web)
Note that the project includes 5e-database as a Git submodule, so actions such as building and starting a dev server may fail until you run:
git submodule update --init
- Run
./dev-server.sh
from the project root at the command line. - Find the dev server URL in the command line output and open it in your browser. Typically, this will be localhost:8080.
Note: The command line interface lost feature parity with the web version early in the development process. Notably, it lacks autocomplete support, and the "rich" version doesn't support scrolling or text formatting. For details, see #287.
cargo run
The light version is selected when the input is not from a tty, such as when you
pipe a command into cargo run
.
echo npc | cargo run
Please see CONTRIBUTING.md for details.