Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bowri

A local-first desktop workspace for writing novels with an AI co-author.

Brainstorm the idea, build the plan, draft scenes, and export a finished book — all on your machine, with your own AI account and nothing stored in the cloud.

Tauri React TypeScript Rust SQLite


What is Bowri?

Bowri is a desktop writing studio for long-form fiction. It walks a book from a blank page to an exportable manuscript through a guided workflow, and it treats AI as a proposal engine — every change the model suggests is shown in the UI and saved only after you approve it.

Your work lives in a local SQLite database. Bowri never uploads your manuscript; the only thing that leaves your machine is the prompt you send to your own AI account.

Features

  • 📖 Guided writing workflow — Brainstorm → Concept → Plan → Characters → World → Scene editor → Editing → Export.
  • 🤖 AI co-author, human in control — the model proposes; you review a diff-style preview and accept or reject. Nothing is written behind your back.
  • 🧠 Story bible awareness — characters, world, and continuity summaries are fed back into prompts so the AI stays consistent across chapters.
  • 🎨 Cover & character art — generate a book cover, character portraits, and editorial illustrations through the same AI account.
  • 💸 Cost visibility — token usage and generation cost are surfaced per request.
  • 📝 Rich scene editor — a TipTap-based editor built for drafting and redrafting prose.
  • 📦 Portable projects — export a project as a self-contained ZIP and re-import it anywhere.
  • 🌍 Bilingual UI — Polish and English out of the box (i18next).
  • 🔌 Bring your own AI — use a CLI subscription (OpenAI Codex or Anthropic Claude Code) or plug in an OpenAI / Anthropic API key.
  • 🔒 Local-first & private — SQLite on disk, no accounts, no telemetry. Your manuscript never leaves your machine.

AI providers

Bowri never hosts a model itself — it drives your AI account. Pick a text provider in the in-app AI settings:

Provider Auth Notes
Codex CLI (default) Your Codex CLI login (codex login) Reuses the official Codex CLI; also does image generation
Claude Code CLI Your Claude Code CLI login (subscription) Runs through the official Claude Code CLI
Anthropic API Anthropic API key Claude Sonnet / Opus / Haiku
OpenAI API OpenAI API key GPT-5.x / GPT-4.1

CLI providers reuse the login you already have — Bowri stores no tokens of its own. API providers need a key, which is saved locally in the app's data directory (plaintext JSON today; a keyring-backed store is the planned upgrade).

Image generation (covers, character art, editorial illustrations) currently runs through the Codex CLI, so codex login is required for those features regardless of the text provider you choose.

Tech stack

Layer Technology
Shell Tauri 2 (Rust)
Frontend React 19, TypeScript, Vite
Routing TanStack Router
State/data TanStack Query, Zustand, Zod
Editor TipTap 3
Storage SQLite (local)
AI Codex CLI · Claude Code CLI · Anthropic API · OpenAI API
i18n i18next / react-i18next (Polish + English)

Getting started

Prerequisites

  • Node.js 18+ and npm
  • Rust (stable, MSVC toolchain on Windows) — required for the desktop build
  • An AI provider — a Codex CLI or Claude Code CLI login, or an OpenAI / Anthropic API key (see AI providers)
  • Codex CLI — required for image generation (covers, character art) regardless of text provider

Install Rust on Windows if you don't have it:

winget install Rustlang.Rustup
rustup default stable
cargo --version

Authenticate the Codex CLI (default text provider, and required for image generation):

codex --version
codex login

Prefer a different text model? Switch the provider to Claude Code CLI, Anthropic API, or OpenAI API in the app's AI settings.

Run the desktop app

From the repository root, with PowerShell:

npm install
npm run tauri -- dev

This launches the full Tauri app with the Rust backend, SQLite storage, and Codex CLI integration.

Note: Image generation (covers, character art) can take several minutes. Bowri keeps a 600-second minimum timeout and copies the final PNG into the app's covers directory once Codex CLI finishes.

Frontend-only preview

For UI work you can run just the Vite dev server:

npm run desktop

This starts the browser preview only — it has no Rust backend, SQLite commands, or Codex CLI checks. Use it for styling and layout, not for testing real behavior.

Tests

npm test

Project structure

Bowri/
├─ apps/
│  └─ desktop/
│     ├─ src/                 # React frontend
│     │  ├─ app/              # Router & app shell
│     │  ├─ features/         # Brainstorm, book, characters, world, scenes, editing, export, ai
│     │  └─ shared/           # UI kit, i18n, API bindings
│     └─ src-tauri/           # Rust backend (Tauri commands, SQLite, Codex bridge)
└─ docs/                      # Design system & planning docs

Troubleshooting

failed to run cargo metadata … program not found Tauri can't find cargo. Install Rust, open a new terminal, and confirm cargo --version works before retrying. If Cargo is installed but not on PATH yet:

$env:PATH="$env:USERPROFILE\.cargo\bin;$env:PATH"
cargo --version
npm run tauri -- dev

Bowri — write locally, own your words.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages