* Add composer commands that work the same on every coding agent The composer's `/` menu now offers /new (alias /clear), /resume, /model, /plan, /copy and /export on every harness. The dashboard runs each one itself, so behavior no longer depends on what the selected agent's own CLI supports — none of them act on slash text in the mode orx runs them in except Claude Code, and only partially. `planCommand.ts` becomes `composerCommands.ts`, a registry the menu, the chips and the send path all read from. A skill whose bare name collides with a command is dropped from the menu: the composer inserts, and the server resolves, skills by bare name, so it would otherwise shadow. Only /plan composes with a prompt. The rest run as a whole message, so prose that merely mentions `/export` still reaches the agent, and a command is chipped only where it would actually run. /resume lists chats across every project: GET /api/chat/sessions now takes `scope=all` (400 without it or a projectId) and returns the 500 newest. Picking a chat in another project switches to it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Add /compact, which every coding agent can run The composer's /compact (alias /summarize) shortens a chat's context on every harness. Claude Code and Codex compact their own context in place and OpenCode summarizes through its endpoint, so the session survives; Cursor and the legacy `codex exec` path have nothing to call, so orx summarizes the transcript itself and reseeds a fresh native session with it through `bootstrap_context`, which is injected exactly while no native session exists. An agent that is merely not running is never traded for a summary: a resumable session reports "send a message first" instead, since a summary keeps only the newest 32 KiB of the chat. Compaction runs as a turn. It holds the session's turn slot, reports itself as a transcript row that shimmers while it works, and every write is gated on still owning that slot — Stop cancels it, and a cancelled row settles as failed rather than sitting at running. The row is the progress: it survives a reload, reaches every open client, and carries the reason when it fails. Codex waits for the compaction turn it started rather than the RPC ack, filtering by that turn's own id; Claude retires its child if its /compact fails, so an abandoned result cannot land in the next turn. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Add /goal, a standing objective every turn is reminded of (#385) `/goal <text>` gives the chat an objective, `/goal clear` drops it, and a bare `/goal` reports it. A pill beside Plan shows an active goal and clears it on click, so it is never invisible state. The goal is orx's own, stored on the session and re-injected into every turn. Claude Code's and Codex's native goals are deliberately unused: theirs mean different things (work until a condition is met, versus a long-lived objective), and one command cannot mean three things. Being orx-owned also makes it outlive compaction, a lost native session and a resume — the agent has to be told its goal every turn regardless. Goal is the second command that reads the rest of the message, so it is anchored: it must lead, and it is matched before Plan's unanchored token so a `/plan` mentioned inside a goal stays part of the goal. An empty composer gets a session first rather than losing the goal typed into it. Co-authored-by: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
OpenResearch
The local-first workspace for research agents and autoresearch.
Turn Claude Code,
Codex,
OpenCode,
Cursor, or Google Antigravity into research agents that can review
literature, develop hypotheses, run experiments, and produce research artifacts.
macOS 11+ · Windows beta requires Git for Windows
Get started
Install the CLI on macOS or Linux, then launch OpenResearch:
curl -LsSf https://openresearch.sh/install.sh | sh
orx up
On Windows, use the beta download above after installing Git for Windows.
orx up opens the local dashboard at http://127.0.0.1:4791.
Connect a local model to use LM Studio, oMLX, Ollama, or a custom endpoint with OpenCode.
Create an account at openresearch.sh to receive email updates and use managed OpenResearch compute.
Built for research agents
| OpenResearch gives you | |
|---|---|
| Parallel exploration | Give each research direction an independent agent session and isolated git worktree. |
| Reproducible experiments | Track variants in a git-native experiment tree; every run receives an immutable archive of its recorded commit. |
| Evidence in context | Keep logs, diffs, files, results, and artifacts tied to the work that produced them. |
| Your choice of agent | Use Claude Code, Codex, OpenCode, Cursor, or Google Antigravity, with the harness and model selected per session. |
| Your choice of compute | Run locally, on your own infrastructure, or with managed OpenResearch compute. |
| Local ownership | Keep projects, conversations, experiments, runs, logs, code, and artifacts on your machine. |
Autoresearch
OpenResearch can run the full loop autonomously: propose an idea, change the code, launch an experiment, inspect the evidence, and decide what to try next. Multiple agents can explore different directions in parallel while the experiment tree preserves their lineage.
Run anywhere
The same committed source snapshot can run locally, over SSH, or on Slurm, Kubernetes, Ray, Hugging Face Jobs, Modal, Tinker, and managed OpenResearch compute. Publishing the repository is not required.
Run the workspace next to remote GPUs while using the browser on your laptop:
orx up --remote user@host
SSH config aliases and custom ports are supported. The remote service binds to loopback and has no application-level authentication, so other users on that host can reach it.
CLI and agent integration
Install the OpenResearch skill into supported coding agents:
orx install-skills
Common commands:
orx projects
orx project view <project-id>
orx runs <project-id>
orx logs <run-id>
orx exp run <experiment-id>
orx discover keyword <query>
orx paper <arxiv-id-or-doi>
Run orx --help or orx <command> --help for the complete interface.
Local by default
OpenResearch runs on 127.0.0.1 with a local SQLite store. Creating a project
or launching a run does not publish your code. An
openresearch.sh account is only used for
service-owned capabilities such as organizations and managed compute.
Usage analytics
Official release builds send opt-out, coarse usage events tied to a random installation ID. They do not include code, prompts, file contents or paths, repository names, tokens, emails, or project and experiment identifiers.
orx telemetry off
orx telemetry status
orx <command> --no-telemetry
Source and development builds do not send analytics.