| Crates.io | cantrip-vtt |
| lib.rs | cantrip-vtt |
| version | 0.1.1 |
| created_at | 2026-01-23 23:44:18.296715+00 |
| updated_at | 2026-01-25 14:44:48.684838+00 |
| description | A decentralized, terminal-based Virtual Tabletop (VTT) for RPGs, powered by Iroh. |
| homepage | |
| repository | https://github.com/hafihaf123/cantrip |
| max_upload_size | |
| id | 2065711 |
| size | 189,655 |
Cantrip is a secure, peer-to-peer Virtual Tabletop (VTT) for Dungeons & Dragons and other RPGs, built in Rust. It leverages Iroh for decentralized networking to create a "serverless" game table where the Dungeon Master and players connect directly.
Unlike traditional VTTs that rely on central servers or subscription fees, Cantrip is ephemeral, private, and runs entirely in your terminal.
Cantrip aims to bring the "pen and paper" feel to the digital age without the bloat. It combines a secure chat client with a structured game state manager.
Ratatui)./roll 1d20+5 with verifiable results broadcast
to the party.Ensure you have Rust installed. More ways to install might be added later, after the project is stable.
cargo install cantrip-vtt
The binary will be available in the Cargo binary directory. For more information check the official Cargo documentation.
Cantrip works by either Hosting a new table or Joining an existing one using a ticket.
You will be prompted for a password interactively for extra security.
-u, --username: Your character name (minimum 4 characters).-r, --room: The room name (minimum 4 characters).To start a new session and generate an invite ticket for your players:
cantrip -u DungeonMaster -r "CurseOfStrahd" open
This will display a ticket string (e.g., ticket-abc123...) that you send to your
players.
To join an existing session using a ticket provided by the DM:
cantrip -u Grog -r "CurseOfStrahd" join --ticket "ticket_string_here"
/nick commands).1d8+4) and a MessageBody::Roll struct to visually
distinguish rolls from chat.println!) to a full TUI with Ratatui.This project is licensed under either of:
at your option.