# Self Update

Check for and apply Kiro Crew updates.

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill self-update -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill self-update -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill self-update -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill self-update -g -a gemini-cli -y`

## Description

Check for and apply Kiro Crew updates. Use when user says "update yourself", "check for updates", "are you up to date", "keep yourself updated", or "auto-update".

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Self-Update

## Overview

Check for available Kiro Crew updates and use the install layout's supported apply path. The gateway already performs periodic update checks; do not add a duplicate cron.

`kirocrew update` behaves differently on three install layouts, and which one the
user is on decides everything below:

- **git checkout**, fetch, then `reset --hard` to the upstream tip. Only a
  fast-forwardable checkout is updated; a DIVERGED checkout (local commits both
  ahead and behind) is refused, because the reset would discard them.
- **wheel / cli.sh**, fetch the release feed, compare versions, re-run the
  installer.
- **externally managed (desktop app, Docker)**, prints guidance and returns
  without updating. The desktop app updates itself over its own OTA channel.

There is no separate "check" subcommand.

A policy-defined update provider, when one is configured, owns updating this host:
it runs before any layout dispatch, the built-in mechanism never runs, and there is
no fallback, `kirocrew update` exits 1 on provider failure. Report the provider's
failure; do not try to route around it.

## Core Concepts

### Checking for Updates

Non-destructive, safe to run anytime. Report the installed version:

```bash
kirocrew --version
```

Then use that layout's own source of truth: the tracked upstream branch for a git
checkout, the signed release feed for a wheel install, or the app's own updater
for desktop. Do not compare a checkout against public tags; source updates are
based on commit distance from its configured upstream, not release tags.

### Applying Updates

To apply an available update:

```bash
kirocrew update
```

The gateway must be restarted afterward for the new version to take effect.

Two more verbs:

```bash
kirocrew update approve   # approve a pending in-app update armed from the dashboard
kirocrew update --force   # git installs only
```

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/skills/self-update/SKILL.md
