Skip to content

Raven 0.2.5 (2026-10-20)

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Oct 14:21
05cf9c3

Raven 0.2.5 is a patch release. This release strengthens multi-agent coding, adds remote agent execution on registered machines, introduces conditional branches in DAG workflows, and improves native Windows support. Raven can delegate tasks to connected agents on any registered machine, using each agent's capabilities and working environment. Multi-agent coding can use this capability to coordinate local and remote coding agents. Document support is also expanded.

The trajectory view is now available to everyone, alongside conversation export and import and an optional EverOS Cloud memory backend. Review the upgrade notes for prompt customization, DAG behavior and time-zone changes.

Highlights

Native Windows support

  • Installation: install.ps1 correctly finds the latest release in Windows PowerShell 5.1. The direct installer URL below remains available when PowerShell cannot follow the website redirect (#863).

  • Agent startup: Bundled ACP agents start correctly, saved launch commands preserve backslashes, and Check again, Connect and Test discover agents installed after Raven started (#864, #880, #908, #912).

  • Task cleanup: Agents terminate with their host, CLI sub-agents stop on timeout or cancellation, and connecting agents with multiple processes, such as Claude Code, no longer fails with WinError 32 (#927, #951, #974).

  • File handling: File tools reject reserved Windows device names such as nul, aux and con.txt anywhere in a path, preventing writes that appear to succeed without creating a file (#918).

  • Remote tools and operations: Windows hosts can lend MCP servers to remote ACP agents, and Raven-Oncall campaign jobs run on Windows (#972, #1016).

For Windows users: raven upgrade starts a separate helper; wait for its completion message before restarting Raven. After installing or upgrading, run raven resources once to download the knowledge reader's PDF models and word dictionary (about 110 MB). The Windows installer does not download them.

Remote agents on registered machines

Remote agent execution extends Raven's agent roster across registered machines. Raven can invoke connected agents for the work they support, run tasks in their remote working directories, and collect the results. From the Machines tab, register a machine, install its Raven node, then connect an agent and choose its working directory on that machine (#983, #1007).

  • Run ACP, CLI and OpenAI agents on registered machines over SSH by setting the entry's machine field. A Raven node owns each run, so a dropped SSH connection does not end the task. raven ops connection install-node installs or updates the node (--dir chooses its location; --prune removes other versions). raven ops connection remove unregisters the machine and leaves its node installed. Installation uses the machine's configured package index without exposing its credentials on command lines (#893, #920, #963, #965).

  • File tools accept remote paths such as user@host:/path or scp://user@host:port//path. read_file, list_dir, find and grep execute remotely and return their results. write_file and edit_file reject files changed since the agent last read them (#922).

  • Remote turns survive the host computer stopping and resume tracking at its next start. Reattached runs keep their sessions and replay stderr produced while disconnected. Stopping a node also stops its agents (#934, #957, #977, #979, #984).

  • Remote ACP agents can use the MCP servers granted to their entries. Servers and keys stay on the host computer; Windows hosts use an authenticated loopback port (#947, #972).

  • The Agent Hub's Machines tab registers machines, tests connections, checks health, installs or updates nodes, connects agents, and removes machines from the registry. Cards show connection state, node version and connected agents, including disabled ones. Passwords are stored in owner-readable files under Raven's home and kept off command lines. Windows hosts use SSH keys for registration (#983, #1005, #1007, #1019).

  • Agent cards and TUI rows identify the machine each agent runs on (#958).

  • See Working on Registered Machines for the English and Chinese guides (#956).

Multi-agent coding

Raven manages multiple coding agent sessions for you. Describe what you want to build, fix or improve in one conversation; Raven interprets the requirements, delegates tasks, forwards the relevant context and gathers the results. The new resident multi-agent-coding skill guides this coordination through implementation, testing and review (#1010).

  • One conversation, managed sessions: Raven tracks which agent session owns each task, sends corrections and follow-up requests back to that session, and starts a fresh session for new work (#1010).

  • Context passed with the work: Raven forwards the task requirements and relevant prior results to the agent that needs them. Dependent tasks receive the preceding agent's output file and code location, keeping the work connected across sessions (#1010).

  • Specialized agents support the coding work: Raven can call Raven-Research to investigate technical questions and compare approaches, and Raven-Design to prepare interfaces and visual assets. Their results feed into the coding agents' implementation work (#1010).

  • Combine local and remote coding agents: Coding workflows can draw on local agents and coding agents connected on any registered machine. Each agent works in its configured directory, while Raven coordinates task assignment, follow-ups and results (#934, #1007, #1010).

  • Concurrent development: The coding skill directs agents working concurrently in the same Git project to use separate worktrees and named branches. Later requests keep the task's worktree path and branch, so each agent continues in the right checkout (#1010).

Conditional branches in DAGs

DAG workflows can now choose their next steps from task results within a single run. For example, a review can route work to a fix task when changes are needed, or to validation when the review passes (#1001).

  • Select the paths to run: Decision nodes declare routes and use select: one or select: many. Raven's judge selects routes from the node's result, and downstream when conditions determine which tasks run. Unselected tasks are recorded as not_executed with a reason (#1001).

  • Inspect branch outcomes: The Web UI and TUI show chosen routes and why tasks did not execute. Skipped and cancelled nodes update during replanning, and preflight notices preserve the provenance of agent output (#1001, #1002, #993).

Expanded document support

  • Knowledge bases now read PDF, Word (.doc, .docx), Excel (.xls, .xlsx), PowerPoint (.ppt, .pptx), RTF and images alongside text. Legacy Office files (.doc, .xls, .ppt) require LibreOffice; missing installations produce setup guidance. The deepdoc models read scanned PDF pages and reconstruct tables from page images. Tables from PDF, Word and PowerPoint preserve merged cells. PDF chunks include images of their source regions, the panel shows indexed content, and agents search attached knowledge bases with knowledge_search (#489).

  • raven resources downloads the PDF models and a word dictionary (about 110 MB). The Linux, macOS and WSL2 installer runs it; native Windows installations and existing users upgrading must run it themselves. Without the models, PDFs use text size and position, and tables are detected only from drawn lines. Pages without a text layer use the configured vision model or remain unread when none is set; missing PDF models currently produce no warning (#489).

  • Interrupted indexing returns documents to the queue after a reload or lost connection. Docker installations serve the reader's page images (#938).

Trajectory, export and bug reports

  • The trajectory view is available to everyone. Open it from a conversation's header to inspect recorded steps, timings and duration bars. Pin a details tab to keep it selected while moving between steps (#877, #948, #989).

  • Export selected conversation turns and their dispatched sub-agent work from the conversation menu. Import an export, a bug report package or a raven trajectory report tarball as a read-only conversation (#948, #960).

  • Send bug reports to a configured receiver: run raven trajectory receiver --save-dir DIR, set RAVEN_BUGREPORT_URL, or resend a saved report with raven trajectory upload-bug-report. No receiver is configured by default, and Report a problem appears only when one is set. Raven checks the receiver before starting a report (#926, #948, #1015).

  • Bug report reviews remember keep-or-replace decisions locally by hash, without storing the secret values, and reuse them for repeated findings. Manage them with raven trajectory redaction-history list, forget and clear. Descriptions containing \n or regular expressions export correctly, and the review wizard displays complete values with more room (#941, #929, #952).

Memory and EverOS Cloud

  • EverOS 1.4.2 fixes index-reader file descriptor leaks and searches blocked behind background embedding. The first full pass after upgrading checks the index and re-embeds only missing entries (#950).

  • EverOS Cloud is available through the optional everos-cloud-memory plugin. Its wheel is attached to this release and is not installed by default. It provides memory.backend: everos-cloud, accepts plugins.config.everos-cloud-memory.api_key or EVEROS_CLOUD_API_KEY, and adds backend selection to raven onboard. Known limitation: a manually installed copy does not yet survive the next raven upgrade (#883, #1028).

  • Agents using a memory backend stop attempting direct memory-file writes and reporting those saves as failures (#894).

  • memory.annotateEveryTurns records the conversation tail in the episodic log every N user turns, before compaction. It defaults to 0 (off) and is read at startup (#924).

  • Skill frontmatter is parsed as YAML, preserving multiline descriptions (#903).

Upgrade notes

  • Breaking - agent management: The main agent now delegates production work, including small edits, and uses its own tools for briefing, checking and coordination. The generic sub-agent is renamed Raven-General; Raven and raven remain accepted aliases. Saved instances adopt the new name when next saved, after which older Raven versions cannot find them (#1010).

  • Breaking - custom prompts: Raven-Research, Raven-Code, Raven-Oncall and Raven-PPT regenerate agent_memory/profile/soul.md, agent_memory/profile/agent.md and TOOLS.md at every launch. Put custom instructions in the sibling soul.local.md, agent.local.md and TOOLS.local.md files; they are appended at launch. Modified originals are backed up as <name>.bak-<time>-<pid> before replacement (#987).

  • Breaking - DAG sandbox: Every DAG node now runs exec under tools.sandbox, with one sandbox per node. Workflows that previously ran commands directly on the host now obey those limits (#955).

  • Breaking - DAG verdicts: Every finished DAG node is judged. subagentDag.verdictEnabled is removed automatically from existing configuration at the next start, with a notice (#1001).

  • Cron time zones: cron.defaultTimezone now applies to new cron-expression jobs. Explicit job time zones are preserved; without a default, new jobs follow local time. The Asia/Shanghai default written automatically by versions up to 0.1.12 is removed once with a notice. Restore it if that is your intended default (#911).

Apart from subagentDag.verdictEnabled, no command, flag or config key is removed. See Upgrade for the commands and the required knowledge-resource download.

Other improvements and fixes

Agents and sub-agents

  • Mirasim: nine presets named <agent>-Mirasim (Claude Code, Codex, Kimi Code, Antigravity, Qwen Code, Grok Build, DSH, Pi and ZCode CLI) reach the agents Mirasim runs, through the Mirasim host already running on this computer, over its WebSocket. RAVEN_MIRASIM_HOST names another socket or port. They are not offered on registered machines (#971, #996).

  • An ACP sub-agent's result is its last message; the notes it wrote between tool calls stay in its transcript and live view (#889, #892). A GitHub Copilot session its process still holds is continued rather than replaced (#872).

  • Raven-Code checks Python for undefined names with Pyflakes after an edit or an exec, as advice in the tool result, beside the syntax errors it already reported (#967).

  • Raven-Research writes its reports in a reader layout: the answer first, the brief's own section names, links without fetch codes, and a reply that matches the saved file (#890).

  • Raven-Oncall: a question to the owner reaches the owner when the agent runs as a sub-agent, and the answer is recorded as the owner's (#1012). Campaign jobs run on a Windows host (#1016).

  • Raven's own agents, Raven-Code and Raven-Research included, can be disconnected from the page, the onboarding rows and the TUI (#961).

  • A direct chat with a sub-agent instance runs on its conversation's model, and under its permission mode and grants (#902, #906).

  • An agent whose sign-in check failed is measured again at the next start instead of staying marked as needing authentication (#915), and an agent that cannot inherit the host's model names the credential that is missing (#862).

  • A rejected tool call tells the model the argument path, the shape expected and what arrived (#985).

  • Personas backend: Saved artifacts can carry a reusable Harness, a Workflow, or both. Sessions can bind a Persona's coordinator and workers using a snapshot, so later library edits do not alter an active conversation. This release adds the backend and RPC support; the Persona page is separate work (#709).

Models and providers

  • Raven trusts the operating system's certificate store, so a corporate proxy or private CA the system trusts works for model calls, onboarding and upgrades; RAVEN_NO_SYSTEM_CA=1 turns this off. A refused certificate is reported as certificate_untrusted, and the Codex provider no longer retries a request with certificate verification turned off (#878, #896).

  • Gemini connected from Settings works: the address the dialog only shows is no longer stored, a config holding one is repaired at the next start, and the default model is gemini/gemini-3.8-flash (#865).

  • The image role can run on OpenAI, a Custom OpenAI-compatible provider or VolcEngine as well as OpenRouter (tools.media.image.provider), and VolcEngine Ark's image answers are read (#866, #937).

  • OpenAI Codex lists every model the account has (#995).

  • A model that refuses a forced tool choice is asked again with auto, so the research review gate returns verdicts on such models again (#870).

  • DeepSeek tool loops on the LiteLLM route no longer fail with a 400 about reasoning_content (#882).

  • Model metadata lookups that must stay offline do, so starting an ACP session no longer waits on an Ollama server (#909, #940).

Web UI and TUI

  • The composer shows the configured model at once (#840), and Recently used lists the models messages went out on (#887).

  • Esc on an approval card denies it without stopping the running turn (#868).

  • On a connected provider's sheet, the eye shows the saved API key, read only when you press it, and Update with no new key says so instead of sending an empty save (#881, #884).

  • A failed turn's row opens to the provider's full error, up to 8,000 characters, with credentials removed (#978).

  • Signing in works through a port forward, such as VS Code's or ssh -L, to another local port (#939). The folder picker opens the host's own dialog only where the gateway has one and browses folders in the page otherwise (#970).

  • A picture dragged from the transcript into the composer attaches that file (#900), and a rewritten picture or deck shows its new content when reopened or delivered again (#907).

  • The desk palette can be pulled down as far as the composer card (#980).

  • The sub-agent tier control is labelled Mode instead of Effort, on the page and in the TUI; reasoning effort under Settings is unchanged (#973). Labels are capitalized consistently (#946), the approval card's security note is translated in Chinese (#857), and the Chinese copy uses one term for sub-agents (#975).

Reliability and safety

  • ACP agents end with their host on Linux and macOS too, and the next launch ends any that a dead host left behind (#942, #953).

  • The gateway and the raven web supervisor hold less memory, the session cache keeps at most 64 sessions, and on Linux a long-running host hands freed memory back to the system (#942, #954).

  • Trimming a long history no longer loops forever, holding the whole process, when a tool-call id is reused in a session, and is faster on long sessions (#885, #886, #904, #913).

  • raven web no longer takes a recycled pid in a stale serve.json for Raven, and raven web --stop does not signal a process it cannot identify. A stop that is refused or fails exits 1, as one that survives SIGKILL already did (#879).

  • With tools.restrict_to_workspace on, directory changes are tracked across pipelines and && / || chains, and shell conditionals, loops, cd - and unknown directory options are refused (#916).

  • A turn sent after an undo whose save failed is no longer lost when the conversation is reloaded (#944).

  • read_file shows the head of a line longer than its 128,000-character page, with a note, instead of an empty page (#959).

  • An MCP server that pages prompts/list, resources/list or resources/templates/list has every page read (#859).

  • raven upgrade keeps an installed boxlite and no longer prints uv's deprecation warning (#891, #896).

  • A config with a null skillForge section can be changed from Settings and the skill blocklist without breaking the next load (#914, #923).

  • Error hints no longer suggest installing Raven by name with pip (#858).

Installer

  • The installers stop instead of going on when they cannot verify the Node.js download: the checksum list unreachable, the package not listed, or no hashing tool. Install Node.js 22 or later with npm and run the installer again (#861).

Install

New install on Linux, macOS, or WSL2:

curl -fsSL https://raven.evermind.ai/install.sh | bash

New install on native Windows, in PowerShell:

irm https://raven.evermind.ai/install.ps1 | iex

Windows PowerShell 5.1 (the version built into Windows) cannot follow that URL's
redirect and stops with (308) Permanent Redirect. If you see that error, use the
direct one instead:

irm https://raw.githubusercontent.com/EverMind-AI/Raven/refs/heads/main/install.ps1 | iex

The installer sets up uv, Node.js 22, Raven and its default plugins, downloads
the browser runtime, installs or offers LibreOffice, and opens Raven in your
browser. On Linux, macOS and WSL2, it also downloads the knowledge reader's
PDF models and word dictionary (about 110 MB). 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 web

That keeps Raven running in the background and opens the page; raven web --stop
stops it. 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, model and LibreOffice downloads, or
RAVEN_NO_LAUNCH=1 to have the installer return without opening the page. The
Windows installer does not download the dictionary and models; there, and after
RAVEN_MINIMAL=1, raven resources fetches them.

Upgrade

Already running Raven? Upgrade in place -- configuration, sessions, and memory
are preserved. On a raven web install whose page is served by 0.2.3 or later,
the update row at the bottom of the sidebar does this for you, and the page
reloads itself, still signed in, once the new version is up. A page served by
0.2.2 or earlier refuses it; from the command line, stop the page first, then
upgrade:

raven web --stop
raven upgrade

On Linux and macOS, raven upgrade returns after installation completes.
On native Windows, it starts a separate helper and returns immediately. Wait
for the helper's completion message before restarting Raven.
Then run:

raven web

Neither raven upgrade nor the update row downloads the knowledge reader's
PDF models and a word dictionary (about 110 MB), which are new in this release.
Run this once after upgrading:

raven resources

raven upgrade installs the latest stable release together with the plugin
wheels its plugin list names. 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.5
  • Tag: v0.2.5
  • Stability: public preview patch
  • Assets: the raven wheel and source distribution, four plugin wheels
    (everos_memory, everos_cloud_memory, design_engine, ppt_engine), the
    locked constraints file raven-constraints.txt, and the plugin list
    raven-plugins.txt, which installs every plugin wheel but everos_cloud_memory

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.