Skip to main content
Gat commands, config keys, and individual config values each carry one of three lifecycle states. The label tells you how much interface/behavior change to expect over time — it never changes what safety, correctness, or data-integrity guarantees apply.

The three states

Stable

Normal supported behavior. The default for anything not explicitly marked otherwise.

Experimental

Available for use, but its interface or behavior may change or be removed between releases.

Deprecated

Still supported. Migrate to the documented replacement where one exists, ahead of a possible removal.

Experimental means interface stability, not reduced safety

Experimental features keep their documented safety and correctness guarantees. Their flags, output, configuration keys, or behavior may change or be removed.
written by Experimental features, including gat.lock and the cache, has the same readability and migration guarantees as Stable state.

Deprecation and replacements

Deprecated commands and settings remain supported. Follow the replacement named in the notice, when one exists. Deprecation communicates an earliest possible removal, not a promised exact release: normal deprecations give users time to migrate, but a safety, security, or data-loss fix may still force a faster removal or disabling than originally planned.

Where lifecycle shows up

Notices go to . They never write to stdout or change a successful exit code, so they do not alter the command results a script reads from stdout.