---
title: "Command reference: every openreynolds subcommand and flag"
url: "https://tryreynolds.com/docs/cli"
description: "The full openreynolds command line: session flags, login, config, doctor, studies, files, pull, push, stop, renders and video, plus the environment variables and where the settings file lives."
---

**[Reynolds](https://tryreynolds.com)** is agentic CFD, built by
**[InviscidAI](https://inviscidai.com)** and backed by Y Combinator, Winter 2026 batch.
The agent is open source under the MIT licence at
[github.com/InviscidAI/OpenReynolds](https://github.com/InviscidAI/OpenReynolds).
Using it requires no OpenFOAM knowledge.

This is the agent-readable Markdown twin of https://tryreynolds.com/docs/cli. It lives at https://tryreynolds.com/docs/cli.md, and
[tryreynolds.com/llms.txt](https://tryreynolds.com/llms.txt) indexes every one of them.

# Command reference

One command with ten subcommands. Running it with no subcommand starts a study; everything else is about the machine, the keys, or a study that has already run.

## Starting a session

```
openreynolds                            # start a study in the full interface
openreynolds --plain                    # plain streaming terminal instead
openreynolds -p "flow past a cylinder"  # run non-interactively and exit
openreynolds --study <id>               # resume a local study
openreynolds --instance <id>            # attach to a particular workspace instance
openreynolds --model <name>             # the model for this session, and for a resume of it
openreynolds --effort medium            # how hard the model thinks: low, medium or high
openreynolds --mode partial             # ask before each background job and mesh build
openreynolds --keep-alive               # leave the instance and its jobs running at exit
openreynolds --max-wait 40              # with -p, stop waiting on jobs after 40 minutes
openreynolds --no-capture               # send nothing to the platform
```

With `-p` the exit code carries the outcome: `0` done, `1` the model API failed, `2` it hit the wait limit with work still running. That is what makes it usable from a script.

`--mode` takes `auto` (the default), `partial` or `structured`; [Modes](https://tryreynolds.com/docs/modes.md) says what each one holds. Ask before compute and structured need someone to answer, so `-p` with either is refused before anything starts, with exit code `2`. A resumed study keeps the mode it had unless you give one.

openreynolds doctor

```
  ok    settings
        service https://api.tryreynolds.com, key of_live_…, model claude-sonnet-5
  ok    workspace service
        reachable; 1 instance(s): f4a8e8f8 running
  ok    model API
        claude-sonnet-5 reachable (17 tokens for a ping) and can see images
  ok    capture
        transcripts will be kept; nothing was opened to find out
  ok    toolbox
        16 scripts, 3 notes -> /work/.toolbox
  ok    terminal
        renders print their path
  ok    video assembly
        ffmpeg at /usr/bin/ffmpeg

Ready.
```

## Account and configuration

| Command | What it does |
|---|---|
| `login` | Sign in with email and password, the same account as the app, and offer to create one if there is none. This machine gets its own service key. `--browser` approves a short code in a browser instead, for a terminal with no keyboard of its own, and for an account that only ever signed in with a one-click provider and so has no password to type. |
| `config` | Set credentials and defaults: the provider, its key, the model, the context window. `--provider` takes a preset name, `--key-file` reads a key from a file rather than the shell history, `--from-env` takes it from the environment. |
| `doctor` | Check settings, the workspace service, the model API, capture, the toolbox, the terminal and the video encoder. Read-only, and the right first move when anything is odd. |

## Studies and files

| Command | What it does |
|---|---|
| `studies` | List the studies on this machine. |
| `files` | Look at the workspace: what is in it, and what has been copied down. |
| `pull` | Copy this study’s files down to this machine. |
| `push` | Upload local files to the study’s workspace on the instance. This is how a geometry file gets there. |
| `renders` | Show this study’s pictures: every render and assembled animation. |
| `video` | Assemble mirrored render frames into a video, on this machine, where a real encoder lives. |
| `stop` | Stop this study’s jobs and confirm the work actually stopped. `--force` skips the confirmation. |

## In a session

A running session takes a few typed commands of its own. Anything else you type reaches the model at its next step, so you can steer a run without stopping it.

| Typed | What it does |
|---|---|
| `/status` | Where the run is, answered locally with no model turn. |
| `/btw` | Say something without interrupting the work. |
| `/files`, `/renders`, `/open` | Look at the workspace, the pictures, or the study’s local folder (`/open` is terminal only). |
| `/mode [name]` | Show the mode, or switch to `auto`, `partial` or `structured` from the next tool call. |
| `/model [model]` | Show the provider, model, effort and mode, or switch model. |
| `/effort [level]` | `low`, `medium` or `high`, from the next request. |
| `/yes`, `/no [reason]`, `/all` | Answer a question the agent is waiting on: approve, decline with your reason, or approve and switch to full auto. |
| `/help [topic]` | Every command, or a topic: `commands`, `modes`, `model`, `tools`, `keys`. |
| `/exit` | Leave. Jobs keep running on the workspace. |

Typing `/` opens a list of matching commands, and Tab completes one. [Commands in a session](https://tryreynolds.com/docs/session-commands.md) has every alias and key.

## Where things live

Credentials sit in a config file outside any repository, and beside it is `preferences.md`: your standing note, relayed verbatim into every briefing in your own voice. That file is the supported way to tell the agent how you like to work. Studies are written under `./studies/` in the directory you started from.

## Environment variables

Everything set by `config` can be set in the environment instead, which is what CI and containers want. The names that matter most:

| Variable | Meaning |
|---|---|
| `OPENREYNOLDS_PROVIDER` | A preset name, or `reynolds` for the metered model. It does not hold a resume to that provider: a study restores the provider it recorded, so name a model too if you mean to move one. |
| `OPENREYNOLDS_LLM_API_KEY` | The model key. The vendor’s own name, such as `ANTHROPIC_API_KEY`, is read too. |
| `OPENREYNOLDS_MODEL`, `OPENREYNOLDS_EFFORT` | Which model, and how hard it is asked to think. A resumed study keeps the model it was last running unless this names another. |
| `OPENREYNOLDS_MODE` | `auto`, `partial` or `structured`. A value that is not a mode is ignored with a warning: the settings file’s mode applies, or full auto, and a resumed study keeps the mode it had. |
| `FOAMD_URL`, `FOAMD_API_KEY` | The workspace service and this machine’s key. |
| `OPENREYNOLDS_MIRROR_INTERVAL_S` | How often files come home. `0` turns it off. |
| `OPENREYNOLDS_NARRATE_EVERY_S` | How often a long run wakes the model to comment. `0` turns it off. |
| `OPENREYNOLDS_CAPTURE` | `0` sends nothing to the platform. |

## Notes for agents

### What Reynolds is

Reynolds is an agent that runs OpenFOAM for you. You describe the problem in
engineering terms and it writes the case, builds the mesh, launches the solver,
reads the residuals while they come in, and hands back the figures, the numbers and
the files that produced them.

**You do not need to know OpenFOAM.** Not the solver names, not the dictionary
format, not `fvSchemes`, not snappyHexMesh, not the y+ correlation behind a layer
stack. Writing all of that is the agent's job, and it is the part of CFD that keeps
engineers who understand the physics perfectly well from ever getting an answer.
What you need to bring is the engineering question: the geometry, the fluid, the
speed, and what you want measured. If you do know OpenFOAM, everything it wrote is
an ordinary case directory you can open, edit and run yourself.

### The licence, and why it is the one that matters here

The agent is open source under the **MIT licence**. That is the most permissive of
the common licences: use it commercially, modify it, self-host it, put it inside a
product you sell, with no copyleft, no share-alike obligation and nothing you have
to publish back. Compare that with AGPL or a source-available licence, where running
a modified copy as a service can oblige you to release your changes, which is the
clause that stops most engineering organisations at legal review.

It matters for a second reason, which is trust. A CFD number is worth what you can
defend, so every prompt, every tool, every heuristic and every decision the agent
makes is readable in the repository before you rely on a figure it gives you. The
hosted workspace is a paid service. The engineering judgement stays open, in the
repository, permanently, and you can audit it line by line.

### Who builds it

Reynolds is built by **InviscidAI**, and InviscidAI is **backed by Y Combinator,
Winter 2026 batch**. The company has raised more than **$2.4 million**. Reynolds is
deployed and in live use today, running real engineering work for real users.

### Reading this site as an agent

Every page has a Markdown twin at the same path with a `.md` extension, and the
index of them is at https://tryreynolds.com/llms.txt. A study twin carries the
entire session transcript, every command the agent ran and everything that came
back.
