explaingit

alfredxw/nova

14TypeScriptAudience · writerComplexity · 3/5ActiveSetup · moderate

TLDR

IDE-style workbench for long-form novel writing, with a chapter editor, a streaming AI assistant, per-book Git version history, and style-reference files.

Mindmap

mindmap
  root((nova))
    Inputs
      Markdown chapters
      Style reference files
      LLM API key
    Outputs
      Streaming AI replies
      Git versions
      Workspace files
    Use Cases
      Draft a long novel
      Roll back chapter edits
      Match a reference author voice
    Tech Stack
      Go
      Hertz
      Eino
      React
      TipTap

Things people build with this

USE CASE 1

Plan, draft, and revise a long novel in a single workspace

USE CASE 2

Use Git history to roll back chapters or stash unfinished prose

USE CASE 3

Steer AI prose toward a reference author by quoting style files with #

Tech stack

GoHertzEinoReactTypeScriptViteTailwindTipTap

Getting it running

Difficulty · moderate Time to first run · 30min

Needs Go 1.24+, Node 20+, pnpm, and an OpenAI-compatible API key set in environment variables before the backend will serve a workspace.

In plain English

Nova is an AI writing workbench aimed at people working on long-form novels. The README pitches it as something like an IDE, but built for novel creation instead of code. It brings a project tree, a chapter editor, and an AI assistant plus version history panel onto one screen. It covers the stages a long novel goes through, from initial ideas and worldbuilding through outline, volumes, chapters, detailed plotting, prose drafting, version management, and consistency checks. The editor handles Markdown and plain text, with auto-save, manual save, word count, in-document search, and the ability to quote a selection back to the AI. The AI assistant streams its replies in real time, shows which tools it called, lets you collapse its thinking trace, and can be interrupted mid-task or resumed. Each book lives in its own workspace folder, and each workspace keeps its own set of chat sessions. Every workspace doubles as a local Git repository. From inside Nova you can initialize the repo, create versions, view history, roll back to an earlier point, stash uncommitted writing, and restore it, with the actual Git work done by the Go backend. A style reference system also exists: drop .md or .txt files into setting/styles/ and quote them in a conversation by typing # plus the file name, which nudges the AI toward the voice of a chosen author. On the technical side, the backend is Go with the Hertz framework and the Eino agent library, using server-sent events for streaming. The frontend uses React and TypeScript on Vite, with Tailwind CSS v4, the TipTap editor, and shadcn/ui on top of Radix UI. Setup needs Go 1.24+, Node 20+, and pnpm, plus an OpenAI-compatible API key, base URL, and model set as environment variables. A workspace is one book, with a CREATOR.md instruction file, a chapters folder, and a hidden .nova folder. Slash commands like /plan, /continue, /rewrite, and /outline are bound to common writing actions.

Copy-paste prompts

Prompt 1
Walk me through wiring up an OpenAI-compatible API key, base URL, and model in nova
Prompt 2
Explain the workspace folder layout (CREATOR.md, chapters.nova) and what each part is for
Prompt 3
Show how to add a new slash command alongside /plan, /continue, /rewrite, /outline
Prompt 4
Help me write a CREATOR.md that nudges the AI toward a noir detective voice
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.