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.
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.
-
Highlight
Select a passage while you read. It stays marked in the app's own yellow.
-
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?
-
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.
-
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.
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.
brew install --cask bongofongo/tap/dreamd
Signed and notarised, so it opens straight away.
brew upgrade --cask dreamd for the next one.
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.
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.
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.