Crew ships as a Python package that bundles the React dashboard. There are four ways to install it; pick whichever fits how you'll run it. All builds are driven by plain pip + npm/Vite + pytest. No proprietary tooling.
| Requirement | Needed for | Notes |
|---|---|---|
| Python 3.12+ | Backend runtime | 3.12 is the supported floor. The one-line installer provisions a pinned CPython 3.12 by default. |
| Node.js 22+ | Building the dashboard from source | 24 LTS recommended. Not needed for the prebuilt wheel, desktop app, or Docker image |
| kiro-cli | Talking to the LLM | Install it on the Gateway host. The dashboard guides setup and can update an installed but outdated CLI. |
Crew drives an LLM through kiro-cli over the Agent Client Protocol. It is the only provider (agent.provider = acp). The dashboard guides Kiro CLI setup and sign-in before chat opens. kirocrew doctor reports whether the binary is found and logged in.
If the Gateway detects a Kiro CLI without the required acp command, setup stops at Kiro CLI update needed. Select Update Kiro CLI to run kiro-cli update on the Gateway host, then retry the check.
Semantic memory needs no setup. Embeddings run in-process and the Gateway downloads its embedding model (~610 MB) in the background on first start, verifies it, and stores it under ~/.kiro/crew/models. Until the model lands, memory search falls back to keyword matching and picks up embeddings automatically without a restart. Set KIROCREW_EMBED_MODEL_URL to point at a mirror for airgapped installs.
Download Kiro Crew for macOS (signed .dmg), Windows (signed installer), or Linux (.deb, .rpm, or .AppImage). The app starts a bundled Gateway when no local Gateway is already running, and agent sessions and ACP processes then run on demand on the same machine. It can connect to a remote Gateway over an SSH tunnel instead.
The Windows installer is signed and updates itself in the background on the stable channel, alongside macOS and Linux.
On Linux, the .deb and .rpm packages install to a fixed path, register a desktop entry, and update in place per format. The Linux desktop app needs glibc 2.34 or newer, which excludes older hosts such as Ubuntu 20.04, Debian 11, and Amazon Linux 2. On an older host, install the one-line wheel instead (see the next tab) and open the dashboard in your browser.
Linux ships native builds for both x86_64 and ARM64 (aarch64), published with an architecture check so you don't install the build for the wrong architecture.
You can also build the app yourself with make desktop.
Crew supports Windows natively. The signed installer is the simplest path; a source checkout can use CPython 3.12, a virtual environment, and pip install -e . tzdata.
py -3.12 -m venv .venv .venv\Scripts\activate pip install -e . tzdata python -m kiro_crew gateway
The Windows Gateway cold start is noticeably faster in 0.7. Computer Use works through UI Automation, and isolated pods run through Task Scheduler when the current user can create a scheduled task. See the CLI reference for pod commands; pod api is the only pod verb unavailable on Windows because its private request channel depends on a Unix-domain socket. Use pod token and the printed URL with your own HTTP client instead.
The signed installer updates in place and relaunches the new build. The interactive web terminal and sign-in PTY use their platform-specific implementation or report a clear unsupported state rather than failing silently.
Desktop and managed installations surface updates in Settings → About, the update dialog, and What's New. When host approval is required, each surface shows the same command and the time remaining in the approval window.
The Gateway checks for source updates at startup and every twelve hours. Automatic apply first pauses new turn admission, then waits for active turns, scheduled runs, subagents, Task Runner steps, and workflows to become idle. It applies only after that work settles; an active workload defers the update rather than being cancelled.
Before moving the checkout, Crew verifies that the target revision supports the Python interpreter in the current virtual environment. A mismatch is refused with the environment and interpreter path named — a Python below the 3.12 floor is rejected outright. A dirty or diverged checkout is also refused rather than reset.
Run an update manually when needed:
kirocrew update
For wheel and cli.sh installs, the updater installs into a fresh, signature-verified tree and switches atomically. Docker images remain immutable; pull a newer tag and recreate the container as described in Running 24/7.
When Crew changes a default value between releases, your stored config may still hold the older default. Run kirocrew config defaults to list stored values that still hold superseded defaults. Use --adopt to take the current defaults or --keep to record the stored values as intentional.
This applies after upgrading, particularly if the voice stt_model or sandbox settings were set by an earlier version.
For the one-line wheel, source build, and Docker installs, set up and verify after installing:
kirocrew setup # interactive wizard: data dir, agent, credentials kirocrew doctor # verify everything is wired up kirocrew gateway # start the server → http://localhost:5476
kirocrew doctor reports the status of the kiro-cli binary, its authentication, Ollama/embeddings, Slack tokens, config validity, and MCP servers.
All persistent state lives under ~/.kiro/crew/ (override with KIROCREW_HOME):
~/.kiro/crew/ ├── config.json # user configuration ├── .env # Slack tokens, owner ID, other credentials ├── workspace/ │ ├── memory/ # preferences.md, projects.md, history/ │ ├── lessons.jsonl # learned corrections │ └── knowledge/ # ingested documents (FTS5 + vectors) ├── conversations/ # JSONL session logs ├── crons.json # scheduled jobs ├── audit.log # bash command audit trail └── agents/ # generated kiro-cli agent configs
| Variable | Default | Purpose |
|---|---|---|
KIROCREW_HOME | ~/.kiro/crew | Data directory (config, credentials, databases) |
KIROCREW_PORT | 5476 | Port the gateway binds to |
KIROCREW_EMBED_MODEL_URL | (CDN) | Override the embedding-model download URL (for mirrors) |
Both KIROCREW_HOME and KIROCREW_PORT are validated at CLI entry, not stored as config keys. Pass --port on the CLI to override the env var per-invocation.
Install with pip install "kirocrew[<extra>]":
| Extra | Adds |
|---|---|
voice | boto3, amazon-transcribe for cloud speech-to-text |
aws | boto3 for AWS integrations |
Piper TTS is the default text-to-speech provider and runs locally — no extra install needed.
Installation