LoreHub is built on Open Story Foundation

A story tool your studio won't outgrow

LoreHub saves every dialogue, character and translation in the open Open Story Foundation (OSF) format: plain .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.
01_intro_scene.osf  ·  VS Code
Code
 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}
LoreHub  /  arc_1_war  /  01_intro_scene.osf
Visual
node_01 · protagonistWhere am I?node_02 · narrationTotal darkness surrounds you.node_03 · protagonistAm I dreaming?Yes, you are.is_dreaming = trueNo. Foolnode_04 · narrationStrangejump to dialogue02_shadows_speak

One .osf file, two editors. Developers write and review it as code in VS Code; writers and narrative designers shape it visually in LoreHub.

Open foundation

Why an open foundation matters to your studio

.osfin your Git repoLoreHubvisual editorVS CodecodePull requestsreview diffsOther OSF toolsand AI tools
Your story stays yours

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.

Example output
Catch story bugs before QA does

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.

AI draftnew scene.osfplain textValidate✓ checksReviewyour teamerrors go back before anyone merges
Ready for AI, with a safety net

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.

Dialogue.01_intro_scene.nodes.node_03.content.text
Eng
Am I dreaming?
source
Rus
Я сплю?
enforced ✓
Zho
我在做梦吗?
enforced ✓
Jpn
Am I dreaming?
falls back to Eng
Translations built in

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 format
Plain text in Git
Versioned spec, upgrades are explicit
How a change reaches your game

From a writer's edit to a playable scene

  1. 1
    Write
    LoreHub
    LoreHub or plain OSF

    A 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.

  2. 2
    Review
    Your Git host

    The change arrives as a normal diff. A developer reviews it like any other pull request.

  3. 3
    Check
    osf validate

    Broken jumps, unknown characters and variables, unreachable nodes and missing translations are reported with file and line.

  4. 4
    Build
    osf build

    The project compiles to JSON or YAML, one resource per dialogue, character and variable.

  5. 5
    Play
    LoreHub
    CLI, LoreHub or your engine

    Play the scene in the terminal with the osf CLI, in the LoreHub dialogue player, or load the JSON or YAML in your game engine.

FAQ

Questions studios ask first

Something else on your mind? Ask us on the demo call.

Book a demo

See it with one of your scenes

We'll show the editor, look at how your team writes dialogue today, and work out what a trial on one scene would take. Bring your narrative lead and whoever owns the tools, or come alone.
A tour of the editor
How your team writes dialogue today
What a trial on one scene would take
Open the booking page