Raven 0.2.3 is a patch release with two things worth reading before you upgrade. Bare raven now opens the browser page, the way raven web does, and falls back to the terminal UI only where no browser can be opened; raven tui still opens the TUI outright. And the page's own update row now works on a normal raven web install and shows the download's progress, but only once the page is served by this release: a page served by 0.2.2 or earlier still refuses it, so this one upgrade goes through the command line as before (#806). No command, flag or config key is removed or renamed. Two smaller removals on the page: the file viewer no longer offers a download button, and HTML previews run their scripts by default instead of asking (#805).
Highlights
Upgrade from the page
-
The update row at the bottom of the sidebar upgrades a
raven webinstall: the gateway hands the page its own graceful stop on every mount, exits cleanly on upgrade, and the helper waits for the supervisor, installs, and relaunchesraven web --superviseon the same port with the same token and cookie, so the page reloads itself still signed in. It is refused, each with its own reason, while a turn, a sub-agent or a question waiting for an answer is running (including in an IM channel), and for a Raven started by hand withraven gatewayorraven web --foreground, which has nothing to restart it (#806). -
The page shows what is moving. The helper downloads the release itself so the bytes can be counted, then answers
/upgrade/statuson the page's own port with phase, bytes and rate while the old Raven is gone; the card measures the bar while bytes are counted and says when the new Raven is starting. A failed install is held for the page to read before the old version comes back, instead of relaunching it silently. The twenty-minute ceiling now counts silence, not the whole upgrade, so a slow download that is visibly moving is not given up on (#806). -
The terminal
raven upgradeprints each asset's size and the total before downloading, then a live progress line, so a large release on a slow link no longer reads as a stalled install. The downloaded wheels stay under~/.raven/cache/upgrade/<version>(about 75 MB for a release with its engines); earlier versions' files are cleared (#806). -
raven gatewayrefuses a half-written install the wayraven servealready did: a gateway that starts inside an upgrade window waits it out and exits instead of serving the placeholder page until restarted by hand. The gateway also closes its websockets on shutdown, soraven web --stopwith a page open no longer waits on the page's own socket (46 seconds down to 4 ms in the PR's run) (#806). -
Bare
ravenopens the page, leaving the resident gateway thatraven webalways leaves. Where no browser can be opened it runs the TUI instead, decided before anything starts.raven webandraven tuiare unchanged (#806).
Desk panes
-
Every desk pane has one header that names what is on screen. The file path bar, the task status line and the node card's back-and-title row fold into it: a glyph or a back chevron, the title, a muted facts line, then the controls that act on the object. A picked node reads as "task > node"; narrow panes drop the parent crumb and keep the facts on their own line. Dragging a pane by its title works again (#805).
-
Stop leaves the palette's task list and lives in the task pane header, shown only while the task or the picked node is running. The runtime has no per-node cancel for a graph, so on a graph node it stops the whole run, and its tooltip says so (#805).
-
The file viewer no longer offers a download or the binary note's save-a-copy link; the conversation's delivery cards keep theirs. HTML previews run their scripts by default under
sandbox="allow-scripts", neverallow-same-origin, so the page keeps an opaque origin, and the "preview does not run scripts" note and its run button are gone. Trade-off: a previewed page can now make network requests of its own without a click (#805).
Grok Build and GitHub Copilot as coding agents
- Each connection problem the agent sheet asks about gets a named failure, and the command in each sentence is one the CLI's own help prints. A credential refusal says to run
grok loginorcopilot login; a binary that is installed but not on the login PATH Raven launches with is named by its location (Homebrew's prefix,/usr/local/bin,~/.local/bin) instead of being reported as missing; an invalid key, an expired sign-in, a model not served, no credit, an expired Copilot subscription, a rate limit, a network failure, an ACP server that did not start and a CLI too old to speak ACP are each their own sentence. A Copilot refusal that arrives as the assistant text of a finished turn is a failure, not a success (#792, #799).
Unattended turns and research
-
A question that an unattended turn could ask nobody is recorded instead of vanishing: a sub-agent
ask_useror elicitation with no page subscribed, a question that gives up waiting for the conversation lock, and a hostask_usercall whose answer comes back empty. The session stores aquestion_unanswerednotice that a reopened session draws, andraven agent -mprints the questions after the reply. The model is still told to proceed, and the exit status is unchanged: a refusal is still the run that exits 3 (#807). -
An interrupted research turn keeps the configured report structure. The tool-free synthesis is buffered, one format repair is requested when sections are missing, and only the selected reply is emitted; a failed synthesis produces a structured fallback, and wall-clock exhaustion gets an accurate time-limit fallback. The research flow's turn settings (wall-clock and retry budgets, ask labels, interrupted-reply guidance) now reach the loop (#808).
Experimental: the Curator
- The repository gains
experimental/, a first version of worker self-improvement: a Curator that shapes a Raven worker's harness (memory, planning, capability, action) from the task, the materials handed to it and feedback, at both levels of a harness-of-harnesses whose child agents are hosted over ACP. It is not in the wheel andraven/does not import it; the design is inexperimental/docs/design.md, and the README's self-evolution section now describes it (#802, #803).
Install
New install on Linux, macOS, or WSL2:
curl -fsSL https://raven.evermind.ai/install.sh | bashNew install on native Windows, in PowerShell:
irm https://raven.evermind.ai/install.ps1 | iexWindows PowerShell 5.1 (the version built into Windows) rejects that URL with
Permanent Redirect; use the direct one instead:
irm https://raw.githubusercontent.com/EverMind-AI/Raven/refs/heads/main/install.ps1 | iexThe installer puts uv, Node.js 22, Raven and its plugins in place, downloads the
browser runtime, installs or offers LibreOffice, and then finishes by opening
Raven in your browser. First-run setup happens on that page. The installer holds
the terminal while the page is up; press Ctrl-C to stop it, then start Raven
again with:
raven webThat keeps Raven running in the background and opens the page; raven web --stop
stops it. From this release on, bare raven does the same, and opens the TUI
only where no browser can be opened. Prefer the terminal? raven tui runs the
same first-run setup and opens the TUI, and raven onboard stays the explicit
way to reconfigure later. Set
RAVEN_MINIMAL=1 to skip the browser and LibreOffice downloads, or
RAVEN_NO_LAUNCH=1 to have the installer return without opening the page.
Upgrade
Already running Raven? Upgrade in place -- configuration, sessions, and memory
are preserved. From this release on the update row at the bottom of the page's
sidebar does this too, but a page served by 0.2.2 or earlier refuses it, so for
this upgrade stop the page first, then upgrade:
raven web --stop
raven upgradeOn Linux and macOS raven upgrade runs the install in the foreground and
returns when it is done. On native Windows it hands the install to a separate
helper and returns at once; wait for the helper's completion message. Then
start Raven again:
raven webraven upgrade installs the latest stable release together with the plugin
wheels it ships. It never picks up a pre-release unless this install has joined
the beta channel (a ~/.raven/beta.json that only the beta installer writes).
raven upgrade --check reports whether a newer release exists without
installing it. Editable source checkouts are never overwritten: raven upgrade
reports the checkout path and how far it is ahead of or behind origin/main,
and the remedy is git pull && ./install.sh in the checkout. Rerunning the
one-line installer also upgrades, and ends on the running page.
Release Status
- Version:
0.2.3 - Tag:
v0.2.3 - Stability: public preview patch
- Assets: the
ravenwheel and source distribution, the three plugin wheels
(everos_memory,design_engine,ppt_engine), the locked constraints file
raven-constraints.txt, and the plugin listraven-plugins.txt
Notes
- Raven is still pre-1.0; CLI surfaces, plugin contracts, and runtime internals may continue to evolve.
- PyPI publishing is not enabled yet; the supported public install path uses the GitHub Release wheel asset.