An LLM assisted writing app built around a fragment system. Prose, characters, guidelines, and knowledge are composable fragments that assemble into structured LLM context for story generation.
Join the community on Discord: https://discord.gg/ywVFKvdH49
- Fragment system — everything is a fragment with tags, refs, sticky/system placement, and version history
- Prose chain + writing panel — branchable prose with regenerate/refine/switch/remove, selection transforms (rewrite/expand/compress), and a dedicated long-form editor view
- Two-phase prewriter — optional planner agent distills full context into a focused writing brief before the writer generates, keeping output grounded while reducing token waste
- Per-role model selection — assign different providers and models to generation, librarian, character chat, directions, and individual agents with automatic fallback chains
- Model-specific instructions — drop JSON files to override any system prompt per model family (exact match or regex), so you can tune prompts for DeepSeek vs Anthropic vs OpenAI
- Story direction suggestions — AI-generated "what happens next?" options with customizable prompt templates and guided direction mode
- Character Chat mode — story-scoped chat with streaming responses, provider/model selection, and character portraits
- Block-based context — visual editor for reordering, overriding, and extending LLM prompt structure, including JavaScript-powered script blocks with live preview
- Agent context panel — per-agent block editor for customizing any agent's prompt, disabling tools, and setting model overrides
- Librarian memory tools — rolling continuity, hierarchical summaries, contradiction tracking, and summary compaction controls
- Universal import/export — drag-and-drop JSON, bundle ZIPs, and SillyTavern/Tavern cards (PNG/JSON with lorebook support)
- Story cover images — cover art with gallery grid layout on the story list
- Plugin system — bundled + external runtime plugins with iframe UI panels
- Onboarding wizard + in-app help — first-run setup flow and contextual help articles
- Custom CSS — user-defined styling for theming the interface
- No database — filesystem storage, compiles to a single binary
Set up a new story with guidelines, characters, and knowledge in one flow.
Browse and edit fragments in the sidebar. Characters, guidelines, and knowledge all work the same way.
Inspect the full LLM prompt, tool calls, and token usage for any generation.
Switch from prose view to Character Chat to run in-world conversations with your configured providers and saved chat history.
git clone https://github.com/tealios/errata.git
cd errata
bun install
bun run devOpen http://localhost:7739. Configure an LLM provider in the onboarding wizard or Settings > Providers.
One-click setup on Windows -- installs Git and Bun if needed, clones/pulls the repo, installs dependencies, and starts the dev server:
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1Or run it directly from the web without cloning first:
irm https://raw.githubusercontent.com/tealios/errata/master/scripts/setup.ps1 | iexPre-built binaries are available on the Releases page for Windows, Linux, and macOS. Extract the zip and run — no runtime dependencies required.
# Windows
errata.exe
# Linux
chmod +x errata
./errata
# macOS — remove quarantine attribute first
xattr -cr errata
chmod +x errata
./errataSet DATA_DIR to control where story data is stored (default: ./data).
| Variable | Default | Description |
|---|---|---|
DATA_DIR |
./data |
Story data directory |
PORT |
7739 |
Server port |
PLUGIN_DIR |
— | External plugin directory |
LLM providers can also be configured in the UI under Settings > Providers.
bun run dev # Development server
bun run build # Production build
bun run test # Run tests
bun run new:plugin # Scaffold a plugin from template
bun run build:binary # Compile to standalone binary
bun run release:binary # Build + package zip bundlesrc/ App code (routes, server, components, lib)
server/ Elysia API, fragments, blocks, LLM, agents, librarian
components/ React UI (prose, fragments, blocks, generation, sidebar)
lib/api/ Typed frontend API client
plugins/ Bundled plugins (diceroll, keybinds, names) + templates
packages/ Plugin SDK (@tealios/errata-plugin-sdk)
tests/ Vitest suites
docs/ Documentation
Bun, TanStack Start + React 19, Elysia, Zod v4, Vercel AI SDK v6, Tailwind v4 + shadcn/ui, Vitest.
Plugins can register fragment types, LLM tools, API routes, and pipeline hooks. External plugins are loaded from PLUGIN_DIR at runtime with iframe-based UI panels.
- Plugin authoring guide
- Runtime plugins + binary packaging
- Plugin templates
- SDK:
@tealios/errata-plugin-sdk
- Architecture & data model
- Generation pipeline
- Context block system
- Instruction registry
- Character Chat
- Prose Writing Panel
- Component ID contract
- Publishing the plugin SDK
- Full docs index
Built by nokusukun



