Skip to content

Installation

  • Docker, running. It is currently the only verified runtime — see runtime backends.
  • git, and a repository to work in. omh refuses to run outside one.
  • Rust 1.85+, but only to build from source. Declared as rust-version in Cargo.toml, and CI builds the whole tree on exactly 1.85 — so it is a floor something checks, rather than the version that happened to be on the maintainer’s machine.
Terminal window
$ brew install mindsers/tap/omh

macOS and Linux, arm64 and x86_64, from mindsers/homebrew-tap. The formula is generated by omh’s own release pipeline and its checksums are the ones that release published, so the two cannot disagree about what shipped.

brew upgrade keeps it current, which the script below cannot do — nothing in install.sh updates itself.

Terminal window
$ curl -fsSL https://ohmyharness.sh/install.sh | sh

That URL redirects to install.sh in this repository — a redirect rather than a copy, so the script you pipe to sh is the one in the tree you are reading.

The script resolves the latest release, picks the build matching your OS and architecture, verifies it against the published SHA256SUMS, and installs to ~/.local/bin. It refuses rather than guesses: an unverified download, a checksum that does not match, or a binary that will not run on your machine all stop the install, and a failed install never replaces a working omh.

OMH_VERSION tag to install, instead of the latest
OMH_BIN_DIR where the binary goes (default ~/.local/bin)
OMH_BASE_URL where to fetch from — for mirrors, and for testing the script. Pair it with OMH_VERSION: resolving latest always asks github.com

Linux builds are static musl, so one build covers every distribution.

Terminal window
$ git clone https://github.com/mindsers/ohmyharness && cd ohmyharness
$ cargo build --release
$ cp target/release/omh ~/.local/bin/ # or put target/release on PATH

omh is installed. Your first session sets a repository up and runs an agent in it.