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.
GM Assistant on Android. The desktop app shows the same tiles on a wide dashboard. Open the demo
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.
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.
Browse and search every entity in the active system. Filter by type, open a full sheet, follow cross-references between entries.
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.
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.
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.
| System | Edition | Entries |
|---|---|---|
| Dungeons & Dragons 5e | SRD 5.1 | 1,193 |
| Dungeons & Dragons 5e (2024) | SRD 5.2 | 990 |
| Pathfinder 2e | Remaster (ORC) | 6,089 |
| Daggerheart | SRD 1.0 | 535 |
Systems never mix: search, browse and listening vocabulary are scoped to the one you've picked. Switch with the dropdown in the sidebar.
Loresight works with networking switched off. There is nothing to sign up for and nowhere for your session to go.
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.
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.
A complete system. Structure and content together. Creates the system or updates it in place.
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.
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.

{
"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.
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.
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.
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.
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.
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.
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".
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.
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.
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.
No. Import, export, search and listening all run on the device. The app works with networking switched off.