* Retry ETXTBSY on detection spawns to fix flaky main CI Two main-branch CI runs failed within hours when a test exec'd a just-written shell script: execve returned ETXTBSY because a concurrent fork elsewhere in the test binary briefly held an inherited write fd on the target until its own exec. probe_bin mapped that transient spawn error to Unknown, failing assertions that expect a deterministic Broken. spawn_with_permit is the funnel for every detection child, so retry ExecutableFileBusy there — the window is milliseconds. Also covers the production equivalent: probing a CLI while its installer replaces it. * Escalate the ETXTBSY retry and reuse it for the OpenCode server spawn 3x25ms only tolerated ~75ms of sibling fork-to-exec slowness; the budget now escalates 25->400ms (~0.8s total), still far inside every caller deadline, and only paid when ETXTBSY actually fires. Extracted as spawn_retrying_busy so the same guard covers the one other site where the transient reaches a user: start_server spawning an opencode binary its installer is mid-replacing. * Drop the dead backoff cap, document Unix-only ETXTBSY, test the retry Review nits: with five retries the escalating backoff peaks at 400ms on its own, so the .min() clamp never binds; ExecutableFileBusy is a Unix phenomenon; and the FnMut closure makes the retry policy checkable with injected errors — no process fixture needed.
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.