worldmonitor v2.11.4 常用 CLI 命令与工具详解
详解 worldmonitor CLI v0.2.1:免 key 终端仪表盘 13 视图、95 个 MCP 工具发现、11 个数据命令、REST 逃生舱、JMESPath 服务端投影与自托管栈接线,含退出码与 8 个实测 FAQ。
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):
| 按键 | 视图 | 内容 |
|---|---|---|
1 | Overview | Braille 世界地图(实时事件闪烁点 + 雷达扫描)、AI 世界简报、头条排名、行情条 |
2 | Map | 可缩放世界地图与旋转地球,全部图层(海底电缆/管道/军事基地/核设施等 30+ 类)、NASA 卫星影像、昼夜终止线 |
3 | Brief | AI 世界简报页:报道行与引用源并排 |
4 | News | 摘要分区、分类头条、报道详情 |
5 | Markets | 股指/大宗/外汇/加密(迷你走势图)、行业热力图、恐贪指数、ETF 资金流 |
6 | Conflict | 国家不稳定排名、UCDP 武装冲突事件、动荡信号、关联卡片 |
7 | Air & Sea | 地图实况军机、机场延误、咽喉点、船舶密度、航运压力 |
8 | Cyber | 威胁指标、DDoS 构成、服务状态、断网与流量异常 |
9 | Climate | 地震、灾害与疫情、气象警报、气候异常 |
0 | Predict | 预测市场(按领域)与 AI 情景预测 |
Alt+1 | Live | 直播新闻频道与网络摄像头(终端内播放) |
Alt+2 | Intel | GDELT 主题源、制裁压力、旅行警告、社媒热度 |
Alt+3 | System | 平台健康、分源新鲜度、主题、播放器状态 |
操作: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 入口即可。
九、参考链接
- CLI 官方文档:https://www.worldmonitor.app/docs/cli 、终端仪表盘指南:https://www.worldmonitor.app/docs/cli-dashboard
- npm 包主页:https://www.npmjs.com/package/worldmonitor
- 仓库内 cli/README.md(本表 13 视图与旗标来源):https://github.com/koala73/worldmonitor/blob/main/cli/README.md
- JMESPath 投影指南:https://worldmonitor.app/docs/mcp-jmespath
- MCP 概览与工具参考:https://www.worldmonitor.app/docs/mcp-overview
- 项目仓库:https://github.com/koala73/worldmonitor (CLI v0.2.1,查询日期 2026-10-25)
- 本专栏前置阅读:《worldmonitor v2.11.4 Docker Compose 部署指南》 、《worldmonitor v2.11.4 配置参数详解》