Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.flashcat.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Flashduty CLI (flashduty) is a command-line tool for managing the incident lifecycle, querying on-call schedules, publishing status page updates, and debugging notification templates from your terminal. It fits naturally into operations scripts, local troubleshooting, and AI coding-agent workflows. The tool is open source at flashcatcloud/flashduty-cli and supports macOS, Linux, and Windows.

Installation

curl -sSL https://raw.githubusercontent.com/flashcatcloud/flashduty-cli/main/install.sh | sh
Installs to /usr/local/bin by default. Override with the FLASHDUTY_INSTALL_DIR environment variable.

Installer options

VariableDescriptionDefault
FLASHDUTY_VERSIONInstall a specific version, e.g. v0.6.0latest
FLASHDUTY_INSTALL_DIRCustom install directory/usr/local/bin (shell), ~\.flashduty\bin (PowerShell)

Authentication

Log in

flashduty login
When prompted, paste your APP Key. To obtain one, sign in to the Flashduty console and copy your APP Key from Profile > Personal Info.

Credential resolution order

The CLI resolves credentials in the following order (highest priority first):
  1. --app-key command-line flag (hidden, for scripting)
  2. FLASHDUTY_APP_KEY environment variable
  3. Config file ~/.flashduty/config.yaml (written by flashduty login)

Config file

Stored at ~/.flashduty/config.yaml with 0600 permissions:
app_key: your_app_key
base_url: https://api.flashcat.cloud

Config commands

flashduty config show              # Print current config (APP Key masked)
flashduty config set app_key KEY   # Set the APP Key
flashduty config set base_url URL  # Override the API endpoint

Global flags

All subcommands accept these flags:
FlagDescription
--jsonOutput as JSON for parsing with jq or similar tools
--no-truncDisable column truncation in table output
--base-urlOverride the API endpoint (for private deployments)

Command catalog

incident — Incident lifecycle

flashduty incident list [flags]          # List incidents (default: last 24h)
flashduty incident get <id> [<id2>...]   # Show incident details (vertical view for a single ID)
flashduty incident create [flags]        # Create an incident (interactive if flags are missing)
flashduty incident update <id> [flags]   # Update incident fields
flashduty incident ack <id> [<id2>...]   # Acknowledge incidents
flashduty incident close <id> [<id2>...] # Close (resolve) incidents
flashduty incident timeline <id>         # View an incident timeline
flashduty incident alerts <id>           # List alerts associated with an incident
flashduty incident similar <id>          # Find similar historical incidents
Common filter flags for incident list:
FlagDescriptionDefault
--progressProgress filter: Triggered, Processing, Closedall
--severitySeverity filter: Critical, Warning, Infoall
--channelFilter by channel ID-
--titleSearch by title keyword-
--sinceStart time (duration, date, datetime, or unix timestamp)24h
--untilEnd timenow
--limitMax results20
--pagePage number1
Time format examples: 5m, 1h, 24h, 168h, 2026-04-01, 2026-04-01 10:00:00, 1712000000.

change — Change records

flashduty change list [flags]    # List change records (deployments, config changes)
Supports --channel, --since, --until, --type, --limit, --page.

member — Member queries

flashduty member list [flags]    # List members
Supports --name, --email, --page.

team — Team queries

flashduty team list [flags]      # List teams with members
Supports --name, --page.

channel — Channel queries

flashduty channel list [flags]   # List channels
Supports --name.

escalation-rule — Escalation rule queries

flashduty escalation-rule list --channel <id>          # By channel ID
flashduty escalation-rule list --channel-name <name>   # By channel name (auto-resolved)

field — Custom field queries

flashduty field list [flags]     # List custom field definitions
Supports --name.

statuspage — Status page management

flashduty statuspage list [--id <ids>]                                   # List status pages
flashduty statuspage changes --page-id <id> --type <incident|maintenance> # List active changes
flashduty statuspage create-incident --page-id <id> --title <title>      # Create a status page incident
flashduty statuspage create-timeline --page-id <id> --change <id> --message <msg>  # Append a timeline update

Migrate from Atlassian Statuspage

Migration jobs run asynchronously. After kicking off a job, poll progress with migrate status:
# 1. Migrate structure and history
flashduty statuspage migrate structure \
  --from atlassian \
  --source-page-id page_123 \
  --api-key $ATLASSIAN_STATUSPAGE_API_KEY

# 2. Check job status
flashduty statuspage migrate status --job-id <job_id>

# 3. Migrate email subscribers
flashduty statuspage migrate email-subscribers \
  --from atlassian \
  --source-page-id page_123 \
  --target-page-id <target_page_id> \
  --api-key $ATLASSIAN_STATUSPAGE_API_KEY

# 4. Cancel a running job
flashduty statuspage migrate cancel --job-id <job_id>

template — Notification templates

flashduty template get-preset --channel <channel>             # Get preset template code
flashduty template validate --channel <channel> --file <path> # Validate and preview a template
flashduty template variables [--category <category>]          # List available template variables
flashduty template functions [--type custom|sprig|all]        # List available template functions
Supported channels: dingtalk, dingtalk_app, feishu, feishu_app, wecom, wecom_app, slack, slack_app, telegram, teams_app, email, sms, zoom.

Utility commands

flashduty login          # Interactive login
flashduty config show    # Show current configuration
flashduty config set     # Set a configuration value
flashduty version        # Print version information
flashduty completion     # Generate shell completions (bash/zsh/fish/powershell)
Enable shell completion (zsh example):
flashduty completion zsh > "${fpath[1]}/_flashduty"

Output formats

The CLI emits output in three shapes so it fits different consumers:
Human-readable, aligned columns, long fields truncated.
ID           TITLE                    SEVERITY   PROGRESS     CHANNEL       CREATED
inc_abc123   DB connection timeout    Critical   Triggered    Production    2026-04-10 10:23
inc_def456   High memory usage        Warning    Processing   Staging       2026-04-10 09:15
Showing 2 results (page 1, total 2).

Agent skills

Flashduty CLI ships with 10 agent skills that teach AI coding agents — Claude Code, Cursor, Codex, Gemini CLI, Windsurf, and 40+ others — how to operate Flashduty from your terminal. Install skills to every detected agent on your machine in one shot:
npx skills add flashcatcloud/flashduty-cli -y -g
Available skills:
SkillScope
flashduty-sharedFoundation: authentication, three-layer noise model, global flags, safety rules
flashduty-incidentIncident lifecycle: triage, investigate, resolve, merge, snooze, reassign
flashduty-alertAlert and alert event investigation: drill down, trace, merge
flashduty-changeChange event tracking and deployment frequency trends
flashduty-oncallOn-call schedule queries: who is on call, shift details
flashduty-channelChannel and escalation rule lookups
flashduty-statuspageStatus page management and Atlassian → Flashduty migration
flashduty-insightAnalytics: MTTA/MTTR, noise reduction, notification trends
flashduty-adminTeam/member lookups and audit log search
flashduty-templateNotification template validation and preview

Common workflows

flashduty incident ack inc_001 inc_002 inc_003
flashduty incident close inc_001 inc_002 inc_003
flashduty incident list --since 168h --limit 500 --json > incidents.json
Then process the file with jq or load it into your warehouse.
flashduty template validate --channel feishu --file templates/feishu.yaml
Run this in CI to catch syntax or field errors as soon as a template is committed.
Full source, releases, and issue tracking live on the GitHub repository.