SkillsWeaver is an interactive tabletop RPG engine powered by Claude Code created by Nicolas Martignole. The engine is based on Dungeon&Dragon v5.2 French version rules. It combines AI orchestration with Go CLI tools to create a complete role-playing experience.
You can watch a sample game session on my YouTube channel - English subtitles available
June 2026:
- ๐ฎ Fortune-Teller Wizard (
/adventure) - A guided adventure creator where a seer has you draw tarot cards; each card secretly shapes the adventure (tone, antagonist, region, danger, pacing), grounded in the Four Kingdoms lore - ๐ Tarot deck & scene art - Card and UI visuals generated via fal.ai (
sw-image tarot-deck,sw-image voyante-assets) - ๐ง Hero selector - Pick a subset of your heroes for an adventure (not always the whole party)
- โ๏ธ Auto-suggested adventure name - An evocative, editable title proposed from your reading
- ๐ซ๐ท French campaign-plan prompt - Generation instructions and world geography reference fully in French for more coherent French output
February 2026:
- โจ Web Interface (
sw-web) - Create adventures and play in your browser - ๐ Automatic Campaign Plans - Generate 3-act structures with themes
- ๐ฎ Model Selector - Switch between Haiku, Sonnet, Opus during gameplay
- ๐บ๏ธ Tactical Maps - Display combat maps inline in web interface
- ๐ Auto-Treasure - Automatic treasure generation after combat
- ๐ Level-Up Tools -
update_character_statandlong_restfor character progression - ๐ D&D 5e Only - Complete transition from Basic Fantasy RPG to D&D 5e SRD
SkillsWeaver offers two ways to play:
The web interface (sw-web) provides the easiest way to create adventures and play:
# Build the tools
make build
# Set your Anthropic API key
export ANTHROPIC_API_KEY="your_key"
# Optional: Set fal.ai key for image generation
export FAL_KEY="your_fal_key"
# Launch the web server
./sw-web
# Open your browser at http://localhost:8085Features:
- ๐ Modern Web UI with Dark Fantasy theme
- ๐ฎ Create adventures directly from the browser
- ๐ค Automatic campaign plan generation (3-act structure)
- ๐ฅ Character management with party overview
- ๐ฌ Real-time streaming responses via SSE
- ๐บ๏ธ Tactical maps displayed inline
- ๐ Live journal with session tracking
- ๐จ AI-generated images shown during gameplay
- ๐ฑ Model selector - Switch between Haiku, Sonnet, Opus
The CLI (sw-dm) provides a terminal-based REPL experience:
# Build the tools
make build
# Set your Anthropic API key
export ANTHROPIC_API_KEY="your_key"
# Launch the Dungeon Master
./sw-dmFeatures:
- ๐ญ Streaming narrative responses
- ๐ฒ Automatic dice rolling and rule application
- ๐ Adventure state management (party, inventory, journal)
- ๐จ Optional AI image generation during gameplay
- โจ๏ธ Full readline support with history
Note: While Claude Code can also orchestrate gameplay using the agents and skills in this repository,
sw-webandsw-dmprovide more streamlined and immersive experiences for actual game sessions.
You have three options to create adventures and characters:
The web interface makes adventure creation effortless:
# Start the web server
./sw-web
# Open http://localhost:8085 in your browserCreating an Adventure โ two paths from the homepage:
๐ฎ "Consult the fortune teller" (guided wizard, recommended) โ opens /adventure:
- A seer greets you, then asks 5 questions; for each you draw one of 3 tarot cards.
- Each card silently sets a hidden parameter of the adventure โ tone, antagonist, region, danger, pacing โ woven into the Four Kingdoms lore. You are never told what each card means (inspired by Ultima IV's gypsy).
- Pick which heroes join (all selected by default; uncheck to play with just one or two).
- The seer suggests an adventure name (editable), you can add an optional free-text "intuition", then "Consult the destiny".
- A unique destiny card is revealed, then you're taken into the game.
Tip: append
?debug=1to/adventureto walk the draw and inspect the full generated prompt without creating anything (useful for development).The card art and scene visuals live under
web/static/cards/andweb/static/voyante/. Regenerate them with./sw-image tarot-deckand./sw-image voyante-assets(needsFAL_KEYorGEMINI_API_KEY).
โก "Quick create" (classic form):
- Click "Quick create" on the homepage
- Fill in the form: Name, Description, Duration, Adventure type, optional Theme
- Click "Create"
What happens automatically (both paths):
โ If a theme / reading is provided:
- Generates a complete 3-act campaign plan (beginning, twists, final confrontation)
- Creates main antagonist with motivations and arc
- Defines 2-3 critical foreshadows linked to acts
- Plans pacing (estimated sessions, duration)
- Sets MacGuffins and important locations
โ
Copies the chosen heroes from data/characters/ to the adventure (the wizard lets you pick a subset; quick-create copies all)
โ
Creates party.json from those characters
โ
Initializes inventory, journal, and session tracking
โ
Keeps the new adventure coherent with recent active adventures, avoiding reuse of their NPC names and plots
Starting a Game Session:
- Click "Play" on the adventure card
- The Dungeon Master loads automatically with full context:
- Campaign plan briefing (hidden from players)
- Party composition
- Current location and gold
- Recent journal entries
- Start chatting with the DM via the message box
- Real-time streaming responses appear instantly
- Images, maps, and tactical scenes display inline
During Gameplay:
- Left Panel: Party status (HP, AC, level), shared inventory, recent journal
- Center: Conversation with streaming DM responses
- Model Selector: Switch between Haiku (fast), Sonnet (balanced), Opus (best)
- Images: Generated images appear automatically in the chat
- Tactical Maps: Combat maps display when generated
Let Claude Code guide you through the entire process step by step:
Step 1: Ask Claude Code to create characters
In Claude Code, simply say:
"I want to create a new adventure. Help me create characters first."
Claude Code will:
- Launch the
character-creatoragent - Guide you through choosing species, class, and abilities
- Generate stats using 4d6 keep highest 3 (or standard array)
- Apply species modifiers automatically
- Help you select skills, combat style, and background
- Save the character automatically
Example conversation:
You: "I want to create a new adventure. I need characters first."
Claude: "Let me help you create characters. How many do you want to create?
For a balanced party, I recommend 3-4 characters:
- 1 Tank/Fighter
- 1 Ranged/Rogue
- 1 Support/Healer"
You: "Create a human male fighter, 39 years old, veteran soldier"
Claude: [Launches character-creator agent]
"Excellent choice! Let's create Marcus Sanggo.
Rolling stats with 4d6 keep highest 3...
[Shows stats]
For a Fighter, I suggest: STR 16, DEX 14, CON 15...
[Guides through choices]"
[Process repeats for each character]
Step 2: Create the adventure
Once you have 2-4 characters, tell Claude Code:
"Now create an adventure called 'The Magic Sextant of Cordova'"
Claude Code will:
- Create the adventure with
sw-adventure create - Add all your characters to the party automatically
- Initialize inventory, journal, and session tracking
- Show you the adventure status
Step 3: Start playing
./sw-dm
# Select your adventure from the menu
# The game begins!If you prefer direct control, use the CLI tools:
Create characters:
# Create a fighter
./sw-character create "Marcus Sanggo" \
--species=human \
--class=fighter \
--str=16 --dex=14 --con=15 --int=11 --wis=13 --cha=12
# Create a rogue
./sw-character create "Lyra" \
--species=elf \
--class=rogue \
--str=10 --dex=18 --con=14 --int=12 --wis=16 --cha=10
# Create a bard
./sw-character create "Caelian Aurelmoor" \
--species=human \
--class=bard \
--str=9 --dex=14 --con=13 --int=12 --wis=11 --cha=15Create adventure and add characters:
# Create the adventure
./sw-adventure create "my-adventure"
# Add characters to the party
./sw-adventure add-character "my-adventure" "Marcus Sanggo"
./sw-adventure add-character "my-adventure" "Lyra"
./sw-adventure add-character "my-adventure" "Caelian Aurelmoor"
# Verify setup
./sw-adventure status "my-adventure"Start playing:
./sw-dm
# Select your adventure and play!Balanced Party Composition:
- Tank/DPS: Fighter, Barbarian, Paladin (high STR/CON, heavy armor)
- Ranged/Scout: Rogue, Ranger (high DEX, stealth, ranged attacks)
- Support/Healer: Bard, Cleric (CHA/WIS, healing spells, buffs)
- Caster: Wizard, Sorcerer, Warlock (INT/CHA, powerful spells)
Stat Priorities by Class:
- Fighter/Barbarian: STR > CON > DEX
- Rogue/Ranger: DEX > WIS/INT > CON
- Bard/Cleric: CHA/WIS > CON > DEX
- Wizard/Sorcerer: INT/CHA > CON > DEX
Using the World Context:
The project includes a rich world with 4 kingdoms (data/world/factions.json):
- Valdorine: Maritime merchant kingdom (Cordova capital)
- Karvath: Military empire (honor, discipline)
- Lumenciel: Religious theocracy (conversion, influence)
- Astrรจne: Declining scholarly kingdom (culture, magic)
You can create characters tied to these kingdoms for richer roleplay!
After setup, your file structure will look like:
data/
โโโ characters/
โ โโโ marcus-sanggo.json
โ โโโ lyra.json
โ โโโ caelian-aurelmoor.json
โโโ adventures/
โโโ my-adventure/
โโโ adventure.json # Adventure metadata
โโโ party.json # Your 3 characters
โโโ inventory.json # Shared inventory
โโโ sessions.json # Session history
โโโ journal-meta.json # Journal metadata
โโโ journal-session-0.json # Pre-session journal
SkillsWeaver demonstrates how to build a complex, multi-tool AI application using Claude Code's skills and agents system. It includes:
- ๐ Web Interface (
sw-web) - Modern browser-based UI with automatic campaign planning - ๐ค Autonomous Dungeon Master (
sw-dm) - CLI REPL with full agent loop and tool use - ๐ฒ Dice rolling with standard RPG notation (2d6+3, 4d6kh3, advantage/disadvantage)
- ๐ค Character generation following D&D 5e rules (9 species, 12 classes)
- ๐ Adventure management with session tracking and automatic journaling
- ๐ญ NPC generation with personalities, motivations, and secrets
- ๐จ AI image generation for characters, scenes, and monsters via fal.ai
- ๐น Monster manual based on official D&D 5e SRD (300+ monsters)
- ๐ Treasure generation following D&D 5e treasure tables
- ๐บ๏ธ Map generation with tactical, city, region, and dungeon maps
- โ๏ธ Equipment & Spells catalogs with complete stats
You can install Claude Code, Anthropic's official CLI for Claude if you want to test skills or each Agents. Else, use directly the go cli with a valid ANTHROPIC API key.
Go 1.25 is required to build the CLI tools:
# macOS
brew install go
# Or download from https://go.dev/dl/OPTIONAL for sw-image and sw-dm (image generation)
Get your API key from fal.ai and set it:
export FAL_KEY="your_fal_ai_api_key"The sw-dm Dungeon Master can generate images during gameplay if FAL_KEY is configured. The skill-based sw-image tool also uses it for character portraits and scene illustrations.
REQUIRED for sw-dm (Dungeon Master agent)
OPTIONAL for sw-adventure enrich (journal enrichment)
The autonomous Dungeon Master (sw-dm) requires direct access to Claude API for the agent loop. The sw-adventure enrich command also uses it for bilingual journal descriptions.
Get your API key from Anthropic Console and set it:
export ANTHROPIC_API_KEY="your_anthropic_api_key"Usage:
sw-dm: Uses Claude Haiku 4.5 for fast, immersive game sessions (~$1/M input tokens, ~$5/M output tokens)sw-adventure enrich: Uses Claude Haiku 4.5 for cost-effective descriptions (~$0.0003 per entry)
make buildOr manually:
go build -o sw-web ./cmd/web # Web interface
go build -o sw-dm ./cmd/dm # CLI Dungeon Master
go build -o sw-dice ./cmd/dice
go build -o sw-character ./cmd/character
go build -o sw-adventure ./cmd/adventure
go build -o sw-names ./cmd/names
go build -o sw-npc ./cmd/npc
go build -o sw-image ./cmd/image
go build -o sw-monster ./cmd/monster
go build -o sw-treasure ./cmd/treasure
go build -o sw-equipment ./cmd/equipment # Equipment browser
go build -o sw-spell ./cmd/spell # Spell referenceclaudeOnce in Claude Code, the skills are automatically discovered. Try:
- "Roll 4d6 keep highest 3" โ Uses dice-roller skill
- "Create a dwarf fighter named Thorin" โ Uses character-generator skill
- "Generate a portrait for Thorin" โ Uses image-generator skill
- "Start a new adventure called The Lost Mine" โ Uses adventure-manager skill
The sw-web binary provides a modern web interface for creating adventures and playing game sessions through your browser.
- ๐ Web-Based UI: No terminal required - play in your browser
- ๐ฎ Fortune-Teller Wizard: Guided creation at
/adventureโ draw tarot cards that secretly shape the adventure, pick your heroes, get an auto-suggested name - ๐ฎ Adventure Creation: Create adventures with automatic campaign plan generation (guided wizard or quick form)
- ๐ Campaign Plans: Automatic 3-act structure with antagonists, foreshadows, and pacing
- ๐ฅ Party Management: View party status (HP, AC, level) in real-time
- ๐ฌ Streaming Chat: Real-time DM responses via Server-Sent Events (SSE)
- ๐จ Inline Media: Images, maps, and tactical scenes display directly in chat
- ๐ Live Journal: See events logged as they happen
- ๐ Model Selector: Switch between Haiku (fast), Sonnet (balanced), Opus (best quality)
- ๐ฑ Responsive: Works on desktop and tablet devices
Browser (localhost:8085)
โ HTTP/SSE
sw-web (Gin server)
โ Manage sessions
SessionManager
โ Per-adventure
Agent Loop (dungeon-master)
โ Tool calls
Go Packages (dice, monster, treasure, etc.)
| Method | Path | Description |
|---|---|---|
| GET | / |
Homepage with adventure list |
| GET | /adventures |
Get adventures (HTMX) |
| POST | /adventures |
Create new adventure (quick form) |
| GET | /adventure |
Fortune-teller creation wizard (?debug=1 to inspect without creating) |
| POST | /adventure |
Create adventure from the card reading |
| POST | /adventure/suggest-name |
Suggest an adventure name from the reading |
| GET | /adventure/destiny/:slug |
Poll for the generated destiny card |
| GET | /play/:slug |
Game interface |
| POST | /play/:slug/message |
Send message to DM |
| GET | /play/:slug/stream |
SSE endpoint for streaming |
| GET | /play/:slug/characters |
Party status (HTMX) |
| GET | /play/:slug/info |
Adventure info (HTMX) |
| GET | /play/:slug/images/* |
Generated images |
- One session per adventure (single-player focused)
- 30-minute timeout after last activity
- Automatic cleanup of expired sessions
- State persistence in adventure directory
# Build
go build -o sw-web ./cmd/web
# Run (default port 8085)
./sw-web
# Custom port
./sw-web --port=3000
# Debug mode (verbose logging)
./sw-web --debug
# Open browser
open http://localhost:8085export ANTHROPIC_API_KEY="your_key" # Required
export FAL_KEY="your_fal_key" # Optional (for images)The sw-dm binary is a standalone Go application that acts as an autonomous Dungeon Master using the Anthropic API directly. Unlike the Claude Code skills that require manual orchestration, sw-dm runs a complete agent loop with tool use in a terminal REPL.
- Full Agent Loop: User โ Claude โ Tool Use โ Execution โ Claude โ Response
- Streaming Responses: Real-time text streaming for immersive narrative
- Adventure Auto-Loading: Automatically loads party, inventory, journal, and game state
- Direct Go Package Calls: Tools call internal Go packages directly (no subprocess execution)
- Interactive REPL: Command-line interface with conversation history
- Context Management: Smart truncation to stay under token limits
The Dungeon Master has access to these tools during gameplay:
| Tool | Purpose |
|---|---|
roll_dice |
Roll dice with RPG notation (d20, 2d6+3, 4d6kh3) |
get_monster |
Look up monster stats from the bestiary |
log_event |
Record events in the adventure journal |
add_gold |
Modify the party's gold |
get_inventory |
Check the shared inventory |
generate_treasure |
Generate treasure using D&D 5e tables |
generate_npc |
Create NPCs with personality and motivations |
generate_image |
Generate fantasy-style images from prompts (requires FAL_KEY) |
# Launch the Dungeon Master
./sw-dm
# Select your adventure from the menu
# The DM loads the full context and starts the REPL
> We enter the dark corridor cautiously
[DM narrates and rolls dice automatically]
> I attack the goblin with my longsword
[DM rolls attack, damage, updates journal]
> exit============================================================
La Crypte des Ombres
============================================================
๐ Lieu: Niveau Infรฉrieur - Grande Chambre Funรฉraire
๐ฐ Or: 1593 po
๐ฅ Groupe:
- Aldric (human fighter, niveau 1)
- Lyra (elf magic-user, niveau 1)
- Thorin (dwarf cleric, niveau 1)
- Gareth (human fighter, niveau 1)
๐ Derniรจre action: Une crรฉature scellรฉe par des chaรฎnes de
mithril respire au centre de la chambre...
============================================================
> Aldric s'approche prudemment de la crรฉature
[๐ฒ roll_dice: Perception check]
Le Maรฎtre du Jeu lance les dรฉs...
Aldric avance avec prรฉcaution. Les chaรฎnes de mithril tintent
lรฉgรจrement ร chaque respiration de la crรฉature. Son marteau
Frappe-Juste รฉmet une faible lueur bleue, rรฉagissant ร une
prรฉsence magique puissante...
[โ log_event: Aldric approaches the chained creature]
sw-dm
โโโ internal/agent/
โ โโโ agent.go # Main agent loop
โ โโโ tools.go # Tool registry
โ โโโ context.go # Conversation & adventure context
โ โโโ streaming.go # Event processing
โโโ internal/dmtools/ # Tool implementations
โโโ cmd/dm/main.go # REPL application
Claude Code Skills (.claude/skills/):
- Best for: Collaborative development, learning, exploring
- User controls flow and decisions
- Claude Code provides IDE integration
Autonomous DM (sw-dm):
- Best for: Actual gameplay sessions
- DM controls flow and makes decisions autonomously
- Faster, more immersive experience
- Direct API access with streaming
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude Code โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Skills โ โ Agents โ โ CLI Tools โ โ
โ โ (markdown) โโโโ (markdown) โโโโ (Go) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Orchestration Layer โ โ
โ โ - Skill discovery and invocation โ โ
โ โ - Agent delegation for complex tasks โ โ
โ โ - Tool execution (Bash, Read, Write...) โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ
โ data/ โ โ fal.ai โ โ Terminal โ
โ (JSON) โ โ (images) โ โ (output) โ
โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ
Markdown files that teach Claude how to use specific tools:
dice-roller- Roll dice with RPG notationcharacter-generator- Create D&D 5e charactersadventure-manager- Manage campaigns and sessionsname-generator- Generate fantasy names by speciesnpc-generator- Create NPCs with personalities and secretsimage-generator- Generate fantasy illustrationsjournal-illustrator- Illustrate adventure journalsmonster-manual- Monster stats and encounterstreasure-generator- Generate treasure using D&D 5e tablesequipment-browser- Browse weapons, armor, and gearspell-reference- Spell details by class and level
Specialized sub-agents for complex tasks:
dungeon-master- Run game sessions with narrativecharacter-creator- Guide players through character creationrules-keeper- Answer rules questions
Go binaries that perform the actual work:
sw-web- Web interface for adventure creation and gameplay (port 8085)sw-dm- Autonomous Dungeon Master with full agent loop (CLI REPL)sw-dice- Dice rolling enginesw-character- Character managementsw-adventure- Adventure/campaign trackingsw-names- Fantasy name generationsw-npc- NPC generation with personalitiessw-image- Image generation via fal.aisw-monster- Monster stats and encounterssw-treasure- Treasure generationsw-equipment- Equipment catalog (weapons, armor, gear)sw-spell- Spell reference (divine and arcane)
The journal enrichment feature automatically generates detailed, bilingual descriptions for your adventure log using Claude AI. These descriptions are optimized for image generation and provide rich context.
# Preview entries that need enrichment (dry-run mode)
./sw-adventure enrich "my-adventure" --dry-run
# Enrich all entries without descriptions
./sw-adventure enrich "my-adventure"
# Enrich only recent entries
./sw-adventure enrich "my-adventure" --recent=10
# Enrich entries from a specific session
./sw-adventure enrich "my-adventure" --session=2
# Re-generate existing descriptions (force mode)
./sw-adventure enrich "my-adventure" --force
# Preview with filters
./sw-adventure enrich "my-adventure" --from=50 --to=100 --dry-runThe AI generates descriptions following these guidelines:
- Length: 30-50 words per description
- Format: [Characters] + [Location] + [Action] + [Atmosphere] + [Visual Details]
- Languages: English (for image generation) + French (for readability)
- Context-aware: Uses party composition, recent events, and session info
Example output:
Entry 88 [note]:
๐ EN: Aldric, Lyra, Thorin, and Gareth stand before Mother Isabelle in the
candlelit halls of the Convent, their burden lifted as the abbess
accepts stewardship of the pilgrimage to Twilight Mountain.
๐ FR: Aldric, Lyra, Thorin et Gareth se tiennent devant Mรจre Isabelle dans
les salles du Couvent illuminรฉes aux chandelles, soulagรฉs de leur
fardeau tandis que l'abbesse accepte la garde du pรจlerinage.
After enriching your journal, automatically generate images for key moments:
# Preview what would be generated
./sw-image journal "my-adventure" --dry-run
# Generate images (parallel, fast)
./sw-image journal "my-adventure"
# Use a higher quality model with a valid fal.ai key
./sw-image journal "my-adventure" --model=banana
# Only combat scenes
./sw-image journal "my-adventure" --types=combatOutput:
data/adventures/my-adventure/images/
โโโ journal_002_exploration_schnell.png
โโโ journal_008_combat_schnell.png
โโโ journal_015_discovery_schnell.png
โโโ journal_029_session_schnell.png
The /adventure wizard uses a static tarot deck and scene visuals. Generate them once (re-runs skip what already exists):
# Preview the prompts without generating
./sw-image tarot-deck --dry-run
# Generate the tarot deck into web/static/cards/ (use fal.ai explicitly)
./sw-image tarot-deck --provider=fal --model=flux-2-pro
# Generate the scene visuals (tent background, banner, seer portrait, velvet table)
./sw-image voyante-assets --provider=fal
# Force regeneration of everything
./sw-image tarot-deck --force--provider accepts auto (GEMINI then FAL), fal, or google.
| Model | Speed | Cost/image | Use Case |
|---|---|---|---|
schnell |
~3s | ~$0.003 | Fast iterations, drafts, testing |
banana |
~5s | ~$0.039 | Better quality, final renders |
Cost comparison for 20 images:
- schnell: 20 ร $0.003 = $0.06
- banana: 20 ร $0.039 = $0.78
skillsweaver/
โโโ .claude/
โ โโโ skills/ # Claude Code skills
โ โโโ agents/ # Specialized sub-agents
โโโ cmd/ # Go CLI source code
โ โโโ web/ # sw-web (Web interface)
โ โโโ dm/ # sw-dm (CLI Dungeon Master)
โ โโโ dice/ # sw-dice
โ โโโ character/ # sw-character
โ โโโ adventure/ # sw-adventure
โ โโโ names/ # sw-names
โ โโโ npc/ # sw-npc
โ โโโ image/ # sw-image
โ โโโ monster/ # sw-monster
โ โโโ treasure/ # sw-treasure
โ โโโ equipment/ # sw-equipment
โ โโโ spell/ # sw-spell
โโโ internal/ # Go packages
โ โโโ web/ # Web server (Gin, SSE, sessions)
โ โ โโโ server.go # HTTP server config
โ โ โโโ handlers.go # Request handlers
โ โ โโโ session.go # Session management
โ โ โโโ web_output.go # SSE output handler
โ โโโ agent/ # Agent loop orchestration
โ โ โโโ agent.go # Main agent loop
โ โ โโโ agent_manager.go # Nested agent invocation
โ โ โโโ persona_loader.go # Dynamic persona loading
โ โ โโโ tools.go # Tool registry
โ โ โโโ context.go # Context management
โ โ โโโ streaming.go # Event processing
โ โโโ dmtools/ # Tool implementations for DM
โ โ โโโ agent_invocation_tool.go # invoke_agent
โ โ โโโ skill_invocation_tool.go # invoke_skill
โ โ โโโ ...
โ โโโ dice/ # Dice rolling logic
โ โโโ character/ # Character management
โ โโโ adventure/ # Adventure management
โ โโโ monster/ # Bestiary
โ โโโ treasure/ # Treasure generation
โ โโโ npc/ # NPC generation
โ โโโ names/ # Name generation
โ โโโ image/ # Image generation
โ โโโ equipment/ # Equipment catalog
โ โโโ spell/ # Spell reference
โโโ web/ # Web assets
โ โโโ templates/ # HTML templates
โ โ โโโ index.html # Homepage (adventure list)
โ โ โโโ game.html # Game interface
โ โ โโโ partials/ # Reusable components
โ โโโ static/ # CSS and JavaScript
โ โโโ css/fantasy.css # Dark Fantasy theme
โ โโโ js/app.js # SSE client
โโโ data/
โ โโโ characters/ # Saved characters (JSON)
โ โโโ adventures/ # Saved adventures (JSON)
โ โ โโโ <adventure>/
โ โ โโโ adventure.json # Metadata
โ โ โโโ campaign-plan.json # 3-act structure
โ โ โโโ party.json # Party composition
โ โ โโโ inventory.json # Shared inventory
โ โ โโโ agent-states.json # Agent conversations
โ โ โโโ sessions.json # Session history
โ โ โโโ journal-meta.json # Journal metadata
โ โ โโโ journal-session-*.json
โ โ โโโ images/
โ โ โโโ session-*/ # Images by session
โ โโโ world/ # World data
โ โ โโโ factions.json # 4 kingdoms
โ โ โโโ geography.json # Regions and cities
โ โ โโโ npcs.json # World NPCs (promoted)
โ โโโ monsters.json # Bestiary
โ โโโ treasure.json # Treasure tables
โ โโโ names.json # Name dictionaries
โโโ CLAUDE.md # Project instructions for Claude
โโโ README.md # This file
SkillsWeaver is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.
This means you are free to:
- Share โ copy and redistribute the material
- Adapt โ remix, transform, and build upon the material
As long as you:
- Give attribution to Nicolas MARTIGNOLE (the original author)
- Share alike โ distribute your contributions under the same license
SkillsWeaver builds upon:
- Claude Code - ยฉ Anthropic
- fal.ai - Image generation API
This work includes material taken from the Lazy GM's Resource Document by Michael E. Shea of SlyFlourish.com, available under a Creative Commons Attribution 4.0 International License.
This work includes material taken from the System Reference Document 5.1 ("SRD 5.1") by Wizards of the Coast LLC and available at https://dnd.wizards.com/resources/systems-reference-document. The SRD 5.1 is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/legalcode.
See the LICENSE file for full legal details.
This engine and the original idea is from Nicolas MARTIGNOLE, Principal Engineer at Back Market and Devoxx France's creator/organizer.
You can reach Nicolas by email: nicolas.martignole@devoxx.fr
