DM Hub
AI Console
Map & Combat
Bestiary
Notes
AI Suggestions
Text Overlay
Combat Mode
Round
{{ displayState.combat_data.round_number || 1 }}
Current Turn
{{ currentTurnName }}
{{ p.initiative }}
{{ p.name }}
HP: {{ p.hp }}/{{ p.max_hp }}
AC: {{ p.ac }}
Combat is not currently active.
{{ msg.role === 'user' ? 'DM' : 'Assistant' }}
{{ msg.timestamp }}
{{ msg.content }}
Last AI Response
{{ lastAIResponse.response_text }}
No chat history yet. Ask the DM Assistant a question or describe a scene.
AI is thinking...
TIP: describe actions to update campaign state
{{ c.name }}
CR {{ c.challenge_rating }} β {{ c.type }}
{{ creatureStats.name }}
CR {{ creatureStats.challenge_rating }}
AC:{{ creatureStats.armor_class }}
HP:{{ creatureStats.hit_points }}
Speed:{{ creatureStats.speed }}
Size/Type:{{ creatureStats.size }} {{ creatureStats.type }}
{{ item.name || 'AI Suggestion' }}
No pending suggestions
Your Campaigns
| Campaign Name | Adventure | Players | Created | Actions |
|---|---|---|---|---|
|
{{ c.name }}
Active
|
{{ c.adventure_name || 'Homebrew' }} | {{ c.players ? c.players.length : 0 }} | {{ c.created ? new Date(c.created).toLocaleDateString() : 'Unknown' }} |
|
No campaigns found. Create your first one!
Sources & Documents
Adventure Modules
Sourcebooks
RAG Library
Active Imports
{{ task.status }}
{{ task.progress }}%
Error: {{ task.error }}
Adventure Modules
{{ adv.name }}
No adventure modules found. Import your first one!
Sourcebooks
| Title | Last Processed | Actions |
|---|---|---|
|
{{ sb.title }}
|
{{ sb.last_processed || 'N/A' }} |
|
No sourcebooks found. Import your first one!
RAG Library
| Filename | Parent | Category | Size | Status | Actions |
|---|---|---|---|---|---|
| {{ pdf.filename }} | {{ pdf.parent || '-' }} | {{ pdf.source_type || '-' }} | {{ pdf.size_mb }} MB | Indexed Not Indexed |
|
No PDFs found in the RAG source directory.
Character Library
| Name | Class & Level | Stats | Actions |
|---|---|---|---|
|
{{ char.character_name }}
|
{{ char.class || char.class_name }} {{ char.level }} | HP: {{ char.hp }}/{{ char.max_hp }} | AC: {{ char.ac }} |
|
No characters found in library.