D&D 5e Toolkit
@capt-marbles
npx machina-cli add skill @capt-marbles/dnd --openclawD&D 5e Toolkit
Your complete Dungeons & Dragons 5th Edition assistant! Look up spells, monsters, roll dice, generate characters, encounters, and NPCs.
Features
š² Dice Roller - Roll any dice with modifiers
⨠Spell Lookup - Search the entire SRD spell list
š¹ Monster Stats - Get full stat blocks for any creature
āļø Character Generator - Random characters with stats
š”ļø Encounter Builder - Generate balanced encounters by CR
š¤ NPC Generator - Create random NPCs with personality
Usage
All commands use the dnd.py script.
Roll Dice
# Roll 2d6 with +3 modifier
python3 dnd.py roll 2d6+3
# Roll d20
python3 dnd.py roll 1d20
# Roll with negative modifier
python3 dnd.py roll 1d20-2
# Roll multiple dice
python3 dnd.py roll 8d6
Output:
š² Rolling 2d6+3
Rolls: [4 + 5] +3
Total: 12
Look Up Spells
# Search for a spell
python3 dnd.py spell --search fireball
# Direct lookup
python3 dnd.py spell fire-bolt
# List all spells
python3 dnd.py spell --list
Output:
⨠Fireball
Level: 3 Evocation
Casting Time: 1 action
Range: 150 feet
Components: V, S, M
Duration: Instantaneous
A bright streak flashes from your pointing finger to a point
you choose within range and then blossoms with a low roar into
an explosion of flame...
Look Up Monsters
# Search for a monster
python3 dnd.py monster --search dragon
# Direct lookup
python3 dnd.py monster ancient-red-dragon
# List all monsters
python3 dnd.py monster --list
Output:
š¹ Adult Red Dragon
Huge Dragon, chaotic evil
CR 17 (18,000 XP)
AC: 19
HP: 256 (19d12+133)
Speed: walk 40 ft., climb 40 ft., fly 80 ft.
STR 27 | DEX 10 | CON 25
INT 16 | WIS 13 | CHA 21
Special Abilities:
⢠Legendary Resistance (3/Day): If the dragon fails a saving throw...
Actions:
⢠Multiattack: The dragon can use its Frightful Presence...
Generate Random Character
# Generate character with rolled stats
python3 dnd.py character
Output:
āļø Elara
Race: Elf
Class: Wizard
Stats:
STR: 10 (+0)
DEX: 15 (+2)
CON: 12 (+1)
INT: 16 (+3)
WIS: 13 (+1)
CHA: 8 (-1)
Generate Random Encounter
# Generate encounter with challenge rating
python3 dnd.py encounter --cr 5
# Random CR
python3 dnd.py encounter
Output:
š² Random Encounter (CR ~5)
2x Troll (CR 5)
AC 15, HP 84
1x Ogre (CR 2)
AC 11, HP 59
Generate Random NPC
python3 dnd.py npc
Output:
š¤ Finn Shadowend
Race: Halfling
Occupation: Merchant
Trait: Curious
Example Prompts for Clawdbot
- "Roll 2d20 with advantage" (I'll roll twice!)
- "Look up the Fireball spell"
- "Show me stats for a Beholder"
- "Generate a random character"
- "Create an encounter for level 5 party"
- "Give me an NPC for my tavern scene"
JSON Output
Add --json to any command for structured output:
python3 dnd.py roll 2d6 --json
python3 dnd.py spell --search fireball --json
python3 dnd.py character --json
API Source
Uses the official D&D 5e API which includes all System Reference Document (SRD) content.
Tips
- Spell names use lowercase with hyphens:
fireball,magic-missile,cure-wounds - Monster names same format:
ancient-red-dragon,goblin,beholder - Search if unsure of exact name:
--search dragonwill show all dragons - Dice format is flexible:
1d20,2d6+5,3d8-2,100d100
Future Ideas
- Initiative tracker
- Treasure generator
- Quest/plot hook generator
- Random dungeon generator
- Party manager
- Campaign notes
Enjoy your adventure! šāļøāØ
Overview
D&D 5e Toolkit is a complete assistant for both players and DMs. It lets you roll dice, look up SRD spells and monsters, generate characters, and build encounters or spawn NPCs using the official D&D 5e SRD API.
How This Skill Works
All commands run through the dnd.py script. The toolkit exposes dice rolling, spell lookup, monster stat blocks, random character and NPC generation, and encounter building, with optional JSON output for automation.
When to Use It
- Roll dice with modifiers during a session (e.g., 2d6+3)
- Look up spells or monsters when planning a fight or casting a spell
- Generate a quick random character for a new player or one-shot
- Create balanced encounters by Challenge Rating for an adventure
- Spawn thematic NPCs for scenes or tavern interactions
Quick Start
- Step 1: Run a basic roll: python3 dnd.py roll 2d6+3
- Step 2: Look up a spell: python3 dnd.py spell --search fireball
- Step 3: Generate a character: python3 dnd.py character
Best Practices
- Use --json for structured data when integrating with tools or notes
- Follow the SRD naming conventions: lowercase with hyphens for spells/monsters
- Verify results against the SRD API for accuracy before presenting to players
- Build encounters by CR to ensure balanced difficulty
- Save outputs as notes or NPC presets for reuse in sessions
Example Use Cases
- Search and display the Fireball spell details
- Generate a random character for a one-shot session
- Build a CR5 encounter with Trolls and an Ogre (balanced roster)
- Create a tavern NPC with a name and trait
- Roll 2d20 with advantage for a quick test