Appearance
Open the dashboard
After hivecast install finishes, the Host is already serving a set of webapps. This page is a tour: which URL does what, what to look for in each, and what proves the whole setup is healthy.
The default webapps and their roles
The default install brings up ten runtimes (hivecast.mjs:28-39); seven of them serve a webapp:
| URL | Webapp | Role |
|---|---|---|
http://127.0.0.1:3100/apps/web/ | matrix-web | Account/platform shell. Plays the HiveCast-platform role in the two-runtime dev topology |
http://127.0.0.1:3100/apps/edge/ | matrix-edge | Local-Device shell. Plays the personal-Device role |
http://127.0.0.1:3100/apps/director/ | Director | The cognitive-infrastructure dashboard, agent inspection, workstream view |
http://127.0.0.1:3100/apps/chat/ | Chat | Human/agent chat with inference |
http://127.0.0.1:3100/apps/flowpad/ | FlowPad | A scratchpad surface |
http://127.0.0.1:3100/apps/smithers/ | Smithers | Smithers — the cognitive infrastructure assistant |
http://127.0.0.1:3100/apps/inference-settings/ | Inference Settings | Configure inference providers (Anthropic OAuth, Codex, OpenAI, Ollama, etc) |
If you want a different host:port (e.g. you pinned --http-port 3101), substitute it.
The wrapper computes the Edge URL from host.status.json if present, else from host.json's http.host and http.port, falling back to 127.0.0.1:3100 (localEdgeUrlForStatus in hivecast.mjs:735-747).
What to verify in each shell
matrix-edge — /apps/edge/
The Device shell. Should show:
- this Device's
hostName(orinstallIdif unlinked) at the top - a runtimes list — one card per runtime in
system.runtimes - a packages list — what's in
<MATRIX_HOME>/packages/global/node_modules/ - a Connect / Link control if not yet paired
The browser opens a WebSocket to /nats-ws (same origin), connects to the local NATS, and subscribes to system.runtimes and system.devices. If the runtimes list stays empty, the WebSocket isn't connecting — see Troubleshooting → NATS connection failed.
matrix-web — /apps/web/
The platform shell. In the two-runtime dev topology this plays the role hivecast.ai plays in production. Should show:
- the navbar, status bar, auth gate
- a "no auth required" path on a
local-clientHost (loopback session is the local owner) - a Devices list (when you have any)
- a "Connect to HiveCast" dashboard button (the wiring for this is target state — see
WORKSTREAMS/product-launch/STATUS.md)
Director — /apps/director/
The cognitive-infrastructure dashboard. Should show a session list, agent inventory, and a chat-style interaction surface.
Chat — /apps/chat/
The chat surface. Sends to one of the configured inference providers. Will not work unless inference is configured (see Inference Settings).
Inference Settings — /apps/inference-settings/
Configure the inference providers used by Chat / Director. Choices: Anthropic OAuth, Codex, OpenAI, Ollama. All credentials stay local — Factotum is the only actor that reads/writes them, and they never leave the Device.
The auth flows are local:
| Provider | Method | Where credentials end up |
|---|---|---|
| Anthropic OAuth | Browser → 127.0.0.1 callback → Factotum | <host-home>/credentials/factotum/* |
| Codex | Browser → 127.0.0.1 callback → Factotum | Same |
| OpenAI | API key paste | Same |
| Ollama | URL + optional model | <host-home>/credentials/factotum/* |
Source:
CLAUDE.mdRule 4: "Credentials go through Factotum ONLY. Inference credentials NEVER leave the local machine."
What proves the install is healthy
You should be able to:
- Open
/apps/edge/and see a list of runtimes - Open
/apps/director/and see the dashboard render (no perpetual spinner) - Run
hivecast doctorand getok: true - Run
hivecast invoke system.runtimes runtimes.list '{}'and get a list with the same runtimes
Concrete invoke check:
bash
hivecast invoke system.runtimes runtimes.list '{}' --home /tmp/matrix-home
hivecast invoke system.devices devices.list '{"includeOffline":true}' --home /tmp/matrix-homeIf the actor surface returns successfully, the bus path is healthy. If invoke errors with "Matrix Host Service is not running" or ECONNREFUSED, the bus path is broken — see Troubleshooting → NATS connection failed.
Common confusions
- "The page loads but spinner never resolves." → almost always the browser-to-NATS WebSocket. Check
<host-home>/logs/runtimes/RUNTIME-HOST-...-GATEWAY.stderr.logand the browser console fornats-wsconnection errors. - "I see a 404." → the gateway runtime didn't pick up the route. Check
hivecast runtimesfor the gateway and the webapp runtime; if the webapp has--servebut no record ofroutePrefix, the runtime didn't register the route. Restart it. - "It works at
127.0.0.1but not from another machine." → the Host bound to127.0.0.1, not0.0.0.0. By default that's correct; containers detected via/proc/1/cgroupautomatically bind to0.0.0.0. To change explicitly, edithost.jsonhttp.hostand restart.
See also
- Local Device → Logs — where to look when something doesn't render.
- Local Device → Runtime records — for inspecting individual runtimes.
- Cloud Account → Login — once everything works locally, pair to an account.
- Troubleshooting — symptom-driven recipes.
Source:
projects/matrix-3/packages/hivecast/bin/hivecast.mjslines 28-39 (default runtimes that produce the webapps) and 735-747 (localEdgeUrlForStatus);CLAUDE.mdRule 4 (Factotum / credentials boundary).