Install

tm is a single Rust binary (package tm-cli, binary name tm) plus an optional built web client. It is not published to crates.io. Install it with Homebrew (brew install alliecatowo/tap/ticket-master), from a GitHub release, or from source.

Requirements🔗

  • macOS or Linux.
  • Each GitHub release ships tm-<target>.tar.gz for aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu and x86_64-unknown-linux-gnu, and Homebrew installs the right one.
  • For the source install: Rust 1.85+ and C and C++ compilers (SQLite is built from source).
  • At least one configured model provider to run a turn; see Providers.

Option A: release tarball🔗

curl -fLO https://github.com/alliecatowo/ticket-master/releases/download/v0.1.0/tm-aarch64-apple-darwin.tar.gz
tar -xzf tm-aarch64-apple-darwin.tar.gz
./tm-aarch64-apple-darwin/tm --version

Or clone the repo and run scripts/install.sh (needs an authenticated gh). It detects your OS and architecture, downloads the matching asset, verifies its .sha256 when the release carries one, and installs into ${PREFIX:-$HOME/.local} (bin/tm, share/tm/web). Pass a tarball path to install from a local file instead.

Option B: from source with cargo🔗

cargo install --git https://github.com/alliecatowo/ticket-master.git tm-cli --locked

This path has no bundled web client; tm serve needs --web-dir (or TM_WEB_DIR) pointing at a build of clients/web/.

Option C: development checkout🔗

git clone https://github.com/alliecatowo/ticket-master.git
cd ticket-master
mise install
mise run build
./target/debug/tm init

Provider setup🔗

Two quick ways to get a working provider:

  • ANTHROPIC_API_KEY: the default; coder.fast routes to Anthropic.
  • DevPass (any OpenAI-compatible gateway): set all three of DEVPASS_API_KEY, DEVPASS_BASE_URL and DEVPASS_MODEL. A partial set does nothing.

A .env file in the current directory is loaded automatically and never overrides variables already set in your environment.

tm provider detect   # which backends have credentials in this environment
tm provider test     # one tiny real (billed) completion through each

Upgrade and uninstall🔗

Re-run scripts/install.sh against a newer release to upgrade in place, or re-run the cargo install command with --force. To uninstall:

rm -rf "${PREFIX:-$HOME/.local}/bin/tm" "${PREFIX:-$HOME/.local}/share/tm"   # cargo install: cargo uninstall tm-cli

tm’s own state (.tm/ in a repo, or $TM_HOME, default $HOME/.tm) is left alone.