| name | openresearch-cli |
|---|---|
| description | Use the `orx` CLI to run local OpenResearch projects from a terminal — create experiment branches, launch and supervise compute, inspect logs and evidence, and manage the experiment tree. Read this before driving `orx` programmatically. |
orx up owns projects, experiment branches, and execution in a local Git
repository and local database. Use the local session worktree to read, diff,
and edit code (see orx-git).
This overview is deliberately short: it carries the cardinal rules and a command
quick-reference, then points at focused modules for everything else. Load a
module with orx skill <name> (the bundled index is printed at the end of orx skill output).
These four govern everything below. Breaking any one silently invalidates your
results — they are not style preferences. The orx-experiment-tree module
expands on the why; these are the non-negotiables.
- Never edit a node once a run has answered it. A node freezes the moment
a run establishes its baseline or tests its hypothesis — that includes the
root — and freezing is permanent: a disappointing result is still a result.
Until then it is provisional: seeding it, fixing its deps, and making it
run all happen on its own branch (
orx-experiment-tree). To try an idea, branch a child and edit the child. - The run command and the environment are a fixed contract — identical on
every node. A child inherits its parent's run command verbatim; leave it
alone. Do not give nodes different start commands, and do not vary
behavior through environment variables or env-prefixed commands
(
LR=3e-4 python …). The only thing that may differ between nodes is the committed code/config on the node's git branch. Set the local project's command once withorx project edit <projectId> --run-command '<cmd>'. - Vary code, not knobs-in-the-command. Encode hyperparameters in the code/config files and branch a child per variant — never sweep them by editing the run command or passing env vars. Every node runs the same command over different code, so their logged result summaries stay comparable.
- Grow the tree downward, not sideways. Fan a little within a round (the
options of one decision), then descend onto that round's winner for the
next round. A root with a long row of direct children and no grandchildren is
the failure mode. See "Shape the tree" in the
orx-experiment-treemodule.
If you're ever tempted to change the command, pass an env var, or pile another node onto the root instead of branching a child, editing its branch, and descending — stop. That's the anti-pattern, not a shortcut.
orx login # opens a browser, stores a token at ~/.config/openresearch/credentials.json
orx logout # remove the stored token- The API base URL resolves from
--api-url→OPENRESEARCH_API_URL→ a built-in default. SetOPENRESEARCH_API_URLfor non-local use. - Local project and run commands do not require a token. OpenResearch compute,
instance provisioning, and account settings require
orx login.
Project-scoped commands take a project id; experiment-scoped commands take an
experiment id; run-scoped commands take a run id. Don't mix them — get
ids from orx projects, orx project view, and orx runs respectively. Each
group below has a module (orx skill <name>) with the full flags and rules.
| Command | What it does |
|---|---|
orx login [--api-url <url>] |
Open a browser, do loopback OAuth, store a token. |
orx logout |
Remove the stored token. |
| Command | What it does |
|---|---|
orx projects [--json] |
List projects in the local orx store. |
orx orgs [--json] |
List organization ids available for OpenResearch compute (login required). |
orx project view <projectId> |
Show a local project's details and experiment tree. Experiment ids come from here. |
orx runs <projectId> [--experiment <id>] |
List runs as a table, newest first. Run ids come from here. |
| Command | What it does |
|---|---|
orx logs <runId> [--head] [--bytes <n>] [--range <s>:<e>] |
Read a run's terminal log. |
| Command | What it does |
|---|---|
orx up |
Open the local dashboard to import or create a local project. |
orx project edit <localProjectId> [--name "<n>"] [--run-command "<cmd>"] |
Edit a local project's name or fixed run command. |
orx create-experiment <localProjectId> --title "<t>" [...] |
Add a local experiment node; prints its Git branch. |
orx compute [--gpu <id>] [--count <n>] [--provider <name>] / orx compute --cpu |
List the GPU/CPU compute catalog. |
orx instance create <orgId> (--gpu <id> … | --cpu <flavor> …) |
Spin up a standalone instance in an org; see orx-instances. |
orx exp status/run/cancel/wait/wake <localExpId> |
Inspect, run, cancel, wait on, or register a wake-up for a local experiment node. |
orx exp desc <expId> [--set "<text>" | --stdin] |
Read or overwrite the experiment's description. |
orx agent spawn "<task>" [--title "<t>"] [--stdin] [--no-wake] |
Delegate an independent task to a helper session; see orx-agent-delegation. |
To read or edit a node's code—including diffing what a run changed—use plain
Git in the local session worktree. See the orx-git module.
Use before any web search for academic/research queries (paper, author, blog, model release).
| Command | What it does |
|---|---|
orx discover keyword "<query>" |
Call the alphaXiv full-text retrieval primitive with match snippets. |
orx discover embedding "<query>" |
Call the alphaXiv semantic retrieval primitive. The main agent ranks candidates and decides focused follow-ups; see orx-lit-review. |
orx discover openalex "<query>" |
Search the cross-disciplinary OpenAlex scholarly graph. |
orx discover biorxiv "<query>" |
Search bioRxiv preprints through OpenAlex's bioRxiv index. |
orx paper <id|url> [--source ...] [--full] |
Fetch a paper: alphaXiv report with automatic full-text fallback (--full forces raw text), or OpenAlex/bioRxiv metadata+abstract. Source auto-detected from the id. |
| Command | What it does |
|---|---|
orx skills add <path> |
Save a reusable skill from a SKILL.md file or skill ZIP across projects. |
orx templates add <path> |
Save a reusable LaTeX template from a .tex file or template ZIP across projects. |
| Command | What it does |
|---|---|
orx skill [name[/resource]] |
Print this overview, one bundled module, or a lazily loaded module resource such as compute/hf. |
The detail lives in focused modules — load one with orx skill <name> (the bundled
list, with one-line descriptions, is printed at the end of orx skill output):
- orx-experiment-tree — the experiment-tree model, the auto-research loop, and
orx exp desc. - orx-create — initialize a local project and add local experiment nodes.
- orx-compute — launch and monitor runs; after resolving the backend, read its bundled reference.
- orx-instances — create persistent standalone machines for manual work.
- orx-git — read, edit, and diff a node's code with plain git.
- orx-agent-delegation — delegate independent work to helper sessions safely.
- orx-evidence — capture and inspect experiment results through run logs.
- orx-reports — write durable research outputs into the project's artifacts directory.
- orx-figures — publication-quality figures in matplotlib or TikZ. Load it before writing any plotting code, then read the one reference for that figure type.
- orx-customize — add reusable skills and LaTeX templates across projects.
- orx-paper — draft a paper or preprint as LaTeX that renders and compiles to PDF.
- orx-lit-review — main-agent cross-corpus retrieval, source-selective follow-up policy, and paper content; the preferred starting point for academic/research queries.
Orienting in a project (read-only discovery):
orx projects # find the project id
orx project view <projectId> # see the tree, pick an experiment id
orx skill experiment-tree # the model + the auto-research loop
orx runs <projectId> # find a run id
orx logs <runId> # read its outputTo actually drive a project toward a goal — edit each node's code on its Git
branch and keep the round moving — follow the auto-research loop in
the orx-experiment-tree module. Every completed run is a decision point with
four moves: repair the same node when a run answered nothing, refill
the round with another sibling, promote the winner and descend, or stop.