Loresight
Offline companion for tabletop RPGs

The rulebook that hears what your table says.

Loresight listens to the game, spots spells, monsters and items as they're spoken, and puts them one tap away. So you stop flipping pages and keep the story moving.

Runs entirely on your device No account, no server Audio is never saved

GM Assistant on Android. The desktop app shows the same tiles on a wide dashboard. Open the demo

How it listens

Someone says a name. A tile appears.

Speech is turned into text on the device and matched against the names in your active system. Nothing else is recognised, nothing is uploaded, and the audio is discarded the moment it's transcribed. I built Loresight because I'm dyslexic, and finding the right info due to a hard to recall detail mid-session was the slowest part of running my games.

Listening · Dungeons & Dragons 5e
GM the water churns and an aboleth rises from the flooded hall Player I'm still under bless right? then I cast phantasmal force on it GM it makes the save. it reaches for you with a tentacle Player can I use my cloak of displacement

Aboleth

Monster Large aberration, lawful evil
CR10AC17 (natural armor)HP135 (18d10+36)Speed10 ft., swim 40 ft.

Phantasmal Force

Spell 2nd-level illusion
Cast1 actionRange60 feetDurationConcentration, up to 1 minute

Bless

Spell 1st-level enchantment
Cast1 actionRange30 feetDurationConcentration, up to 1 minute

Cloak of Displacement

Magic item Wondrous item, rare (requires attunement)

Common words stay spottable. Bless, Shield, Command and Light are all real spells, so Loresight is tuned to surface them rather than hide them. A stray tile costs a glance. A missing one costs the game a pause.

Three ways to run it

Pick how much help you want tonight.

MIC OFF

Codex

Browse and search every entity in the active system. Filter by type, open a full sheet, follow cross-references between entries.

MIC ON

GM Assistant

Live listening. Spoken names become tiles on a running dashboard with scrollable history, so you can tap back to that monster from ten minutes ago.

MIC ON · TRANSCRIPT

Notetaker

Everything GM Assistant does, plus a full session transcript with speaker-change markers (specific speakers are not recognised), consolidated into a saved session note when you stop.

I've also had a friend point out that they appreciated the keyword pop-ups and live transcript, as they may help a deaf or hard-of-hearing player follow the table. I can't claim that was intentional. It was a happy accident.

What's inside

Four systems on day one. Add your own.

Every system is data, not code. The shipped packs include only what each licence allows, and the same importer takes your homebrew or content you own.

SystemEditionEntries
Dungeons & Dragons 5eSRD 5.11,193
Dungeons & Dragons 5e (2024)SRD 5.2990
Pathfinder 2eRemaster (ORC)6,089
DaggerheartSRD 1.0535

Systems never mix: search, browse and listening vocabulary are scoped to the one you've picked. Switch with the dropdown in the sidebar.

Loresight Codex on desktop: the Monsters list for D&D 5e with the Aboleth sheet open, showing CR 10, AC 17, HP 135 and its traits Loresight Codex in dark mode: the Monsters list for D&D 5e with the Aboleth sheet open
Privacy

Your table stays at your table.

Loresight works with networking switched off. There is nothing to sign up for and nowhere for your session to go.

  • Speech recognition runs on the device. Live spotting uses Sherpa-onnx; session notes use Whisper. Neither needs the internet.
  • Audio is transcribed and discarded. No recording is ever written to disk, which is also why transcripts mark speaker changes rather than naming people.
  • Your notes and imports live in a local database. Export them as a content pack whenever you like. Nothing syncs unless you copy it yourself.
Download

Free to try on every platform you play on.

Android is the primary target and the best-tested build. Tablets, Windows, macOS and Linux are supported from the same codebase.

About the "unidentified developer" warning. Loresight is a one-person project with no budget for the code-signing certificates Windows and Apple charge for, so SmartScreen and Gatekeeper will warn you on first launch. The app is exactly the same either way. The install notes walk through the one-time step for each platform.

Bring your own content

Import your homebrew. Or a whole new game.

Every system in Loresight is a content pack: one JSON file describing the game's structure and its entries. Import one and it's browsable, searchable and spottable like everything else. Export any installed system to share it or use it as a template.

System pack

A complete system. Structure and content together. Creates the system or updates it in place.

Add to system

More entries for a system you already have. Drop a homebrew pack next to the official one. Nothing gets wiped, and your additions layer on top.

Bare system

Structure only. Entity types and fields with no content yet, to scaffold a brand-new game before you fill it.

Field values are stored and shown exactly as written. "8d6 fire" and "60 feet" are never parsed, so any game's text fits.

Loresight Import / Export screen in dark mode: choose Bare system, System pack or Add to system, pick a file or paste JSON, validate, then export or remove the four installed systems and their content packs
{
  "pack": { "name": "My Pack", "source": "homebrew", "author": "You" },
  "system": { "key": "my-system", "name": "My System",
              "resolution": { "type": "d20-check" } },
  "entity_types": [ { "key": "widget", "name": "Widget", "plural_name": "Widgets",
        "fields": [ { "key": "size", "type": "text", "searchable": true, "shown_in_list": true },
                    { "key": "description", "type": "richtext", "shown_in_detail": true } ] } ],
  "entities": [ { "type": "widget", "key": "sample-widget", "name": "Sample Widget",
                  "data": { "size": "Medium", "description": "..." } } ]
}

A minimal, valid pack. The fastest start is to export an installed system and edit that instead.

FAQ

Creating systems and content packs

What is a content pack?

A single JSON file bundling a complete game system: its structure (entity types and fields) and its content (entities). The app stores everything in a local SQLite database; the JSON pack is what you share. Export produces one, import reads it back.

What's the fastest way to start authoring?

Export an installed system from the Import/Export screen. Open the JSON, rename and edit the keys and values you want to change, then re-import it. You get a real, valid starting point and only need to understand the parts you're changing.

What does the JSON look like?

Four top-level keys: pack (metadata), system (the game definition), entity_types (the kinds of things in your system) and entities (the entries themselves). The skeleton above is a minimal valid example.

How do I define a system?

The system object needs key (a unique slug), name and resolution. Resolution is opaque: a required type string plus optional summary and params. The app never interprets it. Optional keys: edition, version, licence_note.

How do entity types and fields work?

Each entity type needs key, name, plural_name and fields. Each field needs key and type, one of text, int, richtext, bool or list. Flags control display and behaviour: label, searchable, filterable, shown_in_list, shown_in_detail and trigger.

Set a label on any field whose key isn't already readable, or "casting_time" shows up as CASTING_TIME. Fields with no value are skipped, so optional fields never leave an empty heading.

How do entities and their values work?

Each entity needs type (matching an entity-type key), key (unique within that type) and name. Optional aliases and data. Data is a free-form record keyed by field. Values are stored and displayed verbatim: "8d6 fire" stays "8d6 fire".

How does live name-spotting work?

In GM Assistant mode the app listens for entity names. A field contributes to spotting when it has trigger: true. An entity type can also set trigger_config with min_length, phonetic and alias_fields, and any entity can carry an aliases array of short names the spotter recognises alongside the main one.

What are the source and author fields for?

pack.source is one of official, third-party or homebrew. For third-party and homebrew packs pack.author is required so attribution travels with the pack. Only redistribute content you have the right to share.

Can I remove a system or pack again?

Yes. The Import/Export screen lists every installed system and pack with Export and Remove buttons. Removing a homebrew pack leaves the official pack it sat beside untouched.

Does any of this need the internet?

No. Import, export, search and listening all run on the device. The app works with networking switched off.