a markdown reader

dreamd

Read your repo like a book. Then ask it questions.

Renders the markdown you already wrote with real typography — in its own window, not a browser tab. Highlight a passage, attach a question to it, and send the whole stack to your agent in one action.

what it is

Highlight → annotation → stack → send

Terminal text is fine for code and miserable for prose. dreamd opens as its own window, lists the markdown in the repo you are sitting in, and renders it with real fonts, real spacing and highlighted code — built for a day inside tmux, Neovim and Claude Code, not a browser tab.

  1. Highlight

    Select a passage while you read. It stays marked in the app's own yellow.

  2. Annotate

    Attach a question to it. Quote and question travel together from here — the passage is the evidence, the question is what you actually want to know.

    why does this contradict the section above?

  3. Stack

    Each pair queues, and survives the session — written to a file of its own, never into your repo. Read the whole document first, marking as you go.

  4. Send

    Push the stack to a Claude Code session inside the window: one message, every quote attached, file and line numbers included. The answer comes back typeset like the document, not painted into a terminal.

Instead of retyping quotes into a chat box one at a time, you read normally and ship the batch at once.

get it

Install

Version 0.4.1. macOS on Apple Silicon and Intel, Linux on x86_64. Every channel installs both halves — the window and the dreamd command — so the two can never drift apart.

macOS · Homebrew
brew install --cask bongofongo/tap/dreamd

Signed and notarised, so it opens straight away. brew upgrade --cask dreamd for the next one.

macOS or Linux · no package manager, no root
curl -fsSL https://raw.githubusercontent.com/bongofongo/dreamd/main/packaging/install.sh | sh

The release artifact, checksum-verified before it unpacks. Re-run the line to update.

Linux · x86_64
chmod +x dreamd-*.AppImage && ./dreamd-*.AppImage
sudo dpkg -i dreamd-*.deb

AppImage, .deb and a plain tarball every release, each carrying the same desktop entry and icons; Arch builds from the PKGBUILD beside them. Nothing here is signed — the .sha256 files are the integrity check.

dreamd opens the repo you are standing in, dreamd notes/todo.md opens a file — like nvim. Open source under the Apache 2.0 licence.

under the hood

Small, quiet, and read-only

dreamd never writes to your markdown, or anything else inside the repo — editing stays in Neovim. The one place it writes is ~/.config/dreamd: preferences, themes and marks, as plain files and no database.

Rust + Tauri 2
Its own application window with a small binary, not a browser tab pretending to be one. macOS and Linux from the same source.
Rendered server-side
pulldown-cmark for CommonMark and GFM, syntect for fenced code. No markdown logic in the frontend.
Fuzzy file palette
nucleo over every markdown path in the repo, walked by the same ignore crate ripgrep uses — your .gitignore is respected.
Live on save
A watcher reloads the file, keeps your scroll position and re-anchors highlights. If an edit changed the highlighted text itself, the mark goes red and asks whether it still stands, rather than quietly pointing at the wrong words.
The agent can read the queue
dreamd is an MCP server as well as a window: your agent pulls the stack, the passage and the open document, and marks each question resolved as it goes — the reader updates live while it works.
Ten themes, both ways
Every theme ships a light and a dark half, and switching is one attribute. A theme is plain CSS in ~/.config/dreamd/themes, hot-reloaded on save.

Search matches file paths, not file contents — content search is not in yet.