Skip to content

Dashboard

Matt Dula edited this page Apr 18, 2026 · 4 revisions

Dashboard

A minimal, read-only audit UI. Off by default. Meant for a human to glance at what agents did overnight — not a product UI.

Enable

DASHBOARD_ENABLED=true

Restart the app. Visit http://localhost:8000/dashboard. Paste an API key when prompted — it's stored in a cookie scoped to /dashboard.

What you see

Two tabs at the top:

Audit (default) — read-only grid of six panels:

  • Timeline — workspace-wide event stream, newest first
  • Recent contacts / companies / deals — last 20 of each
  • Open tasks — with due dates
  • Webhook deliveries — with failure counts

Kanban — deals grouped by stage across the default pipeline. Each column shows the stage name + count + total deal value; Won and Lost stages are colored to stand out. Cards carry deal name, amount, status, and expected close date. Read-only — to move a deal, use PATCH /deals/{id} or the MCP move_deal_stage tool; the dashboard reflects the change on next load. Fetches up to 4,000 deals per pipeline via cursor pagination.

Webhooks — subscriber health + delivery log. Each subscription shows its URL, a status badge (healthy / N failures / disabled), and when it last fired. Click a subscription to expand its last 50 deliveries; each delivery row includes status (pending/succeeded/dead), attempt count, HTTP response code, error string (if any), and the first 400 bytes of the response body. Filter the expanded view by status via the dropdown to isolate failures.

Memory — inspector for every link between a CRM entity and an external memory (DocDeploy / Supermemory / GBrain). Each row is a connector pill + entity pill + the external memory id + the cross-linked CRM row id + the author note (if any). Filter by connector, entity type, or both. Paginates 50 at a time; click "load 50 more" to extend. The header shows which connectors are enabled in this deployment.

Safety

  • Binds to whatever the app binds to. If that's 0.0.0.0, the dashboard is public.
  • Auth is a cookie holding the API key. Don't share a screen with a malicious party without clicking logout first (clears the cookie).
  • For production, put Nakatomi behind your own SSO proxy and disable the dashboard — it's not meant for multi-user access.

Launch from an agent

The nakatomi-dashboard skill fires on "nakatomi dashboard" and:

  1. Checks if the stack is up (GET /health)
  2. If not, starts docker compose up -d with DASHBOARD_ENABLED=true
  3. Waits for /health to return 200
  4. Opens Chrome at http://localhost:8000/dashboard

Install it locally:

mkdir -p ~/.claude/skills
cp -R .claude/skills/nakatomi-dashboard ~/.claude/skills/

Planned (v2)

  • Custom field explorer
  • Keyboard nav (hjkl-style)
  • OAuth login instead of bearer-in-cookie

Dashboard depth is an explicit v2 roadmap item — see ROADMAP.md.

Clone this wiki locally