Run ORCHER on your machine, and start, watch and control workflows on any engine, from your terminal.
orcher works the same against a local engine, a self-hosted one, or ORCHER Cloud.
Local engine:
orcher dev startruns the engine and its database in Docker, ready in secondsRun: start a workflow with JSON input or
key=valueparameters, and wait for its resultInspect: list, filter and search executions; see each one's status, result, journal, tasks and log
Control: cancel or terminate a workflow, send it an event, or act on many at once
Cloud: log in to ORCHER Cloud and keep a context per environment
Scriptable:
-o json,-o yamlor-o name, and exit codes that mean something
Install
macOS and Linux:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/orcher-io/cli/releases/latest/download/orcher-installer.sh | sh
Windows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://github.com/orcher-io/cli/releases/latest/download/orcher-installer.ps1 | iex"
Or with a package manager:
| Homebrew | brew install orcher-io/tap/orcher |
| Cargo | cargo install orcher |
| pip | pip install orcher, or run it without installing: uvx orcher |
| npm | npm install -g orcher, or run it without installing: npx orcher |
Every release has binaries for macOS (Apple silicon and Intel), Linux (x86_64 and arm64, glibc and musl) and Windows (x86_64) on its release page, with checksums.
Quick start
Start a local engine. It needs Docker, and keeps its data until you delete it:
orcher dev start # the engine on localhost:50051
Run a worker against it (the quickstart has one in Python, TypeScript and Rust), then:
orcher workflow start order --task-queue quickstart-python --id order-1001 --input '"order-1001"'
orcher workflow result order-1001 # wait for it, and print what it returned
orcher workflow list # recent workflow executions
orcher workflow get order-1001 # one of them in detail
orcher workflow history order-1001 # every step the engine recorded
orcher logs order-1001 --follow # its log, until it ends
Commands
| Command | What it does |
|---|---|
orcher dev start|stop|status|logs |
Run a local engine in Docker: the quick local loop |
orcher server start|stop|restart |
The same local engine with more control: an engine config file (--engine-config), an existing database (--database-url), the log level, a graceful stop |
orcher server status|version |
Whether an engine (and a gateway, when configured) answers, and which versions are running |
orcher workflow start <type> |
Start a workflow on --task-queue, with JSON --input; --wait for its result |
orcher workflow result <id> |
Wait for a workflow to finish and print its result |
orcher run <type>[@queue] -p key=value |
Start a workflow with parameters and follow it to the end |
orcher workflow list |
List executions; filter with --type and --status, or --query |
orcher workflow get <id> |
Status, timing, and result or error; --full adds pending tasks, timers and events |
orcher workflow history <id> |
The journal: every step the engine recorded |
orcher workflow tasks <id> |
The tasks the workflow ran, with attempts and durations |
orcher workflow event <id> <name> |
Send an event, with an optional JSON --payload |
orcher workflow cancel|terminate <id> |
Ask a workflow to stop, or stop it at once |
orcher logs <id> |
A workflow's log; --follow until it ends, --journal or --tasks for the other views |
orcher status |
A dashboard: where the CLI points, what answers, and workflow counts |
orcher queue list|stats |
Workflows by task queue |
orcher namespace ... |
list, get, create, update, deprecate, delete |
orcher batch ... |
Cancel, terminate, signal or reset many workflows at once, through a gateway |
orcher auth login|logout|status |
Log in to ORCHER Cloud (browser device flow, token, or password) |
orcher config ... |
Contexts: get-contexts, use-context, set-context, view, test-connection |
orcher new python|typescript|rust <name> |
A new project on the published SDK: a workflow, a task, a worker, a starter and an end-to-end test |
orcher new workflow <name> |
Add a workflow, with one task, to the project in this directory |
orcher test |
Check the project here builds (--dry-run), or run its workflows end to end on the engine |
orcher completion <shell> |
Shell completions for bash, zsh, fish, PowerShell and elvish |
Run orcher <command> --help for every flag and more examples.
Where commands go
| Flag | Environment | Default | |
|---|---|---|---|
--server |
ORCHER_SERVER |
the context's, else http://localhost:50051 |
The engine's gRPC address; https:// uses TLS |
--api-url |
ORCHER_API_URL |
the context's api, if any |
A gateway's HTTP address: login, batch operations, log streaming |
--context |
ORCHER_CONTEXT |
the current context | A named environment from the config file |
--config |
ORCHER_CONFIG |
~/.orcher/config.yaml |
The config file |
-n, --namespace |
ORCHER_NAMESPACE |
default |
The namespace to act in |
ORCHER_API_KEY, ORCHER_TOKEN |
the context's stored login | Credentials for an engine that requires them | |
ORCHER_CLOUD_URL |
https://api.orcher.io |
Where ORCHER Cloud is | |
ORCHER_CREDENTIAL_STORE |
the OS keychain | file keeps logins in credentials beside the config file (owner-only), as happens anyway where there is no keychain |
|
-o, --output |
table |
table, json, yaml or name |
The local engine's ports are bound to 127.0.0.1: it runs without authentication unless its config file turns it on. orcher dev start and orcher server start take --engine-version (default 0.5.5) to run another engine release, and other ports when the defaults, 50051 and 8080, are taken.
A command that fails prints the reason to stderr and exits with status 1; so do workflow result and run for a workflow that failed, was canceled or terminated, or did not finish in time. Commands that would stop or delete something ask first; pass --force when there is no terminal to ask on.
Contributing
Issues and pull requests are welcome. See CONTRIBUTING.md for how to build, test and propose a change.
License
Licensed under the Apache License, Version 2.0.
Metadata
Release files for orcher 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| orcher-0.1.0.tar.gz | 167.0 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| orcher-0.1.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| orcher-0.1.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| orcher-0.1.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| orcher-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| orcher-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | Python 3 | none | Linux glibc 2.17+ ARM64 | Details |
| orcher-0.1.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| orcher-0.1.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 46.0 MB
Release files / orcher-0.1.0.tar.gz
| Download URL | orcher-0.1.0.tar.gz |
|---|---|
| Size | 167.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ddd1ca5c7227da92a66fe0f1319e30564291d3bf7de488f990dbde32207f417
|
|
BLAKE2b-256 checksum How to use checksums |
132b822c585d22ee444d43c63011fe85e52bfb0b47abc2bd88fb69102ee07b5f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-win_amd64.whl
| Download URL | orcher-0.1.0-py3-none-win_amd64.whl |
|---|---|
| Size | 6.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8fd33a628bf8c835733c7ae603d04a7caac6f6faf6d50214c97a290d29dbfb51
|
|
BLAKE2b-256 checksum How to use checksums |
bd79c43726ecdab4da292e90fb30a3ffc75a717b8ab731b301d624c01abd9e33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | orcher-0.1.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 7.3 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
2c42b19c22bf0af56014d10ecf48b1532dcd080ecfc04be19cf14472d40702ae
|
|
BLAKE2b-256 checksum How to use checksums |
4e6516287d7c67af040126a122f64353cfcfe1ff25d8fbbd66747574a8f4e18d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | orcher-0.1.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
39c986647b0ad85cdf78733d0a3cdc5610fa8229750c135ef33d826237cc5c59
|
|
BLAKE2b-256 checksum How to use checksums |
f41da00a4645d2167956d41f362eb3e1627f7cbd564bd6f8a6484587df9e5d79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | orcher-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.1 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
baa52d8c711cf12742c17db139f68c0f6bbb544f374a1ee7e13e0e79391dc756
|
|
BLAKE2b-256 checksum How to use checksums |
74e66b928ca451cc5a3e29ff71b8dc4a83a1664861711f2ca17aa2765e9aed2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | orcher-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
f85318507ca3d0b1f9b443d904f7a877cc5c0c323925c6535a40ba39bd4892a1
|
|
BLAKE2b-256 checksum How to use checksums |
c68631895ee19bae1d1bad166f8d5950a8044c098f9f231f41a30bcbdb18bed3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-macosx_11_0_arm64.whl
| Download URL | orcher-0.1.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.6 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
431859252c69a9f41b0b8a8be26cb291bf1490bbafceb562b8c6fcedda1ac342
|
|
BLAKE2b-256 checksum How to use checksums |
83b1eae16877f46b0cb4e68be10275a0c83e93fbe18be562f641e48e4bfd3eee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency logRelease files / orcher-0.1.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | orcher-0.1.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.8 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
02b3ea155e4ed78b6dd430c7aa7491603cd8b54910ab9b195392b576c8645d19
|
|
BLAKE2b-256 checksum How to use checksums |
4909f6660982f2ef031c1f776aa6da67fd6e950efef2acf55738777f13a6da09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.
Transparency log