> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orchestrahq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the CLI

> What the installer puts where, every command, what leaves your machine, and how to turn it off

The Orchestra CLI brings the coding agents on your machine (Claude Code, Codex,
Gemini CLI, Cursor, OpenCode) into your workspace. It is one self-contained
executable: no Node, no package manager. To get going, follow
[Onboarding](https://docs.orchestrahq.ai/onboarding.md); this page is the reference.

```bash theme={null}
curl -fsSL https://get.orchestrahq.ai | sh
```

Open [get.orchestrahq.ai](https://get.orchestrahq.ai) in a browser to read
exactly what runs.

## Supported platforms

| System | Processors |
| - | - |
| macOS 13 (Ventura) or newer | Apple Silicon and Intel |
| Linux with glibc (Debian, Ubuntu, Fedora, and most others) | x86-64 and arm64 |
| Windows, inside WSL2 | Installs and runs as on Linux, and saves agents you run inside WSL2. |

Windows itself is not supported: the installer stops with a message. Alpine
and other musl-based Linux distributions are not supported yet. The web app
works in any current browser, on any system.

## What the install script does

1. Works out your system and processor.
2. Asks `get.orchestrahq.ai` which version is the newest.
3. Downloads that version and its published SHA-256 checksum, over HTTPS, from
   that host only. If they do not match, it stops and installs nothing.
4. Puts one file, `orchestra`, in `~/.orchestra/bin`. On an upgrade it
   replaces the old one in a single step.
5. If `~/.orchestra/bin` is not on your `PATH`, adds one line to your shell's
   startup file (`~/.zshrc`, `~/.bashrc`, `~/.bash_profile`, or fish's
   `conf.d`). Set `ORCHESTRA_NO_MODIFY_PATH=1` to have it print the line
   instead.

It never asks for an administrator password and never uses `sudo`. Nothing
is sent anywhere until you sign in.

Optional settings: `ORCHESTRA_VERSION=0.1.2` installs a particular version,
and `ORCHESTRA_INSTALL_DIR=<dir>` installs somewhere other than
`~/.orchestra/bin`.

## Commands

`orchestra help` lists everything. These are the ones you use by hand:

| Command | What it does |
| - | - |
| `orchestra` | Opens the terminal client: your workspace's sessions, live first. Enter starts a session; ctrl+p first makes it private. |
| `orchestra tui [session-id]` | The same, or straight into one session. |
| `orchestra login` | Signs in through your browser. `--api <url>` names a server other than Orchestra's own. |
| `orchestra logout` | Signs out on this machine. Capture pauses until you sign in again. |
| `orchestra enable` | Saves agent sessions in this repository and its worktrees from now on. Other folders are never read or sent. |
| `orchestra disable` | Stops saving and removes this repository's hooks. |
| `orchestra import` | Brings in this machine's earlier sessions from enabled repositories, after showing what it would send and asking. |
| `orchestra start ["task"]` | Starts Claude Code here, `--private` or `--off-record` if you choose. |
| `orchestra sharing [session]` | Who can see a session, and changes it. |
| `orchestra brief <issue>` | Prints an issue's brief, to pipe into any agent. |
| `orchestra work <issue>` | Links the next agent session here to an issue and starts it. |
| `orchestra join <session-id>` | Attaches this terminal to a running session. |
| `orchestra fork <session-id>` | Continues any session as a new one. |
| `orchestra watch` | Captures this repository's sessions within seconds, in the foreground. |
| `orchestra capture` | Records the latest commit, linked to the session that made it. The git hook runs it for you. |
| `orchestra capture-session` | Saves one agent session by hand. |
| `orchestra remember <statement>` | Saves a fact or decision to shared memory. |
| `orchestra recall <query>` | Searches memory. Every result is cited. |
| `orchestra memory` | Whether the workspace keeps notes from sessions, and what it costs. |
| `orchestra connect linear` | Connects Linear once; it syncs by itself after that. |
| `orchestra sync` | Forces a Linear catch-up. Rarely needed. |
| `orchestra backup` | How recent the server's backup of your workspace is. |
| `orchestra whoami` | Who you are signed in as. |
| `orchestra agent list` | Which agents are supported and saved here. |
| `orchestra font` | Installs, removes or checks the font of agent logos. |
| `orchestra status` | Configuration, hooks and the last capture. |
| `orchestra doctor` | Checks everything, and says what to do about anything that is off. |

The rest of `orchestra help` is run by hooks or by people who operate an
Orchestra server, and says so.

## Upgrading

Run the install command again. It replaces the executable in place, and the
background process moves to the new version. `orchestra --version` prints the
version you have. The CLI never updates itself.

When the server has a newer version, the CLI says so once per command. If the
server needs a newer version than yours, the CLI refuses before doing anything
and gives you the command to run; writes made meanwhile wait on your machine
and are sent after you upgrade. `orchestra doctor` shows your version and the
oldest the server accepts.

## What leaves your machine

Once you are signed in, Orchestra sends your workspace:

* **Transcripts of agent sessions in repositories where you ran
  `orchestra enable`**, and their worktrees: Claude Code, Codex, Gemini CLI,
  Cursor and OpenCode, from when you ran it. Sessions in any other folder on
  the machine are never read or sent.
* **Earlier sessions from those repositories**, only when you run
  `orchestra import` and say yes.
* **Which session made each commit**, from the git hook `enable` installs.

A transcript is everything in the session: your prompts, the agent's replies,
the commands it ran and their output, and the contents of files it read or
changed. Secrets are removed on your machine before anything is sent (see
[Redaction](https://docs.orchestrahq.ai/session-privacy.md#redaction)). To keep one session out entirely,
start it off the record (see [Session privacy](https://docs.orchestrahq.ai/session-privacy.md)).

## Turning it off

| Command | What stops |
| - | - |
| `orchestra disable` | Run it in a repository where you ran `enable`. Removes that repository's hooks and puts its `.claude/settings.json` back exactly as it was, stops the background process, stops following other agents, and removes the start at login. |
| `orchestra logout` | Deletes your sign-in from this machine. Nothing is sent after this. Anything the CLI reads while you are signed out waits in `~/.orchestra/outbox` and is sent only if you sign in again; delete that folder to discard it. |

A Claude Code session in another repository where you ran `enable` starts the
background process again until you run `orchestra disable` there too.
`orchestra logout` covers every repository at once.

## Where things are

| Path | What it is |
| - | - |
| `~/.orchestra/bin/orchestra` | The executable. |
| `~/.orchestra/credentials.json` | Your sign-in. Readable only by you (file mode 0600), and only ever sent to the server it was issued for. It is a file, not an entry in your system keychain. |
| `~/.orchestra/client.json` | The server you signed in to, if you chose one with `--api`. |
| `~/.orchestra/enabled-repositories.json` | The repositories you ran `enable` in: the only ones sessions are saved from. |
| `~/.orchestra/outbox/` | Writes waiting to be sent. |
| `~/.orchestra/capture-tailer.*` | The background process's state and log. |
| `~/Library/LaunchAgents/ai.orchestrahq.capture-tailer.plist` (macOS) or `~/.config/systemd/user/orchestra-capture-tailer.service` (Linux) | The start at login. |
| `<repository>/.claude/settings.json` | Claude Code hooks, in repositories where you ran `enable`. |

To remove Orchestra completely: run `orchestra disable` in each repository
where you enabled it, then `orchestra font remove` and `orchestra logout`,
then delete `~/.orchestra` and the `PATH` line the installer added.

## Security notes

* **Downloads.** HTTPS from `get.orchestrahq.ai` only, with no redirects to
  another host, and a SHA-256 checksum checked before anything is installed.
  The checksum comes from the same host, so it guards against a damaged or
  altered download in transit, not against that host itself.
* **Signing on macOS.** The macOS executable is signed ad hoc, which is what
  Apple Silicon requires to run it. It is not notarized by Apple. Installed
  with the command above, macOS runs it without a prompt, because files that
  `curl` downloads are not marked as coming from the internet. If you download
  the archive in a browser instead, macOS will refuse to open it until you
  remove the mark with `xattr -d com.apple.quarantine ~/.orchestra/bin/orchestra`.
* **Your sign-in.** Stored in a file only you can read, as `gh` and `vercel`
  do. It is bound to the server it was issued for: pointing the CLI at another
  address does not send it there, and the CLI tells you to sign in to that
  address instead.
* **No database access.** The executable reaches your workspace through the
  Orchestra API and nowhere else. It does not open databases, whatever your
  environment contains.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.