storyforge

the dice shape everything.

Play a story you'd actually want to read.

“The note said Mira Grenn. Daughter. Twelve years. Saw you leave.”

Read the Tales of Storyforge →
Powered by Claude. Bring your own API key for unlimited play.Open Source on GitHub

Six worlds. One engine.

Year 3187. The Compact that once unified 200 star systems has collapsed. You command a scrappy frigate with a small crew, navigating a galaxy where pirate fleets, corporate blocs, and rogue AIs compete for what's left. You're not a chosen hero. You're just in the wrong place.

Scale mismatch — small people, big stakes.
Species
Human

Human

Adaptable, widespread, politically dominant in most systems.

Vrynn

Vrynn

Insectoid. Chitinous plating, compound eyes, darkvision.

Korath

Korath

Broad, dense-boned, grey-skinned. Built for heavy gravity worlds.

Sylphari

Sylphari

Tall, luminescent markings, low-light adapted.

Zerith

Zerith

Lean, scaled, cold-blooded. Fast reflexes, poor endurance in sustained cold.

Classes
Driftrunner
Smuggler / Infiltrator
DEX
Vanguard
Frontline Soldier / Tank
STR
Technomancer
Hacker / Tech Specialist
INT
Diplomat
Face / Negotiator / Leader
CHA
Medic
Field Doctor / Survivalist
WIS
Ace
Pilot / Sharpshooter
DEX

See it in action.

Chapter 1: Trouble at Orja-9

storyforgeChapter 1: Trouble at Orja-9
The airlock hisses open. Beyond it, Orja-9's docking ring stretches in both directions — rusted gantries, flickering nav-lights, and the smell of recycled air cut with engine grease. Your contact said Bay 7. You're standing at Bay 12.

Find a vantage point first

You spot a maintenance catwalk above the main corridor. The ladder's missing two rungs, but it'll do.
Perception Check
17 +2 = 19 vs DC 12 — SUCCESS
17
From up here you can see Bay 7 clearly. Two figures in dock-worker coveralls, but they're standing wrong — weight forward, hands empty, watching the corridor instead of working. Your contact is nowhere in sight.
Or type your own action...

Everything at your fingertips.

Character sheet, NPCs, tension clocks, promises — one slide away.

CharacterShipWorldChapters

Kael Voss

Vrynn Driftrunner · Level 3

HP22 / 28
AC14
Credits340
Inspiration◇ —

Stats

STR
8
-1
DEX
16
+3
CON
12
+1
INT
14
+2
WIS
13
+1
CHA
10
+0

Class Trait

Smuggler's Luck
Once per day, when caught or cornered, one contraband item goes undetected.
CharacterShipWorldChapters
PeopleNarrativeLocations

Crew

Rix
Vrynn mechanic. Sarcastic but loyal.

Known NPCs

Sable
Fixer. Owes you a favor.
Director Voss
Station authority. Suspicious.
Oshi
Missing. Last seen Verath Station.

Antagonist

The Broker
Controls Orja-9's black market. Knows you're here.

Tales of Storyforge.

Real playthroughs, adapted into short fiction. Every story started with a dice roll.

Not a chatbot wearing a fantasy hat.

Real mechanics. Real consequences. The AI enforces the rules, including on itself.

NPCs That Remember

Every NPC tracks disposition toward you. Betray someone and they stay hostile. Earn trust and doors open. No dialogue trees, just consequences.

Promises & Clocks

Make a promise to an NPC and the game tracks it. Defer too long and it strains. Tension clocks advance whether you're ready or not.

D20 Under The Hood

Real ability scores, proficiency, advantage/disadvantage. Every roll is shown with the math. The dice are honest, and Claude plays by them.

How it works.

No account needed

Your game saves to your browser. No signup, no cloud, no tracking. Your story stays on your device.

Bring your own API key

Get a Claude API key from Anthropic and play unlimited. Your key stays in your browser and is never sent to our servers. Cost per chapter is under 1€.

Free demo

Try a few chapters without an API key. There's a limited monthly token budget for the demo, then you'll need your own key.

Open source

The full codebase is on GitHub. Run your own instance, read the code, contribute. Licensed under AGPL-3.0.

Your story is waiting.

Try the demo for free, or bring your own Claude API key for unlimited play. No account required.

Built by one person with Claude Code.

Buy me a beer