-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture & Shortcuts
Justus Brugman edited this page Aug 22, 2026
·
7 revisions
-
Ctrl-G: Sends(continue the story). -
Ctrl-W: Sends a transient reset instruction enforcing active story rules. -
Ctrl-U: Removes the last turn from history, sends a reset instruction, and restores the previous user prompt in the terminal buffer for editing. -
Ctrl-L: Read-only view of the last persisted prompt and response.
-
/exitor/quit: Exit the program. -
/image <instruction>: Reads an image from the OS clipboard and sends it with the instruction to a vision backend (not saved tohistory.json). -
/export: Exports the story to Markdown with user prompts in italics. -
/export -intro: Exports story with user prompts in italics between sections. -
/export -clean: Exports assistant story text only. -
/export -all: Chronological export with explicit headers.
Storyteller operates as a modular monolith separating CLI adapters from reusable core services:
nl.llm.storyteller
├── cli/ # Terminal UI, JLine adapter, shortcuts, rendering
│ ├── AssistantApp.java
│ ├── TerminalStoryteller.java
│ └── TerminalRenderer.java
└── core/ # Application logic, persistence, prompting, HTTP clients
├── AppConfig.java
├── service/ # StorySession, PromptAssembly, DerivedMemoryManager
└── model/ # Prompt inputs & validation outcomes
Rather than sending full conversation histories, Storyteller builds prompts using:
Single System Message: Combines the main prompt, fixed protagonists, canonical state (canonical-state.yaml), long-term summary (summary.md), and recent summary (recent-summary.md).
Recent Turns: Includes the last chat.maxRecentTurns raw messages.
Latest User Input: Appends the latest prompt.