Browser UI
The browser UI is the web companion to the TUI. It is served by mem-service and uses the same backend APIs for memories, query, code graph inspection, activities, watchers, embeddings, resume briefings, errors, and curation review.
Want to inspect the UI before installing? Open the self-contained Web UI demo. It runs from a sanitized static snapshot on the public site, uses no backend, and shows a status message whenever a real service action would be required.
Open it while the service is running:
http://127.0.0.1:4040/When running from source, build the web assets and run the service:
npm --prefix web ci
npm --prefix web run build
cargo run --bin memory -- service runTabs
| Tab | What it shows |
|---|---|
| Memories | Canonical memories, filters, markdown-style canonical text, embeddings, sources, history, and related memories. |
| Agents | Local Codex and Claude sessions, current-project sorting, tokens, context pressure, child processes, ports, and rate limits. |
| Query | Cited answers, ranked memory results, lexical/semantic/graph timing, token usage, ranking explanations, and graph connections. |
| Graph | 3D WebGL graph explorer with code neighborhoods, optional memory provenance links, optional memory relationship edges, and typed node/edge detail. |
| Activity | Persisted activity, token and duration metadata, get-up-to-speed briefings, and LLM audit/debug status. |
| Errors | Persisted diagnostics and browser-session errors with explanations, fix hints, doctor hints, commands, and raw errors. |
| Project | Counts, memory type/source breakdowns, embedding coverage, automation state, watcher status, and recent activity. |
| Review | Replacement proposals with policy, target/candidate detail, reason, and approve/reject actions. |
| Watchers | Watcher presence, heartbeat state, owner agent/session, restart attempts, and recovery details. |
| Skills | Repo-local Memory skills, version status, upgrade action, file paths, SKILL.md content, and repair controls. |
| Embeddings | Configured embedding backends, active search backend, automatic creation, coverage, re-embed, and reindex controls. |
| Resume | Re-entry briefing with checkpoint, current thread, next steps, recent changes, context memories, timeline, warnings, and commits. |
| Automations | Built-in loop definitions, effective settings, runs, approvals, context packs, and loop memory proposals. |
The web-only Bundles tool remains under the More menu for bundle export/import
previews and transfer. Automations is a primary browser tab and also has a
read-oriented TUI tab.
Automations tab
The Automations tab is the browser surface for the built-in Memory Layer loop control plane. Use it to inspect registered loops, toggle project-scoped settings, start manual runs, review run traces, inspect context packs, and approve or reject loop-produced memory proposals.
Read Automations for the full list of built-in loops and their safety boundaries.
Skills tab
The Skills tab inventories repo-local Memory Layer skills. It defaults to the
memory-layer umbrella skill for a quiet health signal and can switch to the
full Memory-owned bundle when you need to inspect focused skills.
Use it to see each skill's installed version, template version, freshness,
upgrade action, installed path, template path, description, and SKILL.md
content. Repair skills uses the same repair path as memory doctor --fix: it
downloads the current GitHub bundle when available, falls back to the installed
template when offline, backs up replaced files, and only mutates Memory-owned
skill directories.
Graph tab
The Graph tab is a WebGL-only 3D explorer with three independently visible layers:
| Layer | Default | Data |
|---|---|---|
| Code | On | Parser-backed code graph neighborhoods from the latest completed graph extraction run. |
| Provenance | Off | Memory-to-source links derived from active memories and source records, including file, symbol, commit, and provenance verification status when available. |
| Memory relationships | Off | Active memory-to-memory relation edges such as supports, supersedes, duplicates, depends_on, and related_to. |
The browser does not extract or mutate graph data. The code layer reads
/v1/projects/{project}/graph; the memory layers read the separate read-only
/v1/projects/{project}/memory-graph endpoint and then merge visible layers in
the browser.
Build or refresh the graph from the CLI:
memory graph extract --project memoryThe default view is a bounded neighborhood. Filters can seed the graph from text
search, file path, symbol name, edge kind, depth, node cap, and edge cap. The
service enforces hard caps of depth 2, 1000 nodes, and 2000 edges. Capped
responses show a truncation reason in the tab.
The layer checkboxes sit underneath the 3D scene. Hovering a checkbox or a visible node/edge brightens that whole layer and dims the others. Toggling the provenance or relationship layers only changes the browser view; it does not change backend code graph filters.
Click a code node to inspect it. Shift-click a second code node to show the nodes and edges that connect both nodes through any simple path in the loaded code graph. The connection view is local to the browser and clears on normal selection, Back/Forward, background clear, or graph refresh. It applies only to the Code layer in this release.
Clicking a memory node shows its memory type, confidence, importance, tags, and memory id. Clicking a source node shows source type, file path, symbol, commit, verification status, and source id. Clicking provenance or relationship edges shows their endpoints and edge-specific metadata.
Query graph connections and graph extraction activity details include actions that open the Graph tab with matching file, symbol, edge kind, or run id filters. Browsers without WebGL show an unsupported state; there is no SVG or 2D fallback.
Runtime status
The status strip shows the same operational components as the TUI bottom bar:
| Component | Meaning |
|---|---|
| Web | Browser UI version and restart-required state. |
| Service | Backend version, primary/relay role, and service identity. |
| Manager | Watcher-manager state, mode, tracked sessions, and warnings. |
| Watchers | Active and unhealthy watcher counts. |
| Skills | Compact repo-local skill health for the selected Skills filter; click it to open the Skills tab. |
If an install or upgrade writes a restart marker, the Web component enters restart state so you know to reload the page or restart the running UI.
Query evidence
The Query tab is designed to explain how an answer was produced:
- answers cite numbered returned memories
- timing separates browser roundtrip, lexical search, semantic search, graph retrieval, rerank/relation work, and answer generation
- result details show score components such as text score, semantic similarity, relation boost, graph boost, tag/path matches, confidence, importance, and recency
- graph connections explain which file or symbol helped retrieve a memory
Use query history with the up/down arrows in the query box. Restoring a previous query restores both the question and the results that belonged to it.
Activity and audit
The Activity tab can generate deterministic and LLM-backed handoff briefings.
| Briefing | Use when |
|---|---|
| Deterministic | You want cheap, grounded context from persisted activities and memories. |
| LLM briefing | You want a synthesized narrative and have an LLM backend configured. |
The same tab can toggle LLM audit/debug logging. Enable it briefly when debugging prompts or provider behavior, then disable it again because audit events can include large prompt payloads.
Help
Press h or use the Help button to open contextual help for the active tab. Press h again or Esc to return.
Next
Read TUI, Automations, Operations, or CLI service commands.
