loredata
v0.3.0
Published
Generate personas from pop culture universes. Every field belongs to the same fictional world.
Maintainers
Readme
Demo: loredata.orchidfiles.com
import { person, group } from 'loredata';
const p = person({ universe: 'breaking-bad' });
// {
// firstName: 'Walter',
// lastName: 'White',
// username: 'heisenberg',
// email: '[email protected]',
// quote: "I am the one who knocks.",
// profession: 'Chemistry teacher',
// interests: ['chemistry', 'cooking', 'family'],
// address: { street: '308 Negra Arroyo Lane', city: 'Albuquerque', state: 'NM' },
// symbol: '☢️',
// color: '#4c1d95',
// universe: 'breaking-bad',
// universeName: 'Breaking Bad'
// }
const team = group({ universe: 'game-of-thrones', size: 3 });
// [
// { firstName: 'Jon', lastName: 'Snow', username: 'lord_commander', ... },
// { firstName: 'Daenerys', lastName: 'Targaryen', username: 'mother_of_dragons', ... },
// { firstName: 'Tyrion', lastName: 'Lannister', username: 'halfman', ... },
// ]Works in Node.js, browser, and as a CLI tool.
Install
# library
npm install loredata
# CLI
npm install -g loredataUniverses
25 universes available out of the box:
breaking-bad, sopranos, better-call-saul, the-office, house-md, sherlock, peaky-blinders, game-of-thrones, friends, south-park, star-wars, matrix, the-walking-dead, prison-break, westworld, supernatural, simpsons, avengers, spider-man, lost, harry-potter, guardians-of-the-galaxy, big-bang-theory, x-men, fast-and-furious
import { universes } from 'loredata';
universes();
// [
// { id: 'sherlock', name: 'Sherlock', genre: ['crime', 'drama', 'mystery'], description: '...' },
// { id: 'game-of-thrones', name: 'Game of Thrones', genre: ['fantasy', 'drama', 'action'], description: '...' },
// ...
// ]Persona fields
Each Person includes:
firstName,lastNameusername,emailaddress,profession,interestsquote,symbol,coloruniverse,universeName
Deterministic output
Pass a seed for reproducible results:
const p = person({ universe: 'matrix', seed: 42 });Browser
import { loadUniverse, personFromData } from 'loredata/browser';
const universe = await loadUniverse('breaking-bad');
const p = personFromData(universe);No fs or path — safe for Vite, webpack, and any browser bundler.
CLI
loredata person --universe breaking-bad
loredata person --universe breaking-bad --format json
loredata person --interests chemistry,cooking
loredata person --interests chemistry,cooking --interests-mode and
loredata person --name walter
loredata group --universe friends --size 5
loredata universesFeatures
- [x] 25 universes
- [x] Single persona and group generation
- [x] Filter characters by interest, name, universe
- [x] Deterministic output via seed
- [x] Browser-safe entry point
- [x] CLI tool
- [x] Character symbol and color fields
Development
git clone https://github.com/orchidfiles/loredata.git
cd loredata
pnpm installBuild dev-kit (needed once, before other builds):
pnpm --filter @loredata/dev-kit buildBuild the library:
pnpm --filter loredata buildRun the web app:
pnpm --filter @loredata/web devWhy
Faker.js generates random names and emails. They are internally consistent but meaningless. No shared context, no character identity.
LoreData generates personas from real fictional characters. Each persona is recognizable and internally consistent, which makes it useful for demos, screenshots, and seed files where the content matters.
License
MIT
Made by the author of orchidfiles.com — essays from inside startups.
If you found loredata useful, you'll probably enjoy the essays.
