KiroCrew
A persistent workspace for development work that self-improves and continues beyond one session.
Links
README
From the repo.
Kiro Crew
A persistent workspace for development work that self-improves and continues beyond one session.
Kiro Crew is an open source development workspace that runs locally or remotely on your hardware. It is persistent, self-learning, and self-evolving. Work with it from the desktop app, web dashboard, and CLI, or continue the same work through connection tools like Slack and Discord. Your multi-step tasks can run unattended, recurring jobs run on your schedule, and heartbeats monitor systems until something needs attention. Kiro Crew Apps tailor that experience to a specific job, combining a purpose-built interface with agents, skills, schedules, integrations, and backend services.
Quick start · Build from source · Why Kiro Crew · Capabilities · How it works · Security · Install · Telemetry · Docs
Quick start
You choose how to run Kiro Crew: the desktop app with automatic updates, a
one-line install on your machine or a remote host, the Docker image for
always-on servers, or a build from source. The default agent runs on
kiro-cli, which you install and sign in to separately. First launch checks
that prerequisite and links to the official setup guide when it is missing.
App downloads
Use the Stable desktop package for macOS
or Windows x64.
On Linux, start with the one-line install below. The
install guide owns Insider and Nightly
links, Linux .deb / .rpm / AppImage packages, architecture support, platform
requirements, and sandbox setup.
Release channels
Stable is the default; Insider follows release candidates, and Nightly follows
main. The release runbook owns the
current triggers, version shapes, promotion behavior, cadence, and update-lane
semantics.
One-line install
Install the signed Stable wheel without cloning the repository or building the frontend:
curl -fsSL https://download.crew.kiro.dev/cli.sh | sh
Then open http://localhost:5476. Pass --version to pin an exact release —
the minimum pinnable release is 0.1.2, because 0.1.0 and 0.1.1 predate
manifest signing and have no signed manifest to resolve:
curl -fsSL https://download.crew.kiro.dev/cli.sh | sh -s -- --version 0.6.0
The install guide owns channel selection, managed versus system Python, mirrors, first-run setup, upgrades, and recovery.
Docker
For always-on servers, the Gateway ships as a public multi-arch image on GHCR:
docker run -d --name kirocrew \
-p 127.0.0.1:5476:5476 \
-v kirocrew-home:/home/kirocrew \
ghcr.io/kirodotdev/kirocrew:stable
See the Docker guide for first-run login, channel tags, and the container security model.
Build from source
macOS and Linux require Python 3.12+, Node.js 22+ (24 LTS recommended), and
npm. The default ACP backend also requires
kiro-cli: install it on the Gateway host and run
kiro-cli login before using that backend. Other verified ACP harnesses have
their own prerequisites in the install guide. Windows
is supported through a native source install; follow the
Windows guide instead of the shell steps below.
# 1. Clone and build Kiro Crew
git clone https://github.com/kirodotdev/KiroCrew.git
cd KiroCrew
make build
source .venv/bin/activate
# 2. Configure, verify, and start
kirocrew setup
kirocrew doctor
kirocrew gateway
Why Kiro Crew
Most agent sessions end when the chat closes. Kiro Crew runs continuously on hardware you control and keeps working between conversations.
Persistent. Sessions, memory, schedules, and task checkpoints survive Gateway restarts, and scheduled or reactive work continues without someone at the terminal.
Self-learning. Corrections and task failures become durable lessons. Preferences and project context carry into new sessions.
Self-evolving. Repeated patterns become reusable skills. Memory, lessons, and skills stay visible and editable, so each Kiro Crew grows more tailored to the person and work around it.
Runs where you choose. Your Mac, a local container, or a remote machine you control.
One Gateway, many surfaces. Work directly in the desktop app or web dashboard, or continue the same work from the CLI and messaging surfaces like Slack and Discord.
What Kiro Crew does
| Capability | What it gives you |
|---|---|
| Persistent sessions | Run concurrent, isolated conversations, resume them after Gateway restarts, search prior sessions, and carry recent context into new work. |
| Self-learning | Turn corrections and task failures into durable lessons that change later behavior. Lessons can apply globally or carry a repo_scope that limits them to one repository; Crew Members keep private lessons in their own memory store. |
| Self-evolving skills | Synthesize reusable skills from repeated patterns, then inspect, refine, or remove them as your work changes. |
| Long-running tasks | Give Kiro Crew a task spec and walk away. It plans steps, executes them, validates results, retries failures, and resumes from checkpoints. "Implement this migration plan and stop if the tests fail" runs as a checkpointed task with validation at each step. |
| Unattended autonomy | Run scheduled agent work or deterministic scripts and commands without a model call. Monitor work until it is done, or react to messaging events and authenticated webhooks without someone at the terminal. "Every weekday at 9, summarize the open work I should review" becomes a timezone-aware recurring job delivered to the surface you choose. |
| Delegation | Spawn isolated subagents for parallel work and bring their results back into the parent conversation. "Research these three options in parallel and recommend one" fans out to isolated subagents and synthesizes the tradeoffs. |
| Work where you choose | Work directly in the desktop app or web dashboard, or continue through the CLI and any connected messaging surface without moving the agent runtime or its state. |
| Installable Apps | Add focused interfaces and domain workflows through dashboard pages, scoped Gateway APIs, events, and lifecycle hooks. |
| Extensible tools | Add MCP servers, markdown skills, and hooks without changing the core runtime. |
| Visible execution | Watch tool calls, subagent progress, context usage, approvals, schedules, memory, and logs from the dashboard. |
| Defense in depth | Combine tool approvals, OS sandboxing, sensitive-path checks, credential redaction, deny rules, audit events, and governance profiles. |
You can also paste a screenshot and ask what is causing an error. Kiro Crew sends the image to the active Kiro model and keeps the diagnosis in the conversation history.
The complete inventory is in Features and What's New.
How it works
flowchart TD
S["Desktop app · Web dashboard · CLI · Messaging channels"]
G["Gateway<br/>access · sessions · memory · schedules · approvals · apps"]
A["Agent sessions<br/>ACP runtime · selected harness · MCP tools · models"]
S --> G --> A
The Gateway separates where the agent runs from where you work. Each
conversation or background task is a logical agent session driven through the
selected agent.acp_backend; depending on that harness and workload, the
session uses a dedicated process or a handle on a shared ACP runtime. State,
policy, approvals, schedules, memory, and apps remain on the Gateway host.
See the architecture overview for component boundaries, sessions for lifecycle and isolation, and MCP architecture for tool exposure.
Security and control
Kiro Crew enforces approvals, OS isolation where available, sensitive-path and credential guards, denied-operation rules, audit records, and an optional policy/profile ceiling at the runtime boundary. The dashboard binds to loopback by default; any remote exposure requires authenticated configuration.
Read the canonical security model and security architecture before changing or widening those controls. Protect credentials, review high-impact actions, and use SECURITY.md for private vulnerability reporting.
Install, configure, and operate
The install guide owns every install path, first-run
step, optional dependency, upgrade, uninstall, and recovery procedure. User data
lives under ~/.kiro/crew by default and moves with KIROCREW_HOME; configuration
keys and precedence are canonical in the
config spec.
For a new source or wheel install:
kirocrew setup
kirocrew doctor
kirocrew gateway
Run the Gateway as a boot-persistent service when needed:
kirocrew service install
kirocrew service status
kirocrew logs
Service ports, systemd/launchd behavior, containers, and remote-host access are documented in the install guide, Docker guide, and remote host guide.
Use kirocrew config get, kirocrew config set <key> <value>, and
kirocrew config edit for the main configuration. Set a process port with
KIROCREW_PORT or kirocrew gateway --port <n>. Start troubleshooting with
kirocrew doctor, then inspect kirocrew logs (or kirocrew logs -f). See the
troubleshooting guide for log sources,
levels, diagnostics bundles, and recovery steps.
Anonymous usage telemetry
Kiro Crew sends one anonymous heartbeat per day so maintainers can see how many copies are actively running and which releases, Python minors, and install paths still need support. After a successful install or update from the official app catalog, it also sends one anonymous per-app receipt. Both signals are enabled by default, but first egress waits until the first-run privacy disclosure has been shown; they use the same controls below.
To turn it off, flip Settings → Privacy → Send anonymous usage heartbeat in the dashboard (the same switch appears on the last step of first-run onboarding). Or from a terminal:
kirocrew telemetry disable # persists to config.json
export KIROCREW_TELEMETRY_DISABLED=1 # or per-shell / per-container
kirocrew telemetry status # print exactly what would be sent
The toggle and kirocrew telemetry disable write the same setting, so either
one sticks across restarts and upgrades. KIROCREW_TELEMETRY_DISABLED overrides
both — when it is set, the dashboard toggle is disabled and says so.
Exactly these five fields are sent, at most once per day, and nothing else:
| Field | Example | Why |
|---|---|---|
| Random instance id | 9c75560d… (UUID4) | Lets us count how many copies ran on a given day. Generated once on first run and derived from nothing — not your hostname, username, MAC, IP, or any account. It identifies an installed copy, never a person. |
| App version | 0.1.2 | Which releases are still in use. Release number only — build stamps like -nightly.20260731t065756 are stripped before sending, because a per-build timestamp is near-unique and would help identify a specific machine. |
| Python minor version | 3.12 | When the minimum can move up |
| Install path | dmg | Which distribution format people actually use |
| First-send flag | 1 / 0 | First successfully reported install vs returning |
Official-app install receipts are separate and event-based. After a
successful official-catalog install or update, Kiro Crew sends one GET to
/b/1/install/<app-slug>?t=<token>&k=<fresh|update>&v=<release> on the same
telemetry host. The slug is the public catalog identifier. t is the first 32
hex characters of HMAC-SHA256 keyed by an independent local receipt secret over
app-install:<slug>; that secret never leaves the machine, so tokens for
different apps cannot be linked to each other or to the heartbeat install id.
k separates fresh installs from updates, and v is the same release-only Kiro
Crew version clamp used by the heartbeat.
Receipts are emitted only for bundled or edition-provided official catalog entries. Apps from user-configured registries, local-directory installs, and self-registered apps emit nothing, so private app names never leave the machine. If the receipt-only secret cannot be persisted, the receipt is skipped.
This list used to be nine fields. Release channel, OS, CPU architecture and governance posture were removed — each was coarse on its own, but the instance id is stable, so those attributes all describe the same copy and together they narrowed the group any one install blends into far more than any single field suggests.
We report this as Daily Active Crews rather than "users": Kiro Crew has
no account system of its own, and the Kiro sign-in that kiro-cli uses for
model access is never read or sent. There is no way to resolve a copy to a
person, so one person running Kiro Crew on three machines counts as three
Crews.
Never sent: your prompts, model responses, file contents, file paths, repo or branch names, credentials, environment variables, hostname, username, or IP address. The receiving CDN is configured not to log client IP addresses — the log delivery does not include that field, so no IP is stored at all.
Automatically off in CI, and whenever KIROCREW_HOME points somewhere other
than ~/.kiro/crew (dev instances and pods are never counted).
Enterprise administrators can pin it off entirely. A capabilities.telemetry
entry in the security policy blocks both outbound signals regardless of the local
setting, and the dashboard toggle then says so instead of offering a change that
would not take effect:
{"version": 1, "boot": {"fail_closed": true},
"capabilities": {"telemetry": {"enabled": false}}}
See docs/system-specs/modules/governance.md.
This is separate from telemetry.enabled, which controls local-only
performance metrics that never leave your machine. See
docs/system-specs/modules/metrics.md.
Docs and contributing
| Topic | Start here |
|---|---|
| Install and packaging | Install and build, Windows, Docker, Desktop, Remote host, Release process |
| Product capabilities | Features, Skills, All user docs |
| All documentation | docs/ for contributor and architecture docs |
| Channels | Slack, Discord, Telegram, Teams, Webex, WeCom, WeChat (Weixin), WhatsApp, Feishu (Lark), iMessage |
| Architecture | System architecture, Memory, MCP, App Kit |
| Trust and dependencies | Security, Security policy |
| Project work | Contributing, Tenets, Governance, Maintainers, AI assistant rules, Changelog |
Contributions are welcome. Follow CONTRIBUTING.md for setup, change-scoped validation, commit format, and the pull-request workflow. Use GitHub Issues for bugs and feature requests; report vulnerabilities privately through SECURITY.md.
Contributors
Kiro Crew was made possible by its internal community, the people who supported the project and shipped its code, together with everyone who has since opened a pull request in the open. This is that founding group; as Kiro Crew grows in the open, we look forward to many more contributors joining them. Thank you to everyone who helped make this tool possible:
Listed alphabetically by GitHub username. Internal contributors appear here if they consented to public recognition in the contributor survey; open-source contributors are collected automatically from this repository's merged pull requests — both the author of each pull request and the people who reported the issues it closed, so a report that led to a real change is credited like the change itself. Contributions that leave neither trace — a code review, a translation, an idea, a private security report — are added on request. If you contributed and would like to be added, corrected, or removed, please open an issue or a pull request.
License
Kiro Crew is licensed under the Apache License 2.0. See NOTICE for attribution information.
Collected info
- ★ 4,076 stars
- ⎇ 645 forks
- Language: Python
- Source updated: 9/22/2026










































































































































































































































































































































































































































































































































































































































































































