Skip to content

About

A book reader with per-book atmospheres and a spoiler-free CLI for AI agents

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

vibe-reader

A desktop book reader for Linux, with an atmosphere for every book.

License: MIT Rust 1.90+ Platform: Linux

Quick start · Reading · Atmosphere · AI agents · Docs · Русская версия

vibe-reader: Crime and Punishment with rain

vibe-reader shows EPUB, FB2, Markdown, TXT, HTML and PDF with careful typography. Each book can have its own atmosphere: a palette, a pair of fonts, a background, quiet rain or snow, chapter drawings and illustrations.

There is no AI inside the app. The vibe-reader command-line tool and the bundled Skills let the agent you already use (Claude Code, Codex, opencode and others) read your library, discuss the chapter you are on without spoilers, keep notes and set the atmosphere. The reader window shows what the agent does as it happens.

Noir preset Storm preset
noir: The Count of Monte Cristo storm: Frankenstein

The library: shelves with book spines

Quick start

Requirements: Rust 1.90 or newer and, for the window, WebKitGTK 4.1 (see building).

git clone https://github.com/exec-cmd/vibe-reader
cd vibe-reader
cargo install --path src/cli
cargo install --path src/gui

vibe-reader add ~/Books/crime-and-punishment.epub --shelf Classics
vibe-reader open

Drop more files onto the window or press Add books. Release archives and an AppImage are attached to each GitHub release.

Reading

  • One window holds the library and the book. Recent books stand as spines, the library groups by your shelves or by author, and the reading page has only a thin progress line.
  • Prose opens in pages (a spread on wide windows), technical books and Markdown in a scroll. Code is highlighted and copyable, TeX and MathML formulas are typeset, wide tables scroll, images zoom.
  • PDF gets spread, one-page and scroll layouts, zoom, the file's own outline, page thumbnails, search, highlights and notes on selected text, and dark pages in dark mode.
  • Highlights, notes and bookmarks export to Markdown or JSON. Notes by an agent are marked differently from yours.
  • Six bundled fonts with Cyrillic; you set size, line length and spacing, justification and hyphenation, light or dark.
  • The translator handles a passage or the whole page with your own DeepL, Google Cloud or OpenRouter key.
  • Everything works from the keyboard: the Ctrl+Shift+P palette, single-key commands, optional Vim keys.
  • vibe-reader open notes.md --lite opens one file without the library; Markdown reloads when you save it.

More: getting started, library, reading, PDF, keyboard, translator.

Atmosphere and sound

vibe-reader atmosphere set --book 3 --preset rain
vibe-reader atmosphere set --book 3 --chapter 7 --preset storm
vibe-reader art add 3 ./map.png --locator ch:2:4800 --as page

Seven presets come built in: study, terminal, noir, soft, rain, storm and mountain. Profiles are declarative TOML or JSON with a checked schema: only bundled fonts, and no profile can make the text hard to read. Everything else in the interface can be restyled live with ~/.config/vibe-reader/ui/user.css. See atmosphere.

Each preset has an ambient sound: rain, storm, fire, wind or hum. The sound is generated in the window, is off by default, and turns on with S. See sound.

AI agents

vibe-reader skills install            # Claude Code; --dir for other agents

Then ask your agent about your book. The Skills teach it to:

Skill Purpose
reader-cli Use the CLI safely: locators, output, authorship, undo.
reader-analyze Analyze a book or your reading: characters, themes, glossary, pace.
reader-discuss Talk about the place you are reading, without spoilers.
reader-atmosphere Pick presets, style chapters and scenes, add illustrations.
books-helper For fiction: retell the story so far, gather critics' views, check your understanding.

The ✦ button in the reader sends the agent your place, a passage or a message.

Agents read only up to your position unless you ask otherwise, sign everything they write, can undo it, cannot remove books, and see your reading habits only if you allow it. Book text is passed to them as untrusted data. See agents and the CLI reference.

Configuration

Settings live in ~/.config/vibe-reader/config.toml and the library in one SQLite file in ~/.local/share/vibe-reader/. Nothing leaves your computer. See configuration.

Contributing

Start with CONTRIBUTING.md and architecture. Planned work is in the roadmap.

Built with

Rust and Tauri with the system webview. Books are parsed with zip, quick-xml, pulldown-cmark and pdf-extract and sanitized with ammonia; the library is SQLite through rusqlite. The window uses KaTeX, highlight.js and pdf.js, and fonts under the SIL Open Font License.

License

Licensed under the MIT license.

About

A book reader with per-book atmospheres and a spoiler-free CLI for AI agents

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages