Skip to main content
comet update refreshes installed Comet Skills, Rules, Hooks, Runtime assets, and managed instructions. Current-project and batch modes update the corresponding Comet npm package before refreshing assets by default. Use --skip-self-update when you only need to repair installation files. Without --language, updates preserve the existing English or Chinese language for each installation target. Pass this option explicitly to switch languages.

Basic usage

Select the update scope

When the project index contains project installations, interactive comet update asks you to choose a scope:
  • All indexed projects: Update all registered projects in sequence.
  • Current project only: Update the project associated with the current working directory.
Automated calls use narrower defaults: --all-projects cannot be combined with --scope global or --current-project. Explicit --scope global always uses current-project mode and does not open the all-projects selection. It selects global installations and updates the corresponding npm package by default. Add --skip-self-update to refresh global assets only.
Batch mode records each project’s result separately. Failed npm updates, installation target checks, or configuration reads appear in that project’s failure summary; the overall result is not reported as fully successful. Missing project index entries are removed only when Comet can safely establish that no project installation remains there. Use --platform when a platform is missing a Skill, Rule, or Hook, or when refreshing a project-defined platform. Other platforms are left unchanged. Without it, all resolved targets in the selected scope are processed. Automation should pass --json, --current-project, or --all-projects explicitly. Comet does not infer scope from whether a call is scripted or interactive. Without these options, a nonempty index still leads to interactive scope selection.

npm self-update boundaries

Current-project mode includes explicit --current-project, --json, default calls without a selectable index, and explicit --scope global. These calls update the target installation’s Comet npm package before refreshing assets by default. The package location is determined by the installed project or global package. Use --skip-self-update to refresh assets only; --self-update explicitly retains the default behavior. All-projects mode updates the applicable package for each project by default. The same global package is attempted at most once. Pass --skip-self-update to refresh indexed projects’ assets only. --self-update and --skip-self-update are mutually exclusive. Use --target-version <version> to pin the target version; it cannot force a downgrade. Self-update compares complete semantic versions, including prereleases. A candidate older than the installed version is rejected. Before changing an installation, Comet installs the exact candidate into an isolated temporary directory and validates its version, workflow resolve, and Native commands within time and output limits. Failed candidate validation leaves the target installation unchanged. If actual installation fails, Comet attempts to restore the original exact version and reports the update as incomplete.

When to run it

  • After upgrading @rpamis/comet.
  • When comet doctor reports a Skill or script version mismatch.
  • When switching between Chinese and English Skills.
  • After your team updates project-level Comet configuration.

Native and Classic update boundaries

As with comet init, comet update:
  • Refreshes Native projects’ Comet Skills/runtime, shared workflow Rule, Hook Router, and Ambient Resume instructions using Copy. It does not create .comet/skills/ and skips CodeGraph and Classic-only Skills. It safely replaces managed legacy symlinks with local copies without writing through them into .comet/skills/. Unmanaged Skills in the shared directory cause replacement to be refused while preserving the files.
  • Retains installation mode selection (Copy / Symlink) and dependency capabilities for Classic and global targets. Symlink mode recreates links into .comet/skills/.
  • Merges shared .comet/config.yaml by field, preserving the other workflow and user fields. A Native update does not delete Classic files, and changing the default entry does not migrate workflows.
  • Uses ambient_resume for the shared read-only automatic recovery instructions. Setting it to false removes managed recovery blocks while preserving other user rules.
comet update does not manage OpenSpec, Superpowers, or other third-party Skills. Native projects also skip CodeGraph and Classic-only Skills; Classic retains its existing behavior. Existing platform skills/ directories are preserved. Symlink mode refreshes only Comet-managed links without deleting local or third-party Skills.
Last modified on October 22, 2026