> ## Documentation Index
> Fetch the complete documentation index at: https://www.worldmonitor.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Terminal Dashboard

> Run World Monitor in your terminal: live world map, news, markets, conflict, military flights, cyber, climate, prediction markets and live TV, with mouse support and colour themes. No API key needed.

World Monitor also runs as a full-screen dashboard in your terminal. It ships in the [`worldmonitor`](https://www.npmjs.com/package/worldmonitor) npm package next to the [command-line client](/docs/cli), needs no API key, and shows the same live data as the [web dashboard](https://www.worldmonitor.app/dashboard): a world map, ranked news, markets, conflict and instability, military flights and shipping, cyber threats, climate hazards, prediction markets, live TV and webcams, and platform health.

<Frame caption="Overview: the live world map with quakes, conflict, unrest, hazards, fires, cyber and outage markers, the AI world brief, ranked top stories, a market strip and theater posture.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/overview.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=af48de9209a327a2b7eff9378fdca458" alt="World Monitor terminal dashboard, Overview view" width="2460" height="1402" data-path="images/tui/overview.webp" />
</Frame>

## Start it

```sh theme={null}
npx worldmonitor            # run once without installing
npm install -g worldmonitor # or install the `worldmonitor` command (alias `wm`)
worldmonitor                # open the dashboard (same as `worldmonitor tui`)
```

Running `worldmonitor` with no arguments in an interactive terminal opens the dashboard. In a pipe, a script or CI it prints the help text instead, so existing automation is unaffected. Press `q` to quit; the terminal is restored as it was.

<Frame caption="Startup: the dashboard connects to the API and loads each data tier before the first view appears. Press Esc, Enter or Space to skip it.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/boot.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=f55e0b12a4ae8bd38e33d81c2d6a9857" alt="Startup screen with the World Monitor logo and loading progress" width="2460" height="1402" data-path="images/tui/boot.webp" />
</Frame>

### Requirements

* **Node.js 18 or newer.** The package has no dependencies.
* **An interactive terminal of at least 80×24.** Larger windows show more panes side by side; 160×45 or more gives the full layout shown on this page.
* **A terminal with truecolor and mouse support** for the best result, such as Ghostty, kitty, WezTerm, iTerm2, Konsole, Alacritty or the VS Code terminal. Terminals that do not report truecolor, including macOS Terminal, get 256 colours.
* **A font with braille and box-drawing characters** for the map and panel borders. Most current terminal fonts include them.
* **Optional:** [mpv](https://mpv.io) and [yt-dlp](https://github.com/yt-dlp/yt-dlp) to play live TV and webcams in the terminal. Without them, streams open in your browser.

## Views

Switch views with the number keys, `Tab` / `Shift+Tab`, or by clicking a tab.

| Key | View | What it shows |
| - | - | - |
| `1` | Overview | World map with live markers and a radar sweep, AI world brief, ranked top stories, market strip, theater posture |
| `2` | News | Digest sections with ranked, threat-classified headlines and a story detail pane |
| `3` | Markets | Indices, commodities, FX and crypto with sparklines, sector heatmap, macro signals, fear & greed, ETF flows, stablecoins, Gulf markets |
| `4` | Conflict | Country instability (CII) ranking, UCDP armed-conflict events, unrest, theater posture, correlation cards |
| `5` | Air & Sea | Military aircraft on the map, airport delays, chokepoints, vessel density, shipping stress, freight indices |
| `6` | Cyber | Threat indicators, DDoS protocol and vector mix, service status, internet outages, traffic anomalies |
| `7` | Climate | Earthquakes, natural hazards, disease outbreaks, weather alerts, climate anomalies, planetary vitals |
| `8` | Predict | Prediction markets by domain and AI scenario forecasts |
| `9` | Live | Live news channels and webcams, played in the terminal or the browser |
| `0` | Intel | GDELT topics, sanctions pressure, travel advisories, social velocity, US spending awards, tech events |
| `Tab` from Intel | System | Platform health, per-source freshness, theme and animation settings, video player status |

### News

<Frame caption="News: digest sections on the left, ranked headlines with source, importance score and age in the middle, and the selected story's scores, summary and link on the right.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/news.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=ee996a05308633515ff5e10d862db474" alt="News view with sections, ranked headlines and story detail" width="2460" height="1402" data-path="images/tui/news.webp" />
</Frame>

`[` and `]` change the section. `Enter` or `o` opens the selected story in your browser.

### Markets

<Frame caption="Markets: quotes with sparklines, crypto, a sector heatmap, macro signals, fear & greed and ETF flows.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/markets.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=2da6ea6ae56fdfa3ce6d1b448d97feac" alt="Markets view with quotes, sparklines and sector heatmap" width="2460" height="1402" data-path="images/tui/markets.webp" />
</Frame>

### Conflict

<Frame caption="Conflict: the Country Instability Index ranking, recent UCDP armed-conflict events, unrest signals and correlation cards.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/conflict.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=23d6c963e555f7aa2c7aff426766732a" alt="Conflict view with CII ranking, UCDP events and unrest" width="2460" height="1402" data-path="images/tui/conflict.webp" />
</Frame>

### Air & Sea

<Frame caption="Air & Sea: live military aircraft plotted on the map, sorted by altitude, with airport delays, chokepoint status, shipping stress and freight indices.">
  <img src="https://mintcdn.com/worldmonitor/EhWqf0wcTjkT_BCK/images/tui/airsea.webp?fit=max&auto=format&n=EhWqf0wcTjkT_BCK&q=85&s=bc6fe1ff297589cc33ff496bb279721e" alt="Air and Sea view with military flights on the map, airport delays and chokepoints" width="2460" height="1402" data-path="images/tui/airsea.webp" />
</Frame>

Military flights and vessel data load only while this view is open. The selected aircraft is highlighted on the map.

### Cyber

<Frame caption="Cyber: threat indicators, DDoS mix, service status and internet outages.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/cyber.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=f83bac3ec6cdf60a6a5890b3007af680" alt="Cyber view with threat indicators, DDoS mix and outages" width="2460" height="1402" data-path="images/tui/cyber.webp" />
</Frame>

### Climate

<Frame caption="Climate: earthquakes, natural hazards, weather alerts and planetary vitals.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/climate.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=5873f2f9b8ec629796facd3a4fa8e7d7" alt="Climate view with earthquakes, hazards and planetary vitals" width="2460" height="1402" data-path="images/tui/climate.webp" />
</Frame>

### Predict

<Frame caption="Predict: prediction markets grouped by domain, and AI scenario forecasts.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/predict.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=adf0391090c9353457b1487a27cd265a" alt="Predict view with prediction markets and forecasts" width="2460" height="1402" data-path="images/tui/predict.webp" />
</Frame>

### Live

<Frame caption="Live: the dashboard's news channels and webcams, with each channel's stream sources and the local player status.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/live.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=0fe647a8702c89168229874bab1c2196" alt="Live view with news channels, webcams and player controls" width="2460" height="1402" data-path="images/tui/live.webp" />
</Frame>

| Key | Action |
| - | - |
| `Enter` | Play the selected channel or webcam inside the terminal |
| `w` | Play in an mpv window |
| `b` | Open in the browser |
| `s` | Try the next stream source |
| `[` `]` | Change region |

Each channel tries the broadcaster's HLS stream first, then YouTube. In-terminal video uses the Kitty graphics protocol on Ghostty, kitty, WezTerm and Konsole for full-resolution pixels, and coloured character cells everywhere else, including inside tmux. Press `q` in mpv, or `Ctrl+C`, to stop playback and return to the dashboard.

Install the player on macOS with `brew install mpv yt-dlp`, or with your Linux package manager. Without mpv, `Enter` opens the stream in your browser.

### Intel

<Frame caption="Intel: GDELT topic feeds, sanctions pressure, travel advisories and social velocity.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/intel.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=d7e755bbad5637e7788eaf1e46ced567" alt="Intel view with GDELT topics, sanctions pressure and advisories" width="2460" height="1402" data-path="images/tui/intel.webp" />
</Frame>

### System

<Frame caption="System: platform health, the freshness and refresh interval of every data source, appearance settings and the video player status.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/system.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=d7b62332e939cb56eb372e62c30b1530" alt="System view with platform health and data source freshness" width="2460" height="1402" data-path="images/tui/system.webp" />
</Frame>

Use this view to check whether a source failed to load. `r` refreshes the current view immediately.

## Controls

Every action works from the keyboard, and tabs, rows and buttons are clickable. The mouse wheel scrolls lists. Press `?` at any time for the key reference.

<Frame caption="The help overlay (?) lists every key.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/help.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=13be699e9129b4f1b543c916214a9d4e" alt="Help overlay listing keyboard controls" width="2460" height="1402" data-path="images/tui/help.webp" />
</Frame>

| Key | Action |
| - | - |
| `1`–`9`, `0` | Jump to a view |
| `Tab` / `Shift+Tab` | Next / previous view |
| `←` `→` or `h` `l` | Move between panes |
| `↑` `↓` or `j` `k` | Move in a list |
| `PgUp` `PgDn`, `g` `G` | Page, first, last |
| `Enter` | Open the selected item |
| `o` | Open the selected link in the browser |
| `t` / `T` | Next theme / theme picker |
| `a` | Toggle animations |
| `r` | Refresh the current view now |
| `W` | Open the web dashboard |
| `?` | Help |
| `q` or `Ctrl+C` | Quit |

## Themes

<Frame caption="The colour themes: Neon Horizon (default), Matrix, Amber CRT, Red Alert, Glacier and Synthwave.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/themes.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=6c79a07b58d308ee5c40285f1b0e6b35" alt="The same Overview view in each colour theme" width="1800" height="1652" data-path="images/tui/themes.webp" />
</Frame>

Press `t` to cycle themes, or `T` to open the picker. The picker previews each theme as you move through the list; `Enter` keeps it and `Esc` returns to the theme you had.

<Frame caption="The theme picker previews the highlighted theme across the whole dashboard.">
  <img src="https://mintcdn.com/worldmonitor/gTvYptLHUWFGZ33V/images/tui/picker.webp?fit=max&auto=format&n=gTvYptLHUWFGZ33V&q=85&s=74bb6333582d0f00368a058748479467" alt="Theme picker overlay previewing the Matrix theme" width="2460" height="1402" data-path="images/tui/picker.webp" />
</Frame>

Your theme, the animation setting and the last view are saved in `$XDG_CONFIG_HOME/worldmonitor/tui.json` (usually `~/.config/worldmonitor/tui.json`). The file never contains your API key.

## Options

| Flag | Effect |
| - | - |
| `--theme <id>` | Start with a theme: `neon`, `matrix`, `amber`, `redalert`, `ice`, `synthwave` |
| `--no-anim` | Turn off animations (radar sweep, ticker, typewriter brief). `a` toggles them while running |
| `--fps <n>` | Frame rate while animating, 5–60 (default 20) |
| `--base-url <url>` | API host for a self-hosted deployment |
| `--api-key <key>` | Use your API key instead of an anonymous session |

These flags apply to the terminal dashboard. `worldmonitor web` has its own flags, listed under [Open the web dashboard](#open-the-web-dashboard). On every other command, `--theme`, `--url` and similar flags are passed through to the API as parameters.

| Environment variable | Effect |
| - | - |
| `WORLDMONITOR_API_KEY` | API key used instead of the anonymous session |
| `WORLDMONITOR_BASE_URL` | API host, shared with the other CLI commands |
| `WORLDMONITOR_TUI_BASE_URL` | API host for the dashboard only |
| `WM_TUI_COLOR` | Force `truecolor` or `256` colours when detection is wrong |
| `WM_TUI_VO` | Force mpv's terminal video output, for example `kitty` or `tct` |
| `WM_TUI_FORCE` | Start the dashboard even when stdin or stdout is not a terminal |

## Data and privacy

The dashboard reads the same public endpoints as the web dashboard: the public bootstrap tiers, the news digest, the compact health endpoint and the version endpoint. Military flights and vessel snapshots use an anonymous, short-lived session token, minted the same way the browser mints one. When `WORLDMONITOR_API_KEY` or `--api-key` is set, that key is sent instead.

Data refreshes in the background: the fast tier every minute, news and health every 2 minutes, the slow tier every 5 minutes. Flights and vessels refresh only while the Air & Sea view is open. A source that fails waits before it retries, and the System view shows its error.

## Open the web dashboard

```sh theme={null}
worldmonitor web
```

Opens [worldmonitor.app/dashboard](https://www.worldmonitor.app/dashboard) in your browser. Inside a clone of the World Monitor repository it starts the local development server (`npm run dev`) instead and opens the local URL.

| Flag | Effect |
| - | - |
| `--hosted` | Always open the hosted dashboard, even inside a checkout |
| `--port <n>` | Port for the local development server (default 5173) |
| `--no-open` | Print the URL without opening a browser |
| `--url <url>` | Open this URL instead of the hosted dashboard. Inside a checkout, add `--hosted`, or the local development server starts instead |

## Troubleshooting

* **The map or borders show boxes or question marks.** Your font lacks braille or box-drawing characters. Switch to a current terminal font such as JetBrains Mono, Fira Code, SF Mono, Menlo or Cascadia Code.
* **Colours look washed out or wrong.** Your terminal may not report truecolor support. Set `COLORTERM=truecolor`, or `WM_TUI_COLOR=256` if your terminal only supports 256 colours.
* **The mouse does not work inside tmux.** Enable it with `set -g mouse on` in your tmux configuration.
* **"The dashboard needs an interactive terminal".** stdin or stdout is a pipe or file. Run `worldmonitor tui` directly in a terminal, or use the [scripting commands](/docs/cli) for automation.
* **Video does not play.** Check the Player section of the System view. mpv and yt-dlp must be on your `PATH`; otherwise streams open in the browser.
* **A view is empty.** Open the System view to see which source failed and when it will retry. `r` refreshes the current view.

## Related

* **[Command-Line Client](/docs/cli)**: script briefs, risk scores and MCP tools from the same `worldmonitor` command.
* **[Desktop App](/docs/desktop-app)**: the full web dashboard as a native app.
* **[SDKs](/docs/sdks)**: Python, Ruby and Go clients.
* **[MCP server](/docs/mcp-overview)**: connect an AI agent.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.