What's next from Grafana Labsbreadcrumb arrow gcx v1.0.0: command renames, config file format changes, opt-out usage statistics
What's next from Grafana Labs
What's next from Grafana Labs
Breaking change
Open Source Enterprise AI
Announcement
2026-07-28
Planned rollout in Cloud
2026-07-28
Targeted self-managed release
Grafana v13.0.0

gcx v1.0.0: command renames, config file format changes, opt-out usage statistics

If you upgrade gcx from v0.4.x or earlier, there are breaking changes to be aware of:

1. Commands are renamed across many providers, with no aliases. Old spellings fail as unknown commands. Behaviour, flags, positional arguments, output schemas, and exit codes are unchanged, only the names moved. The aim is to make a more predictable and understandable command surface. Here are all the changes:

Old commandNew command
gcx aio11y … (entire tree)gcx agento11y …
gcx agento11y agents versions <name>gcx agento11y agents list-versions <name>
gcx agento11y collections conversations list <id>gcx agento11y collections list-conversations <id>
gcx agento11y collections conversations add <id> <saved-id>…gcx agento11y collections add-conversations <id> <saved-id>…
gcx agento11y collections conversations remove <id> <saved-id>gcx agento11y collections remove-conversation <id> <saved-id>
gcx agento11y evaluators creategcx agento11y evaluators upsert
gcx agento11y experiments scores <run-id>gcx agento11y experiments list-scores <run-id>
gcx agento11y judge modelsgcx agento11y judge list-models
gcx agento11y judge providersgcx agento11y judge list-providers
gcx agento11y scores list <generation-id>gcx agento11y generations list-scores <generation-id>
gcx agento11y templates versions <id>gcx agento11y templates list-versions <id>
gcx alert templates create / update / apply (aliases)gcx alert templates upsert
gcx appo11y services labels <service>gcx appo11y services list-labels <service>
gcx assistant investigations tools <id>gcx assistant investigations list-tool-calls <id>
gcx assistant investigations chat <id>gcx assistant investigations list-messages <id>
gcx cloud stacks regionsgcx cloud stacks list-regions
gcx dashboards versions list <name>gcx dashboards list-versions <name>
gcx datasources influxdb field-keysgcx datasources influxdb list-field-keys
gcx datasources influxdb measurementsgcx datasources influxdb list-measurements
gcx datasources influxdb tag-keysgcx datasources influxdb list-tag-keys
gcx datasources influxdb tag-values --key <k>gcx datasources influxdb list-tag-values --key <k>
gcx dev lint rulesgcx dev lint list-rules
gcx fleet tenant limitsgcx fleet tenant get-limits
gcx frontend apps show-sourcemaps <app>gcx frontend apps list-sourcemaps <app>
gcx frontend apps remove-sourcemap <app> <bundle>…gcx frontend apps delete-sourcemap <app> <bundle>…
gcx irm incidents activity list <incident-id>gcx irm incidents list-activity <incident-id>
gcx irm incidents contexts list <incident-id> (and context/ctx aliases)gcx irm incidents list-contexts <incident-id>
gcx irm oncall schedules final-shifts <schedule-id>gcx irm oncall schedules list-final-shifts <schedule-id>
gcx k6 load-zones allowed-load-zones list <project-id>gcx k6 projects list-allowed-load-zones <project-id>
gcx k6 load-zones allowed-load-zones update <project-id>gcx k6 projects update-allowed-load-zones <project-id>
gcx k6 load-zones allowed-projects list <load-zone-id>gcx k6 load-zones list-allowed-projects <load-zone-id>
gcx k6 load-zones allowed-projects update <load-zone-id>gcx k6 load-zones update-allowed-projects <load-zone-id>
gcx k6 schedules delete <load-test-id>gcx k6 load-tests delete-schedule <load-test-id>
gcx k6 run … (alias)gcx k6 runs …
gcx kg entities creategcx kg entities upsert
gcx kg relationships creategcx kg relationships upsert
gcx kg prom-rules creategcx kg prom-rules upsert
gcx kg model-rules creategcx kg model-rules upsert
gcx kg suppressions creategcx kg suppressions upsert
gcx kg summarygcx kg stats
gcx logs adaptive patterns showgcx logs adaptive patterns list
gcx metrics adaptive recommendations showgcx metrics adaptive recommendations list
gcx traces adaptive recommendations showgcx traces adaptive recommendations list
gcx profiles profile-typesgcx profiles list-profile-types
gcx datasources pyroscope profile-typesgcx datasources pyroscope list-profile-types
gcx resources examples [selector]gcx resources list-examples [selector]
gcx resources schemas [selector]gcx resources list-types [selector]
gcx synthetic-monitoring probes token-reset <id>gcx synthetic-monitoring probes reset-token <id>

Six gcx assistant investigations subcommands are removed rather than renamed, because their backends do not exist for current investigations: approvals, todos, document, report, timeline, and regenerate-report.

For users of the bundled agent skills: the aio11y and aio11y-prod-setup skills are renamed to agento11y and agento11y-prod-setup, agento11y-eval-starter is renamed to agento11y-test-starter, and the explore-datasources skill is removed.

2. The configuration file format changes, with automatic migration. The config file is now versioned (version: 1) and splits into named stacks, named cloud entries, and contexts that reference them, so one Cloud token is stored once instead of repeated per context. Your existing config migrates automatically the first time the new binary loads it. The old config file is left in the same directory, for you to delete manually when you are ready.

3. Output for scripts and agents follows a strict contract. We are enforcing better consistency for output formats across all commands. When gcx detects it is being driven by an AI agent and no explicit format flag is given, every finite command now emits one JSON document on stdout (its result, or a structured error whose embedded exitCode matches the process exit code), streaming commands emit typed JSON Lines with a terminal success or error event, and stderr is advisory only. Explicit --output, --json, and --jq flags always take precedent. For humans, default output is the same as before, with a few exceptions: some success responses and dry-run notices have moved from stdout to stderr, partial failures in gcx resources get now exit 4 instead of 1, pull counts file-write failures instead of reporting success, and destructive logs adaptive, traces adaptive, and kg commands now prompt for confirmation, so scripts calling them need --force or --yes.

4. gcx reports anonymous usage statistics by default. gcx now reports the shape of usage: the command path, flag names, outcome, and duration. Identifiable information such as positional argument values, flag values, URLs, stack names, and query content are never sent. The only identifier is a random per-installation ID. gcx prints a notice about usage statistics on first run. Find out more by reading the docs.

Why we’re changing it

We want v1.0,0 of gcx to be stable and clean, so we needed to get any known breaking changes in before we cut v1.0.0. We think the command renames make every command name understandable and predictable. The config file refactor will make it more convenient to authenticate to multiple contexts. The opt-out usage statistics will help us understand how our users use gcx, so we can make the product better.

What is not changing

Any command that is not in the rename list above is unchanged.

What to check before you upgrade

  • If you have scripts, continuous integration (CI) jobs, aliases, runbooks, or agent prompts that invoke gcx, grep them for the old spellings in the table above and update to the new names before upgrading the binary. Old paths fail immediately as unknown commands.
  • If you call gcx alert templates create, update, or apply, switch to gcx alert templates upsert and be aware it always was create-or-update: it will overwrite an existing template with the same name.
  • If you script gcx assistant investigations approvals, todos, document, report, timeline, or regenerate-report, remove those calls; they are gone and have no replacement.
  • If you script destructive gcx logs adaptive, gcx traces adaptive, or gcx kg delete commands, add --force or --yes; they now prompt for confirmation.
  • If a script parses gcx stdout, re-test it after upgrading: some success messages and dry-run notices moved to stderr, and partial failures in gcx resources get now exit 4 instead of 1.
  • If you use gcx config set in automation, update the paths to the literal form, for example gcx config set stacks.<name>.grafana.server <url>; the old context-relative paths return an error with the new path.
  • If external tooling reads or writes the gcx config file directly, update it for the version: 1 format (named stacks and cloud entries referenced by contexts) before upgrading. Interactive use needs nothing: migration is automatic and writes a backup first.
  • If your organisation’s policy requires opting out of usage reporting, set GCX_TELEMETRY=disabled or DO_NOT_TRACK=1 in your environment or CI images before rolling out the new binary; run GCX_TELEMETRY=log gcx <command> to inspect exactly what would be sent. Details: https://grafana.com/docs/grafana-cloud/gcx/anonymous-usage-statistics/
  • If you installed the bundled agent skills, run gcx skills update after upgrading so the renamed agento11y* skills and removed explore-datasources skill are reflected in your agent’s skill set.
  • Do all of the above before upgrading past v0.4.x; if you pin gcx in CI, upgrade a dev pipeline first and run your scripts against it.

Related What's next posts