Muster Docs

Quick start

From zero to a working workforce in about ten minutes: install Muster, start the local server, claim the workspace from your phone, give a bot an engine, and send your first message. This guide covers a local server; remote engines and connected services use their own accounts and network connections.

~10 minutes macOS · Windows · Linux Bring your own model

1. Install the app (or skip it)

Grab the desktop build for your platform from the download page: a .dmg for macOS (Apple Silicon or Intel), an .exe installer for Windows, or a .deb / .AppImage for Linux. Install details, first-launch notes, and auto-update behavior live in Install & apps.

The desktop app embeds the Muster harness server, so there is no separate server setup. Prefer the terminal instead? Grab the single-file CLI — no checkout needed:

# one file, zero dependencies, ~40 KB — Node 22+ required
curl -fsSL https://muster.orazen.online/downloads/muster-cli.mjs -o muster
chmod +x muster

# boots the local server in the foreground (Ctrl-C stops it)
./muster up

# or detached: close the terminal and Muster keeps running
./muster up -d

Working inside a Muster checkout already? node cli/muster.mjs is the same CLI.

Note The CLI needs Node 22 or newer. On a desktop app install you don't need Node at all — the server ships inside the app.

2. Start the local server

In the desktop app, use the app menu: Muster ▸ Start local server. The server binds to your machine and the chat UI opens against it. In a packaged install that's the whole story — no environment to configure, nothing else to run.

If you went the CLI route, ./muster up is the server. Managing it:

# end a detached server (SIGTERM, then SIGKILL after 10s)
./muster stop

# tail its output (./muster logs 200 for more)
./muster logs

# useful flags
./muster up --port 8799          # pick another port
./muster up --data-dir ~/muster  # move the data directory

A suspended laptop stops everything — the machine the server runs on needs to stay awake.

3. Claim your workspace from your phone

When the server boots it prints a pairing QR code and link in the terminal (the desktop app shows it too):

Muster is up. Scan to open the console on your phone:
http://192.168.x.x:8799/claim#SEH5ZP3S

Scan it with your phone's camera — or open the printed link — and you land in the console already signed in as the owner. No account creation, no password to invent, and the pairing never leaves your network. Claim codes are single-use and expire after 5 minutes; five failed redemption attempts lock an IP out for ten.

Prefer a guided setup on the computer itself? Run ./muster setup: it connects to (or boots) the local server, signs you in as the owner, helps you pick an engine, and introduces your first bot. New phone later, or a second one? Run muster up again — it detects the running server and prints a fresh QR instead of starting a second one.

Every scan and sign-in is a tracked session. ./muster sessions lists them (current one marked), and ./muster sessions --revoke <prefix|other|all> kills one, all others, or all — useful if you lose a phone.

4. Add your first engine

An engine is what a bot thinks with. Open Settings → Providers → Add model provider and register any OpenAI- or Anthropic-compatible endpoint as a first-class engine: a name, the base URL, an optional API key, the wire format, and a model list. Local 127.0.0.1 endpoints like Ollama and LM Studio work out of the box on desktop installs.

You can also paste an API key from any of the 12 built-in providers in Settings → Providers — OpenAI, Anthropic, Google, xAI, DeepSeek, Mistral, Cohere, Groq, Together AI, Fireworks AI, OpenRouter, and OpenCode Zen. Google AI Studio, Groq, OpenRouter's :free models (including the Nex AGI N2.5 agentic models), and OpenCode Zen all have free tiers, so your first bot can cost nothing.

CLI route Desktop Muster also picks up agent CLIs already installed and logged in on your machine — Claude, Codex, Grok, Gemini and friends appear in the model picker automatically, no key pasting needed.

Engines, health, and per-bot model picks are covered in Engines & models.

5. Hire and brief your first bot

Hiring is one conversation. Create a bot from the roster, give it a name, a persona, and a brief — what it owns, how it should report back, what never to touch. The persona and memory persist across tasks, so a bot you briefed once keeps its brief tomorrow. Give it the engine you just added in its settings, and it's on the payroll.

Then send the first message — in the desktop app, from your phone, or straight from the terminal:

# say hello to a bot named "scout"
./muster send scout "Introduce yourself and tell me what you own."

# watch status and receipts
./muster status
./muster receipts

When the engine requests permission, the action surfaces as an approval card you Allow or Deny. Open a task receipt to review recorded turns, duration, token usage, and cost when the engine reports it. See Approvals & privacy.

Where your data lives

For a local install, Muster stores transcripts, keys, events, the database, and the auth secret in ~/.muster by default. A detached server keeps its record and log under ~/.muster/run/. Model providers, connected apps, backups, and other online features can make external requests. Back up the server's data directory along with any working folders your bots use.

Next steps