worldmonitor v2.11.4 常用 CLI 命令与工具详解

详解 worldmonitor CLI v0.2.1:免 key 终端仪表盘 13 视图、95 个 MCP 工具发现、11 个数据命令、REST 逃生舱、JMESPath 服务端投影与自托管栈接线,含退出码与 8 个实测 FAQ。

worldmonitorworldmonitor自托管仪表盘2026/10/25

worldmonitor v2.11.4 常用 CLI 命令与工具详解

目标:完整梳理官方命令行客户端 worldmonitor(npm 包,别名 wm)的命令体系——免 key 的终端仪表盘与发现命令、需 API key 的 11 个数据命令、MCP/REST 双通道、服务端 JMESPath 投影,以及指向自托管栈的接线方法。本文基于 CLI v0.2.1(2026-10-23 发版,MIT 许可,零依赖 ESM,Node 18+)实测撰写,全部回显来自 Docker Engine 29.9.2 / Node v24.22.1 实测环境,查询日期 2026-10-25。自托管栈的部署见 《worldmonitor v2.11.4 Docker Compose 部署指南》。

一、环境信息

  • 组件版本:worldmonitor CLI v0.2.1(npm install -g worldmonitor,依赖 1 个包,实测 1 秒装完;worldmonitor 与 wm 两个命令别名同时就位)
  • 运行时:Node.js v24.22.1(官方要求 Node 18+)
  • 服务端口径:官方 MCP 端点 https://worldmonitor.app/mcp(实测 tools/list 返回 95 个工具);自托管栈 MCP 端点 http://<主机>:8140/api/mcp(同一套工具,认证走自建 key)
  • 配额口径(官方文档):call get_sources 是唯一免 key 且不计日配额的数据调用(匿名路径另有每 IP 每分钟 10 次的兜底上限);其余数据命令需订阅 API key(worldmonitor.app/pro 获取)

二、命令清单总览

worldmonitor --help 实测全文(原文照抄,实测首部):

worldmonitor — command-line client for the World Monitor global-intelligence API

USAGE
  worldmonitor                       Open the terminal dashboard (TUI)
  worldmonitor web                   Open the original web dashboard
  worldmonitor <command> [arguments] [--flags]

DASHBOARD
  tui                      Interactive terminal dashboard: news, markets, conflict,
                           cyber, climate, predictions, live TV, intel, system
                           (--theme <id>, --no-anim, --fps <n>; no key required)
  web                      Original web dashboard: starts the Vite dev server in a
                           repository checkout, otherwise opens worldmonitor.app
                           (--hosted, --port <n>, --no-open, --url <url>)

DATA COMMANDS (MCP tools/call — need --api-key except call get_sources)
  world                    Live global situation brief
  country <ISO>            AI strategic brief for a country (ISO alpha-2)
  risk <ISO>               Country risk / resilience scores
  markets                  Equities, commodities, crypto, FX quotes
  conflicts                Recent conflict events (--country, --limit…)
  cyber                    Cyber-threat indicators (--min_severity…)
  news                     Classified news intelligence (--topic, --country…)
  disasters                Earthquakes, fires, storms (--active_only…)
  sanctions                Sanctions designations (--country, --query…)
  forecasts                Scenario forecasts (--domain, --region…)
  maritime <ISO>           Maritime / port activity for a country

MCP
  tools                    List every MCP tool (public — no key needed)
  call <tool> [--arg val]  Call any MCP tool (get_sources needs no key)
  prompts | resources      List MCP prompt / resource templates

REST
  health                   API status / health check (needs --api-key)
  get <path> [--param val] Call a raw REST path (host-relative /api/…)
  list [service]           List documented REST operations (from the live spec)

FLAGS
  --api-key <key>          User API key (or env WORLDMONITOR_API_KEY)
  --mcp-url <url>          MCP endpoint (default https://worldmonitor.app/mcp)
  --base-url <url>         REST base (default https://api.worldmonitor.app)
  --args <json>            Typed arguments object for a tool call
  --timeout <ms>           Request timeout (default 30000)
  --raw                    Print the response body verbatim
  --compact                Print single-line JSON
  -h, --help               Show this help
  -v, --version            Print version

Any other --key value pair becomes a tool/request parameter, e.g.
  worldmonitor risk IR --api-key wm_xxx
  worldmonitor conflicts --country IR --limit 5 --api-key wm_xxx
  worldmonitor call get_market_data --asset_class crypto --api-key wm_xxx
  worldmonitor tools

Get an API key at https://worldmonitor.app/pro · docs https://worldmonitor.app/docs/cli

按认证要求分组的速查表:

分组命令认证
仪表盘tui(默认)、web免 key
发现类tools、prompts、resources、list免 key
数据命令world / country / risk / markets / conflicts / cyber / news / disasters / sanctions / forecasts / maritime需 API key
通用调用call <tool>(仅 get_sources 免 key)、get <path>、health视目标而定

三、免 key 命令详解

3.1 终端仪表盘(tui,默认命令)

直接运行 worldmonitor(等价 worldmonitor tui)进入交互式终端仪表盘,无需 API key——仪表盘读的正是 Web 端同一批公开 bootstrap 数据分层。13 个视图(来源:仓库 cli/README.md,查询日期 2026-10-25):

按键视图内容
1OverviewBraille 世界地图(实时事件闪烁点 + 雷达扫描)、AI 世界简报、头条排名、行情条
2Map可缩放世界地图与旋转地球,全部图层(海底电缆/管道/军事基地/核设施等 30+ 类)、NASA 卫星影像、昼夜终止线
3BriefAI 世界简报页:报道行与引用源并排
4News摘要分区、分类头条、报道详情
5Markets股指/大宗/外汇/加密(迷你走势图)、行业热力图、恐贪指数、ETF 资金流
6Conflict国家不稳定排名、UCDP 武装冲突事件、动荡信号、关联卡片
7Air & Sea地图实况军机、机场延误、咽喉点、船舶密度、航运压力
8Cyber威胁指标、DDoS 构成、服务状态、断网与流量异常
9Climate地震、灾害与疫情、气象警报、气候异常
0Predict预测市场(按领域)与 AI 情景预测
Alt+1Live直播新闻频道与网络摄像头(终端内播放)
Alt+2IntelGDELT 主题源、制裁压力、旅行警告、社媒热度
Alt+3System平台健康、分源新鲜度、主题、播放器状态

操作:Tab/Shift+Tab 切视图、方向键移动、Enter 展开详情、o 开链接、t 循环主题、a 动画开关、r 刷新、? 帮助、q 退出;全部可点击且支持滚轮。6 套主题(Neon Horizon、Matrix、Amber CRT、Red Alert、Glacier、Synthwave)持久化在 $XDG_CONFIG_HOME/worldmonitor/tui.json。TUI 专属旗标:--theme <id>、--no-anim、--fps <n>、--base-url <url>。直播视频经 mpv(YouTube 需 yt-dlp)在 Ghostty/Kitty/WezTerm 内走 Kitty 图形协议播放,无 mpv 时回退浏览器。

3.2 tools:发现全部 MCP 工具(95 个)

worldmonitor tools --compact

实测输出(节选,实测首部):

{"tools":[{"name":"get_country_history","title":"Country daily history","description":"Read cached daily country CII, resilience and linked headlines. Account depth: Pro 90 days; API/Enterprise 365. ...

实测解析工具数组:95 个工具(get_country_history、get_market_data、get_conflict_events、get_news_intelligence、get_natural_disasters 等),每个都带完整 JSON Schema 与账号档位说明——写脚本前先从这里查参数,不必翻文档。

3.3 call get_sources:唯一免 key 的数据调用

worldmonitor call get_sources --compact

实测输出(节选,实测首部):

{"content":[{"type":"text","text":"{\"view\":\"summary\",\"summary\":{\"providerCount\":790,\"excludedProviderCount\":171,\"outletCount\":531,\"providersByKind\":{\"feed\":406,\"structured\":291,\"operational-status\":30,\"feed+structured\":63},\"providersByStatus\":{\"terms-review\":681,\"reviewed\

要点:790 个数据 provider(另 171 个被排除)、531 个媒体 outlet;支持 --args '{"view":"kinds"}' 等视图参数;匿名路径上限每 IP 每分钟 10 次(官方 fail-closed 设计)。

3.4 prompts / resources:MCP 提示词与资源模板

worldmonitor prompts --compact

实测输出(节选,实测首部):

{"prompts":[{"name":"country-view","description":"Interactive country brief with assessment, resilience, energy, trade, security and source evidence. Text-only clients can use the existing data tools.","arguments":[{"name":"iso2","description":"Country designa
worldmonitor resources --compact

实测输出(节选,实测首部):

{"resources":[{"uri":"worldmonitor://seed-meta/freshness","name":"Seed-Meta Freshness","description":"Write-age probe for the high-cadence stock market-data bootstrap pipeline. Returns ONLY the envelope (cached_at + stale) — no quote payload, no auth, no quo

3.5 list:从线上 OpenAPI 规范列出 REST 操作

worldmonitor list

实测输出(节选,实测首部):

244 operation(s):
GET   /api/aviation/v1/get-airport-ops-summary  — GetAirportOpsSummary
GET   /api/aviation/v1/get-carrier-ops  — GetCarrierOps
GET   /api/aviation/v1/get-flight-status  — GetFlightStatus

实测共 244 个文档化 REST 操作,配合 get <path> 逃生舱可调用任意一个。

四、数据命令与 API key 接线

11 个数据命令(world/country/risk/markets/conflicts/cyber/news/disasters/sanctions/forecasts/maritime)本质是 MCP tools/call 的快捷别名,一律需要 --api-key(或环境变量 WORLDMONITOR_API_KEY;key 在 worldmonitor.app/pro 获取)。未带 key 的实测报错:

worldmonitor world

实测输出(节选,实测首部):

{
  "code": -32001,
  "message": "Authentication required. Use OAuth (/oauth/token) or pass your API key via X-WorldMonitor-Key header.",
  "data": {
    "reason": "no-account",
    "nextStep": "Connect via OAuth (see the WWW-Authenticate header) to sign in with a free account, or call get_sources, 

带 key 的标准用法(官方示例,参数直接以松散旗标传入):

export WORLDMONITOR_API_KEY=wm_xxxxxxxx
worldmonitor world                       # 全球态势简报
worldmonitor country IR                  # 国家 AI 战略简报
worldmonitor risk DE                     # 国家风险/韧性评分
worldmonitor conflicts --country IR --limit 5
worldmonitor markets --asset_class crypto
worldmonitor call get_cyber_threats --min_severity 7

退出码(实测验证):0 成功、1 请求/传输错误(响应体写 stderr)、2 用法错误——脚本里用 $? 判断即可,例如上面无 key 的 worldmonitor world 实测 exit=1,worldmonitor tools 实测 exit=0。

程序化调用:Node 内直接 import { run } from 'worldmonitor/run'(如 await run(['risk','IR'], { env: process.env })),拿退出码不 spawn 子进程。

五、指向自托管栈的接线

自托管部署后,CLI 无需官方 key 即可消费自家栈的数据——这正是自托管形态的最大价值。

5.1 MCP 通道(--mcp-url + 自建 key)

自托管栈的 MCP 端点是 http://<主机>:8140/api/mcp,合法 key 由栈的 .env 中 WORLDMONITOR_VALID_KEYS 定义(生成与重建步骤见部署指南 4.6 节):

worldmonitor call get_sources --mcp-url http://localhost:8140/api/mcp --api-key "$KEY" --compact

实测输出(节选,实测首部):

{"content":[{"type":"text","text":"{\"view\":\"summary\",\"summary\":{\"providerCount\":790,\"excludedProviderCount\":171,\"outletCount\":531,\"providersByKind\":{\"feed\":406,\"structured\":291,\"operational-status\":30,\"feed+structured\":63},...

错 key 的负路径实测(key 不在 WORLDMONITOR_VALID_KEYS 白名单时,自托管栈 fail-closed 转云验证失败):

{
  "code": -32603,
  "message": "Auth service temporarily unavailable. Try again."
}

5.2 REST 逃生舱(--base-url 直连自家 API)

get <path> 可打任意 host-relative /api/… 路径,--base-url 指向自家栈即可复用全部 244 个 REST 操作:

worldmonitor get /api/sidecar-health --base-url http://localhost:8140

实测输出:

{
  "status": "ok",
  "mode": "docker",
  "port": 46123
}

5.3 出网代理环境要点

访问官方端点(worldmonitor.app / api.worldmonitor.app)时,Node 24 的 fetch 默认不读代理环境变量,需前置 NODE_USE_ENV_PROXY=1(Node 24 内置开关)——实测无此前缀时 worldmonitor tools 报 Error: fetch failed,加后正常。指向自家栈(--mcp-url http://localhost:8140/api/mcp 或 --base-url http://localhost:8140)时无需代理,切勿把 localhost 常驻代理。

六、JMESPath 服务端投影

每个工具调用都可附带 jmespath 参数,在服务端投影响应后再过网线(官方称体积通常缩小 80–95%)。实测对比:

worldmonitor call get_sources --args '{"view":"summary","jmespath":"summary.providerCount"}' --compact

实测输出:

{"content":[{"type":"text","text":"790"}],"structuredContent":{"projection":790}}
worldmonitor call get_sources --mcp-url http://localhost:8140/api/mcp --api-key "$KEY" --args '{"view":"summary","jmespath":"summary.outletCount"}' --compact

实测输出(自托管栈,同样生效):

{"content":[{"type":"text","text":"531"}],"structuredContent":{"projection":531}}

⚠️ 实测踩坑:把 jmespath 作为松散旗标传(worldmonitor call get_sources --jmespath '…')时投影不生效,返回仍是全量响应;必须写进 --args 的 JSON 里(--args '{"view":"summary","jmespath":"…"}')。官方 README 展示的松散写法 worldmonitor markets --jmespath '…' 在 v0.2.1 上未复现出投影效果,批量脚本建议统一走 --args 内嵌写法。

七、常用组合示例

每日风险快照(cron)——拉德国风险评分、服务端只留所需字段,追加进日志:

# crontab:每天 07:30 拉快照
30 7 * * * worldmonitor risk DE --api-key "$WORLDMONITOR_API_KEY" --args '{"jmespath":"resilience.overall"}' --compact >> /var/log/wm-risk.log 2>&1

自托管栈健康巡检——REST 逃生舱探测,非 0 退出即告警:

worldmonitor get /api/sidecar-health --base-url http://localhost:8140 --compact \
  || echo "worldmonitor 栈异常" | mail -s wm-alert ops@example.com

AI 智能体接入(Claude Desktop / Cursor)——MCP 服务器配置指向自托管栈:

{
  "mcpServers": {
    "worldmonitor": {
      "url": "http://<服务器IP>:8140/api/mcp",
      "headers": { "X-WorldMonitor-Key": "${WORLDMONITOR_API_KEY}" }
    }
  }
}

指向官方托管站则用 "url": "https://worldmonitor.app/mcp" 并配官方 key;两种端点对智能体暴露同一套 95 个工具与 country-view 提示词模板。

八、常见问题(FAQ)

Q1:worldmonitor tools 报 Error: fetch failed? 出网走代理的服务器需前置 NODE_USE_ENV_PROXY=1(Node 24 fetch 默认不读 HTTP_PROXY);或改连自家栈 --mcp-url http://localhost:8140/api/mcp 绕开公网。

Q2:数据命令报 code: -32001 Authentication required? 该命令需要 API key。export WORLDMONITOR_API_KEY=wm_… 或每次 --api-key;免 key 只有 call get_sources(及发现类命令、TUI)。

Q3:自托管栈报 code: -32603 Auth service temporarily unavailable? 传的 key 不在栈的 WORLDMONITOR_VALID_KEYS 白名单内(或环境变量根本没配/没 up -d 重建生效)。核对部署指南 4.6 节生成与注入步骤。

Q4:--jmespath 传了但不生效? 见第六章踩坑说明:松散旗标写法在 v0.2.1 未触发服务端投影,改用 --args '{"jmespath":"…"}' 内嵌。

Q5:TUI 想固定主题/关动画? worldmonitor --theme matrix --no-anim(主题 id 实测取自源码 cli/src/tui/ui/theme.mjs:neon、matrix、amber、redalert、ice、synthwave);或环境变量与配置文件($XDG_CONFIG_HOME/worldmonitor/tui.json)持久化。直播播放需宿主装有 mpv(YouTube 另需 yt-dlp),否则回退浏览器打开。

Q6:脚本如何判断成败? 退出码:0 成功、1 请求/传输错误(错误体在 stderr)、2 用法错误(实测:无 key 调 world 为 1,tools 为 0)。Node 程序内用 import { run } from 'worldmonitor/run'。

Q7:call get_sources 会被限流吗? 免 key 但有兜底上限:匿名路径每 IP 每分钟 10 次(fail-closed)。常规监控脚本每分钟 1 次绰绰有余;其余数据命令按订阅档位计每日配额(错误信息里会带当日余量提示)。

Q8:Python/Ruby/Go 也能用吗? 能。官方三语言 SDK(Python worldmonitor-sdk、Ruby worldmonitor、Go sdk/go,均 v0.1.2,2026-10-23 发版)提供与 CLI 同能力的零依赖客户端;轻量场景继续用 CLI 的 run 入口即可。

九、参考链接