Topology
flui topology reads the same map as the dashboard’s Topology page
and tells the same story in the terminal: which clusters you have,
which apps run on each, on which servers their replicas run, who calls
whom, and what needs attention right now. You see only the clusters
and apps you are allowed to read.
flui topology
In a terminal it opens a navigator. The first screen is the fleet: every cluster with its provider and region, servers, apps, problems and status, then a Needs attention list and the apps whose replicas run on more than one cluster. Open a cluster to see its apps grouped by project, with replicas, status and requests per second, the apps Flui runs for itself folded into one Flui platform entry, and the cluster’s servers. Open an app to see its routes from the Internet, who calls it, what it talks to and the servers its replicas run on. Open a server to see its role, type, memory and CPU in use and what runs on it.
| Key | Effect |
|---|---|
↑ ↓ | Move between rows. |
Enter | Open the row under the cursor. |
Esc, Backspace, ← | Go back one level. |
/ | Find a cluster, app or server by name. |
o | Open the row under the cursor in the dashboard Topology, or the current screen when no row is selected. |
q, Ctrl+C | Quit. |
The navigator stays live: when an app scales, changes status or moves,
the screen redraws in place and the cursor stays on the row it was on.
The marker at the top right says ● live; ○ connecting and
○ reconnecting mean the screen shows the last map read while the
live connection is being made or restored.
When the output is not a terminal, or with --no-interactive, the
command prints the fleet and exits:
$ flui topology --no-interactiveFleet3 clusters · 5 servers · 11 apps · 13 replicas · 12 platform apps
Clusters CLUSTER WHERE SERVERS APPS PROBLEMS STATUS production hetzner · fsn1 3 8 1 Healthy staging scaleway · fr-par 1 3 — Healthy flui-control hetzner · nbg1 1 0 — Healthy
Needs attention ● Worker production Restarted 3 times in the last hour · OOMKilled
Spread across clusters Storefront production · staging API production · staging Postgres production · stagingflui topology cluster <name>
One cluster, printed: its apps by project, the Flui platform, and its servers. The header counts the apps the way the groups below list them, and says what the cluster’s Flui firewall lets in: Public for the ports anyone can reach, Limited for the ports open only to some address ranges.
$ flui topology cluster productionFleet › productionproduction hetzner · fsn1 · workload Healthy3 servers · 8 apps in 2 projects · 1 problemReached over the Flui networkPublic: :80 HTTP, :443 HTTPSLimited: :22 SSH (1 range)
Shop APP TYPE REPLICAS STATUS REQ/S EXPOSURE API Web app 2 Running — internal Storefront Web app 2 Running 16 public Worker Business app 1 Warning — cluster Restarted 3 times in the last hour · OOMKilled Postgres Database 1 Running — clusterWhen everything fits in one line the firewall reads
Public: :443 HTTPS · Limited: :22 SSH (1 range); a long list ends
with +N more instead of a cut word.
flui topology app <name>
One app, printed. When the same name is on several clusters the
command lists them and asks you to choose with --cluster:
$ flui topology app storefront --cluster productionFleet › production › StorefrontStorefront Running production · public · Web appReplicas 3 · manual Traffic in 14 req/sMemory 448 MB, limit 896 MB CPU 150m, limit 300mStack Shop Project Shop
Reachable from the Internet https://shop.example.com → :3000 14 req/s 0% errors
Talks to API production :8080
Runs on production-2 ×2 worker memory 52% · cpu 26% production-3 ×1 worker memory 62% · cpu 17%flui topology server <name>
One server, printed, with the apps running on it and how many of each app’s replicas it holds.
Open in the dashboard
--open opens what the command shows in the dashboard Topology, at
the same place: the fleet, the cluster, the Flui platform of a
cluster, the app with its neighbours, or the server in the
infrastructure view. The command prints the address it opens:
$ flui topology cluster production --openOpening https://dashboard.example.com/topology?level=cluster&cluster=<cluster-id>| Command | Opens |
|---|---|
flui topology --open | /topology |
flui topology cluster <name> --open | /topology?level=cluster&cluster=<cluster-id> |
flui topology app <name> --open | /topology?level=app&cluster=<cluster-id>&app=<app-id>&focus=app:<app-id> |
flui topology server <name> --open | /topology?view=infrastructure&focus=server:<server-id> |
The page opens once, when the command starts, also with --watch.
flui topology --open prints the fleet instead of starting the
navigator. When the output is not a terminal, or no browser opens, the
command prints the address so you can open it yourself. In the
navigator the o key does the same for the row under the cursor.
The dashboard address comes from your Flui instance. An older instance
does not send it: the command says so, and --dashboard-url <url>
gives the address by hand. The flag also replaces the address the
instance sends.
Flags
Names and ids are both accepted, in any letter case.
| Flag | Effect |
|---|---|
--watch | Stay open and redraw on every change, with the last few changes listed under the view. Works on every form. Ctrl+C stops it. |
--system | List the apps Flui runs for itself one by one instead of as one Flui platform entry. |
--json | Print the matching part of the topology as JSON: the whole fleet, or the cluster, app or server with what it touches. Platform apps are included only with --system. |
--cluster <name> | On app and server: the cluster to look in when the name is on several. |
--no-interactive | On flui topology: print the fleet instead of opening the navigator. |
--open | Also open this view in the dashboard Topology. Not with --json. |
--dashboard-url <url> | The dashboard address to link to, instead of the one the instance sends. |
--api-url <url> | Talk to this API instead of the one in the active profile. |
--profile <name> | Read the credential from this profile. |
NO_COLOR turns colour off.
Agents connected over MCP read the same map with the topology_get
tool, with the same focus on a cluster, an app or a server.