Releases: appsignal/appsignal-cli
Release list
2.0.1
Added
- Added
tracescommands, also available assamples, for listing performance samples/traces and error traces, then inspecting their span trees through the AppSignal REST tracing API. Traces can also be fetched and inspected directly from performance and exception incident numbers, and--page-allcan fetch beyond the first page of trace results.
Changed
- Incident list commands now render with the same table formatting as other list commands, making human-readable output easier to scan.
2.0.0
Changed
apps listnow uses the current OAuth account to determine the organization automatically and saves that org to the active config. You no longer need to pass--orgwhen listing apps for the signed-in account.incidents updatenow accepts multiple incident numbers for bulk state changes, so you can close or reopen an explicit set of incidents in one command. It also adds--assign-meto assign the incident to the authenticated CLI user without needing to look up your user ID first.- OAuth login now requests the
user:readscope needed for browser-based AppSignal account access, and older tokens now produce a clearer re-authentication message when that scope is missing. The unsupportedapps orgscommand has been removed. - Added dashboard management commands to list, create, and update AppSignal dashboards from the CLI.
- appsignal-cli now sends a minimal best-effort telemetry event for each command run to help measure CLI usage and reliability. The event includes only the command path, success or failure, duration, CLI version, and output format, and you can disable it entirely with
APPSIGNAL_CLI_TELEMETRY=0. - OAuth is now the default auth login flow, so running appsignal-cli auth login opens the browser-based sign-in flow without requiring --oauth. Personal token login remains available by passing --token explicitly.
Removed
- Authentication is now OAuth-only.
appsignal-cli auth loginopens the browser flow directly, and personal API token login is no longer supported.
1.0.1
Changed
- The bundled AppSignal skill now shows how to turn common AppSignal URLs into CLI arguments, including
--org,--app-id,--number,--view, and--source-ids. - GraphQL API errors for account restrictions now show AppSignal's descriptive message, such as locked-account or free-plan quota explanations, instead of a generic request rejection.
Fixed
- Fix log search order casing. Log searches now send the requested sort order in the format the AppSignal logs API expects, so commands like
appsignal-cli logs search --order descno longer fail with an unprocessable pagination order error.
1.0.0
Added
- Added
skill updateto refresh installed AppSignal LLM skills andskill statusto list OpenCode, Codex, and Claude installs as current, outdated, missing, or unversioned.
Changed
-
The CLI now blocks command execution when GitHub reports a newer major
appsignal-clirelease and shows an upgrade-required message with the
current and latest versions.Patch and minor releases still show a startup warning only, and GitHub
outages or other non-200responses still pass silently so the CLI is
not blocked by GitHub availability. -
appsignal-clinow supports anomaly detection trigger management withtriggers list,triggers create,triggers update, andtriggers archive.This adds CLI workflows for inspecting existing triggers, creating new metric alerts, updating trigger definitions as new versions, and archiving triggers when they are no longer needed.
The trigger output and shared skill docs also now distinguish clearly between the trigger name, metric name, and description so trigger configuration is easier to understand.
-
Added --format as a synonym for the global --output flag, so you can use either name when selecting human or JSON CLI output.
-
CLI command failures now show cleaner user-facing error messages
instead of raw internal error output.Unexpected internal failures now fall back to a generic safe
message by default, whileAPPSIGNAL_CLI_DEBUG=1still exposes the
underlying details for debugging. -
OAuth login now supports custom AppSignal endpoints that advertise RFC 7591
Dynamic Client Registration.When a custom endpoint exposes OAuth authorization server metadata with a
registration_endpoint, the CLI automatically registers a public client for its
loopback callback URL and uses the returnedclient_idfor login and token
refresh. Endpoints without dynamic registration support still fall back to the
built-in production client ID unless an explicitoauth_client_idoverride is
configured. -
The CLI now checks the latest GitHub tag on startup and shows a boxed
warning when a newerappsignal-clirelease is available.The warning is only shown when GitHub returns a successful
200
response with a newer version, so GitHub outages and other request
failures do not interrupt normal CLI usage.
Fixed
auth logoutnow removes the stored OAuth client ID along with the saved
credentials, so a later login no longer reuses a stale client ID from the
previous session.
0.2.1
0.2.0
Added
- Added
appsignal-cli about, a splash-style overview command that shows your CLI version, configured endpoint, authentication status, and suggested next commands. - Added dedicated
apps resourcessubcommands such asusers,dashboards, anddeploy-markers, plusapps resources allfor the combined view.apps resources deploy-markersnow lists recent deploy markers, andapps resources namespacesnow works with the current AppSignal GraphQL namespace shape. - Added
skill installso you can install the bundled AppSignal CLI skill for OpenCode, Codex, or Claude. The installed skill explains the user-facing CLI commands and LLM-friendly output like--output json.
Fixed
- OAuth login now completes through a local browser callback, so signing in works on Linux without custom URI scheme support. Custom AppSignal endpoints must be configured as base URLs like
https://staging.lol, and non-production environments can use a separate OAuth client ID when needed. - Projects can now keep AppSignal auth, endpoint, OAuth client ID, and default org settings in a local
.appsignal.tomlcreated withappsignal-cli project init. When that file exists, the CLI uses it as the only config for that project, so missing values no longer fall back to global settings, and project logout clears only the active project's credentials.