Skip to content

rousan/warren

Repository files navigation

Warren logo

Warren

Branch your curiosity into a tree of threads.

A local-first, open-source desktop app for thinking with AI — on an infinite, branching canvas. Bring your own key.

Website · Download · Architecture · Development · Contributing


Instead of one long scrolling chat, Warren lets your exploration grow as a tree. A canvas is one session; a thread is one linear conversation (a box on the canvas); branch a child thread off any answer to dig deeper - without losing your place. Every question sees the full path back to the root plus a one-line summary of every other branch, so the model stays aware of your whole canvas.

Why Warren

  • 🌱 Branching, not scrolling — follow a thread, branch off any answer, and keep the whole shape of your thinking on one infinite canvas.
  • 📄 Reader threads — paste a URL and Warren extracts the readable article (text and images) into a box; select any passage or branch off it to chat with the article as context.
  • 🔒 Local-first & private — everything lives on your device in a local SQLite database. No account, no server, no telemetry, works offline.
  • 🔑 Bring your own model — Warren ships with a built-in Claude Code provider that runs the local claude CLI (reusing your Claude subscription), and you can add any number of custom OpenAI-compatible endpoints (a local model, OpenRouter, your own adapter). Your keys, your models, your bill.
  • 🪶 Tiny & native — a ~7 MB Tauri app, not a 100 MB Electron bundle.
  • 📖 Open source — MIT licensed; PRs welcome.

Download

Get the latest build for macOS, Windows, or Linux from Releases.

Builds are unsigned, so the first launch needs a nudge:

  • macOS: right-click the app → Open (once).
  • Windows: "More info" → Run anyway.

Using it

  1. Providers (top-right): if the claude CLI is installed, start the built-in Claude Code provider in one click - it runs a local OpenAI-compatible server that reuses your Claude subscription. Or Add provider for any custom OpenAI-compatible endpoint: a name, a base URL (e.g. https://openrouter.ai/api/v1), a model id, your API key, and optional headers. Set a default.
  2. + NewNew chat to ask a question, or New reader to paste a URL and read the extracted article on the canvas. A canvas can hold several roots.
  3. + on a box's right edge branches a child thread; in a reader, select text to branch a chat that has the article as context. Drag/resize boxes, Auto tidy to clean up, single-click to highlight a lineage, double-click to focus. Dismiss a thread to hide it (restore later) or delete it outright.

Data is stored on-device and persists across updates and reinstalls.

Quick start (from source)

Prerequisites: Node 22+, pnpm, the Rust toolchain, and the Tauri platform prerequisites.

git clone https://github.com/rousan/warren.git
cd warren
pnpm install
pnpm dev:desktop     # launch the desktop app with hot reload

More in docs/development.md.

Documentation

Contributing

Contributions are welcome — see docs/contributing.md. In short: branch off develop, keep pnpm typecheck && pnpm lint && pnpm build green, and open a PR against develop.

Tech

React 19 · Vite · Tailwind v4 · React Flow · Tauri v2 · SQLite (tauri-plugin-sql) · native HTTP (tauri-plugin-http).

License

MIT © Rousan Ali

About

Branch your curiosity into a tree of threads.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors