Install¶
From crates.io¶
Optionally install the scheduler binary for scheduled compositions:
Prebuilt binaries¶
Download from GitHub Releases — Linux, macOS, and Windows artifacts are built per tag.
From source¶
git clone https://github.com/alpibrusl/noether
cd noether
cargo build --release -p noether-cli
./target/release/noether version
Optional runtime dependencies¶
Nix — for non-Rust stages¶
Noether's stdlib stages are all Rust-native and run without Nix. You only need Nix if you author or execute stages written in Python, JavaScript, or Bash. Those stages run in a Nix-pinned hermetic runtime so the same source produces byte-identical results across machines.
Install Nix: nixos.org/download. No
further Noether configuration needed — noether run detects Nix
automatically when a graph references a non-Rust stage.
bubblewrap — the sandbox backend¶
The v0.7+ isolation layer wraps every non-Rust stage subprocess with a
bwrap call: fresh namespaces, UID-mapped to nobody, cap-drop ALL,
sandbox-private tmpfs at /work.
# Debian / Ubuntu
sudo apt install bubblewrap
# Fedora
sudo dnf install bubblewrap
# macOS (via nix-darwin or Docker)
# bwrap is Linux-only; use --isolate=none on macOS.
On Linux with bubblewrap present, noether run --isolate=auto (the
default) sandboxes every subprocess. Without bubblewrap, auto falls
back to unsandboxed with a warning. Pass --require-isolation (or set
NOETHER_REQUIRE_ISOLATION=1) to turn that fallback into a hard error
in CI.
Grid (broker + worker)¶
noether-grid pools LLM capacity across a company — see the
broker README
for the full pitch and deployment guide.
Install from crates.io (v0.8.2+):
Or download prebuilt binaries from GitHub Releases — Linux / macOS / Windows artifacts published per tag, same as the CLI.
Both crates carry a "RESEARCH —" prefix in their crates.io descriptions:
shipped and supported, but the operator surface is still evolving
release-to-release. Pin to exact versions in production.
Verify the install¶
If stage list prints the 85-stage stdlib, you're set.
LLM providers (for noether compose)¶
noether compose needs an LLM to translate problem descriptions into
composition graphs. It picks the first available provider at runtime:
| Provider | Env var | Notes |
|---|---|---|
| Mistral native | MISTRAL_API_KEY |
EU-hosted. Preferred default. |
| OpenAI | OPENAI_API_KEY |
Override base with OPENAI_API_BASE for Ollama / Together / etc. |
| Anthropic | ANTHROPIC_API_KEY |
LLM only (no embeddings). |
| Vertex AI | VERTEX_AI_PROJECT + creds |
Supports Mistral, Gemini, Claude via Model Garden. |
| Subscription CLI | NOETHER_LLM_PROVIDER=claude-cli (or gemini-cli, cursor-cli, opencode) |
Uses your seat's auth; no API key. |
| Mock | (fallback) | Deterministic, used in tests. |
If none of these is configured, noether compose still runs — against
the mock provider — but the results are not useful for real problems.
noether stage search and noether run never need an LLM.