Skip to content

tealios/errata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

434 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Errata

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

Main editor view

Features

  • 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

Story Wizard

Set up a new story with guidelines, characters, and knowledge in one flow.

Story wizard

Characters & Fragments

Browse and edit fragments in the sidebar. Characters, guidelines, and knowledge all work the same way.

Character panel

Debug Panel

Inspect the full LLM prompt, tool calls, and token usage for any generation.

Debug panel

Character Chat

Switch from prose view to Character Chat to run in-world conversations with your configured providers and saved chat history.

Quick Start

git clone https://github.com/tealios/errata.git
cd errata
bun install
bun run dev

Open http://localhost:7739. Configure an LLM provider in the onboarding wizard or Settings > Providers.

Development

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

Or run it directly from the web without cloning first:

irm https://raw.githubusercontent.com/tealios/errata/master/scripts/setup.ps1 | iex

Download

Pre-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
./errata

Set DATA_DIR to control where story data is stored (default: ./data).

Environment Variables

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.

Scripts

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 bundle

Project Layout

src/                    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

Stack

Bun, TanStack Start + React 19, Elysia, Zod v4, Vercel AI SDK v6, Tailwind v4 + shadcn/ui, Vitest.

Plugins

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.

Documentation


Built by nokusukun

About

A modern writing app

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors