Skip to main content

概述

Flashduty CLI(flashduty)是一款命令行工具,可在终端中完成故障生命周期管理、值班查询、状态页发布、通知模板调试等操作,适用于运维脚本、本地排障以及与 AI 编程代理协同工作。 工具开源在 flashcatcloud/flashduty-cli,支持 macOS、Linux 和 Windows。

安装

默认安装到 /usr/local/bin,可通过环境变量 FLASHDUTY_INSTALL_DIR 自定义。

安装选项

认证

登录

按提示输入 APP Key。获取方式:登录 Flashduty 控制台,进入 个人中心 > 个人信息,复制 APP Key。

凭证解析顺序

CLI 按以下优先级查找 APP Key(高优先级在前):
  1. --app-key 命令行参数(脚本场景使用)
  2. FLASHDUTY_APP_KEY 环境变量
  3. 配置文件 ~/.flashduty/config.yaml(由 flashduty login 写入)

配置文件

存储在 ~/.flashduty/config.yaml,权限为 0600

配置命令

全局参数

所有子命令均支持以下参数:

命令清单

incident — 故障生命周期

incident list 常用过滤参数: 时间格式示例:5m1h24h168h2026-04-012026-04-01 10:00:001712000000

change — 变更记录

支持 --channel--since--until--type--limit--page

member — 成员查询

支持 --name--email--page

team — 团队查询

支持 --name--page

channel — 协作空间查询

支持 --name

escalation-rule — 分派策略查询

field — 自定义字段查询

支持 --name

statuspage — 状态页管理

从 Atlassian Statuspage 迁移

迁移任务为异步执行,需通过 migrate status 轮询进度:

template — 通知模板

支持的通知渠道:dingtalkdingtalk_appfeishufeishu_appwecomwecom_appslackslack_apptelegramteams_appemailsmszoom

session — AI SRE 会话

用于巡查 AI SRE(以及其他 Flashduty 智能体)的会话:session list 列出调用者可见的会话,session export 将单个会话的完整事件流式导出,便于离线分析。
session list 常用参数:
服务端 /safari/session/list 单页上限为 100 条,超出 --limit 时 CLI 会自动向服务端翻页拉取,无需手动分页。API 本身没有时间窗口过滤,--since 是在拉取后于客户端按会话的 updated_at 进行过滤的。
session export 将会话事件以换行分隔 JSON(NDJSON)流式写入标准输出:第一行始终是 session_meta 信封,其后每行是一个事件(user_messagellm_calltool_callsubagent_dispatchfinal_answeragent_texterror)。导出内容可能很大,建议重定向到文件而非直接打印到终端:

全量命令覆盖

除上述精选命令外,CLI 现已通过 spec 驱动的代码生成实现对 Flashduty OpenAPI 的「全量覆盖」(约 248 条命令),并按资源组织为顶层命令组。除 On-call 域(incident、change、channel、escalation-rule、field、statuspage、template 等)外,还覆盖了:
  • AI SRE(safari:a2a-agents、mcp-servers、sessions、skills 等
  • 告警与降噪:alert、alert-event、enrichment(alert-rules、rule-sets)、route
  • On-call 与日程:calendar、schedule
  • 平台管理:account、member、person、team、role(roles-permissions)、audit(audit-logs)
  • 监控与 RUM:monit、rum、sourcemap
  • 集成与 Webhook:datasource(IM 集成)、webhook(integrations)
这些生成命令的叶子名称采用「资源-动作」形式(如 flashduty safari a2a-agent-getflashduty safari session-list),其入参与返回字段直接映射到对应 API。鼓励用 flashduty <资源> --help 逐层探索:

工具命令

启用 Shell 自动补全示例(zsh):

输出格式

通过 --output-format 选择输出形态(--json--output-format json 的别名),便于在不同场景下消费:
人类可读,列对齐,长字段截断显示。

Agent Skills

Flashduty CLI 内置 10 个 Agent Skills,可让 Claude Code、Cursor、Codex、Gemini CLI、Windsurf 等 AI 编程代理通过 CLI 操作 Flashduty。 一键安装到当前机器上检测到的所有代理:
可用技能列表:

常见用法

通过 flashduty incident get <id> 在终端中快速查看故障详情,可将命令片段嵌入到通知模板里供值班同学一键复制。
然后通过 jq 处理或导入数据仓库。
将上述命令加入 CI,可在模板提交时立即捕获语法或字段错误。
完整源码和问题反馈请访问 GitHub 仓库