Quickstart
1
Install
- Homebrew
- Arch Linux
- Manual
2
Authenticate
3
Ask
Common workflows
- Interactive
- One-shot
- Pipe data
- Investigate
- Query the graph
- Use with agents
Start a terminal chat with session history and markdown output:
Stay up to date
Stable Annie CLI releases tell you when a newer version is available in an interactive terminal. The TUI keeps the available version in its status bar, and successful human-readable commands may show one reminder every 24 hours. Check synchronously whenever you need the current release status:Investigate GCP changes
Use deterministic graph commands when you need retained GCP evidence in a terminal, script, or CI job. List recent events, narrow them to one provider operation, then inspect the affected inventory:2 with
RESOURCE_AMBIGUOUS and lists at most ten stable-ID candidates. JSON keeps the same candidates at
.error.details.candidates. Select one id or anyshiftID and retry; Annie never traverses from an
arbitrary first match.
--operation groups activity by the GCP-native operation identifier. --correlation selects the
broader Anyshift event story. They are separate identifiers. Text output keeps the main evidence
fields; use JSON when automation needs warnings, availability, before and after values, pagination,
or provenance references:
annie graph cloud-events browsing uses bounded page mode. Text output reports the number
shown, whether more results exist, and the next cursor without calculating or claiming an exact
full-window total. Use --exact-stats only when you need the exact total and event-type breakdown;
that opt-in can be slower on large accounts. In page-mode JSON, total is null, byType is empty,
and statistics reports { "mode": "none", "exact": false }.
An unknown status is not success. Unknown provenance does not mean unmanaged, and unknown freshness
does not mean stale. If a response contains nextCursor, pass it back with --cursor to continue
that result page.
Repository context
Add an.annie.yaml file to a repository when you want every question from that workspace to use the same Anyshift project, metadata, and runbooks:
.annie.yaml
.annie.yaml by walking up from your current directory. Repository settings apply only to that invocation and do not change your global default project.
Use project-scoped personal context when a value should follow you across repositories:
.annie.yaml.
Invocation flags take precedence over TUI session context, repository context, and personal project context:
annie context preview to check file status without printing file contents.
Structured output
Pass a local JSON Schema when a script or CI job needs a predictable object instead of prose:service-risk.schema.json
--schema requires --output json and supports JSON Schema Draft 7 and Draft 2020-12 with an object at the root. Remote schema references are rejected.
Conversation history
Resume a previous investigation with its transcript instead of starting over:annie conversation delete <id> requires confirmation and may be restricted to administrators.
Reference
Query options
Query options
Graph commands
Graph commands
All non-interactive graph commands support
--project <name|uuid> and --output text|json. Run annie graph <command> --help for command-specific flags.graph brief and resource-scoped graph check resolve the resource before querying posture.
When a name exists in two clusters, qualify the brief or use a stable ID:RESOURCE_SCOPE_UNSUPPORTED in
workflow.warnings and partial completeness. Unavailable headline.activeAlerts and
headline.downstreamServices are null, not zero; text displays unknown. These warnings
mean evidence was not queried, not that the resource is missing or healthy.Inspect public exposure for a Cloudflare hostname or a Kubernetes service:originReachability for internet-facing ALB or NLB security-group evidence versus pinned Cloudflare IP ranges. That field is not DNS proxied / RESOLVES_DIRECTLY_TO, and text output prints it separately from traffic gaps. See Origin reachability.graph triage is deterministic evidence, not AI. It optionally queries incident_context for the
resource (target + since + LIMIT). Returned hops are incident, alerts, service,
onCall, responders, and history. Empty hops are omitted from findings. History cites reviewed
resolution evidence only (confirmed_fix, explicit_reference, or unknown), never
temporal-only association. Raw queries use
incident_context; PagerDuty
setup is on the PagerDuty integration page.graph show accepts a hashedID or anyshiftID returned by graph discovery. It uses the
project-scoped Graph API and never guesses from a display name. Resolve a name first, then inspect
the selected identity:graph show --at reads are not
supported until the Graph API has snapshot semantics; use annie graph history for retained change
evidence instead.Discover the query language without authentication:Automation and exit codes
Automation and exit codes
JSON output uses the
annie.cli/v1 envelope. Natural-language answers are returned under .answer.content, while Graph results are returned under .data.From v0.8.60, Graph query validation errors keep the server’s explanation at
.error.details.reason, such as an unknown table, the allowed filters, or required time bounds.
These errors still return GRAPH_QUERY_INVALID and exit 2. Use the reason to correct the query
before retrying. Ambiguous resource errors remain RESOURCE_AMBIGUOUS, with retry choices in
.error.details.candidates.Require a schema-validated answer with:Sessions and TUI
Sessions and TUI
Use
Tab for command completion, Page Up/Down to scroll, and Ctrl+C to cancel.Past investigations and reports
Past investigations and reports
Projects
Projects
--project <name|uuid>.Authentication and CI
Authentication and CI
For local use:For CI, create an access token in Settings → Access tokens, store it as a secret, and set:
ANNIE_PROJECT_ID is only required when the token can access multiple projects. Use personal tokens locally and shared tokens for team automation. Token authentication cannot perform administrative operations.Feedback
Feedback
/rate up, /rate down, or /rate hypothesis <n> up|down.Configuration and privacy
Configuration and privacy
~/.annie/config.yaml. Disable anonymous telemetry with:NO_COLOR.Create account
Start using Anyshift
Request a demo
See the CLI in action