AgentKit
DocsKitsCLI ReferenceDesktop App
BetaYou are reading docs for the beta channel (3.0.0-beta.15). Features may change before the next stable release.Switch to stable →

ak kit

ak kit list-kits

List the kits available from the remote catalog, or inspect an explicit local authoring source, without changing disk or install state.

Use ak kit list-kits to see which Kits are available. By default it reads the remote catalog for your signed-in account. With an explicit local source, it reads Kit metadata and export counts from that directory instead, for authoring, development, and CI discovery.

Syntax

ak kit list-kits

The command accepts no positional arguments.

Before you run

Source resolution uses this order:

  1. --kits-dir <dir> selects a local Kits directory.
  2. AGENTKIT_KITS_DIR selects a local Kits directory.
  3. Otherwise, the remote catalog.

There is no implicit ./kits: a kits folder in the current directory is not read unless you name it, and it is never treated as installed.

The remote catalog needs a signed-in session for the configured registry (ak login). It resolves metadata only and does not download or install anything. A local source must be a readable directory; it uses no authentication, network access, project scope, user scope, or runtime delivery mode.

Arguments

This command accepts no positional arguments. Select a local source with --kits-dir or AGENTKIT_KITS_DIR; otherwise the remote catalog is used.

The command has no alias.

Options

OptionDefaultEffect
--kits-dir <dir>AGENTKIT_KITS_DIR, else the remote catalogSelect a local Kits directory. Wins over AGENTKIT_KITS_DIR.

Shared flags are documented in CLI conventions. --yes and --no-interactive do not change this read-only operation.

Examples

# List Kits from the remote catalog.
ak kit list-kits

# Read an explicit local authoring tree.
ak kit list-kits --kits-dir ./kits

# Consume the versioned JSON envelope.
ak kit list-kits --json | jq '.data.kits'

Output and streams

Human output on stdout is a sorted table with these columns:

NAME VERSION REGISTRY TIER EXTENDS AGENTS SKILLS COMMANDS HOOKS RULES OUTPUT-STYLES SCRIPTS

The internal composition Kit is excluded. If the selected source is empty, human mode writes No kits found to stderr and exits 0.

With --json, stdout contains:

schema_version: 1
kind: kit.list
data.kits: array
data.warnings: optional array

Each Kit object has name, version, extends, tier, counts, registry_version, and source_metadata_known. Counts and the source version are measured only when source_metadata_known is true, which is the case for a local source. Remote catalog rows carry registry_version and tier, have source_metadata_known: false, and print unknown for the source version. The counts object has agents, skills, commands, hooks, rules, output_styles, and scripts. An empty source produces data.kits=[].

A local Kit that fails to load is skipped with a warning on stderr. In the remote catalog, a Kit that cannot be verified is skipped and the result adds a Remote catalog is incomplete warning. In both cases JSON can be valid and exit 0 while omitting a Kit, so inspect stderr and data.warnings in CI.

Exit status

ExitMeaning
0The source was listed, including an empty source or one with skipped Kits.
1The source could not be opened or listed, you are not signed in for the remote catalog, or no remote Kit could be resolved.
2Flags or positional arguments were invalid.

Command help reserves exit 5 for an explicit local Kits directory that does not exist, but the current implementation returns an unclassified source error, so the process exits 1. Do not branch on 5 for this command until runtime classification changes.

Effects, safety, and limitations

A local source reads directory entries, kit.yaml files, inherited Kit metadata, and referenced exports to compute counts. The remote catalog reads registry metadata. Neither writes files, spawns a runtime, or changes authentication or cache state.

Availability is not entitlement. A Kit listed in the remote catalog, or present in a local directory, does not prove your account can install it or that an install will succeed for a target runtime.