Installation
Install the stella CLI via the install script, Homebrew, cargo, or from source.
stella is one self-contained program called stella. There's no separate
runtime to install. This is the first of four steps:
Prerequisites
- macOS or Linux,
x86_64orarm64. - For the prebuilt binary or Homebrew: just
curl. - For
cargo installor building from source: Rust 1.90 or later (via rustup) andgit. - An API key for any one supported provider. Or, skip the key and use a local OpenAI-compatible model server instead (Ollama, vLLM, LM Studio, llama.cpp). See Providers & models.
- Optional:
ghon yourPATH, for the GitHub-backed workflows.
Install
Prebuilt binary (curl | sh)
This installs the newest release for your platform, checks its SHA-256, and
falls back to cargo install when there's no prebuilt binary for your
platform. That covers unsupported targets, and musl-based Linux even on a
supported architecture:
curl -fsSL https://stella.oxagen.sh/install.sh | sh
stella --versionBy default, the binary lands in ~/.local/bin. If stella isn't found
afterward, the script tells you and prints the export line to add. Two
environment variables control this:
STELLA_INSTALL_DIRWhere the binary goes. On the cargo install fallback, a value ending
in /bin is treated as the cargo root's bin directory, so the same
variable works for both paths.
Default $HOME/.local/bin
STELLA_VERSIONPin a specific release tag. Works with or without a leading v; both
point to the same tag.
Default the latest release
STELLA_INSTALL_DIR=/usr/local/bin STELLA_VERSION=v0.9.0 \
sh -c "$(curl -fsSL https://stella.oxagen.sh/install.sh)"v0.9.0 here is just an example. Every merge to main cuts a new patch
release, so pick the tag you actually want from the
releases page. This page
can't keep up with a version that changes daily.
Homebrew
This installs the prebuilt binary from the tap. No Rust toolchain needed. The formula stays up to date automatically with every release tag:
brew install macanderson/tap/stella
# equivalently:
brew tap macanderson/tap && brew install stellaFrom cargo
Requires Rust 1.90 or later, and git:
cargo install --locked --git https://github.com/macanderson/stella stella-cli
stella --versionFrom source
git clone https://github.com/macanderson/stella.git
cd stella
cargo build --release
./target/release/stella --versionThe curl | sh script and Homebrew both fetch binaries built by the release
workflow, which runs on every v* tag. They cover macOS and glibc Linux on
x86_64 and arm64. Anything else, including musl Linux, falls back to
cargo install, which needs the Rust toolchain.
Verify
These three commands work before you've set up anything. They don't need a provider or an API key:
stella version # the build you just installed
stella models list --all # every provider, its slugs, pricing, and key status
stella doctor # the integrity of this workspace's local stateOn its own, stella models only shows providers with a working credential,
so it's the fastest way to check "did my key work?" Add --all to see the
whole catalog before you've set anything up.
Once a key is in place, stella config shows exactly what it resolved to.
This is the one verification command that does need a credential:
stella configThen try it. With one key exported, here's the whole path from install to your first change:
export ANTHROPIC_API_KEY=sk-ant-...
cd your-project
stella init # index the repo, infer the domain taxonomy
stella --spend-limit 1 run "explain what this repo builds and how it is laid out"Next: the Quickstart, or
repo initialization to see what
stella init creates.