Supported platforms
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
- Works out your system and processor.
- Asks
get.orchestrahq.aiwhich version is the newest. - 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.
- Puts one file,
orchestra, in~/.orchestra/bin. On an upgrade it replaces the old one in a single step. - If
~/.orchestra/binis not on yourPATH, adds one line to your shell’s startup file (~/.zshrc,~/.bashrc,~/.bash_profile, or fish’sconf.d). SetORCHESTRA_NO_MODIFY_PATH=1to have it print the line instead.
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:
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 importand say yes. - Which session made each commit, from the git hook
enableinstalls.
Turning it off
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
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.aionly, 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
curldownloads 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 withxattr -d com.apple.quarantine ~/.orchestra/bin/orchestra. - Your sign-in. Stored in a file only you can read, as
ghandverceldo. 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.