A story tool your studio won't outgrow
.osf text files in your own Git repo. Writers get a visual editor. Developers get files they can diff, review and validate. And your story is never locked inside one tool. 1Dialogue 01_intro_scene { 2 3 Node node_01 { 4 next: node_02 5 speaker: protagonist 6 text: "Where am I?" 7 } 8 9 Node node_02 { 10 next: node_03 11 text: "Total darkness surrounds you." 12 } 13 14 Node node_03 { 15 speaker: protagonist 16 text: "Am I dreaming?" 17 18 Option node_03_option_01 { 19 next: node_04 20 set: { is_dreaming: true } 21 text: "Yes, you are." 22 } 23 Option node_03_option_02 { 24 next: Dialogue.02_shadows_speak 25 text: "No. Fool" 26 } 27 } 28}
One .osf file, two editors. Developers write and review it as code in VS Code; writers and narrative designers shape it visually in LoreHub.
Why an open foundation matters to your studio
LoreHub saves to an open format instead of a private database. Keep the files in Git next to your game, review every change in a pull request, and open them in any tool that speaks OSF. If you ever leave LoreHub, your story comes with you.
Validation checks the schema, every jump between dialogues, every character and variable reference, unreachable nodes and missing translations. The osf command line tool runs the same checks on every pull request.
Plain text with a strict schema is easy for AI assistants to read and write. Run validation on every AI edit to catch broken links and missing translations, then review it as a normal diff.
Every line has a stable key, and translations mirror your story files. For each language you decide whether a missing line blocks the build or falls back to the source, so you can ship a language early and finish it later.
Open Story Foundation is an open standard for interactive stories, started by the makers of LoreHub and open to any tool or engine.
Learn about OSFFrom a writer's edit to a playable scene
- 1Write
LoreHub or plain OSFA writer changes a scene in the LoreHub visual editor, or edits the .osf file directly in any text editor. Either way the result is a plain .osf file.
- 2ReviewYour Git host
The change arrives as a normal diff. A developer reviews it like any other pull request.
- 3Checkosf validate
Broken jumps, unknown characters and variables, unreachable nodes and missing translations are reported with file and line.
- 4Buildosf build
The project compiles to JSON or YAML, one resource per dialogue, character and variable.
- 5Play
CLI, LoreHub or your enginePlay the scene in the terminal with the osf CLI, in the LoreHub dialogue player, or load the JSON or YAML in your game engine.