Skip to content

Web Dashboard

DooDesch edited this page Jun 22, 2026 · 1 revision

Web Dashboard

Snitch runs a tiny loopback server inside the game (127.0.0.1:6140) and streams live profiler data over WebSocket. A browser dashboard renders it in real time: a streaming frame-time chart, per-section costs, entity-state distributions, counters, and a capability/honesty panel.

Your telemetry never leaves your machine - the page connects straight to ws://127.0.0.1:6140. The hosted site only serves the static app.

Two ways to open it

  • Hosted: open snitch.doodesch.de in your browser. It auto-discovers your local game and connects.
  • Offline / bundled: the exact same dashboard is bundled inside the mod and served at http://localhost:6140/ - works with no internet.

Auto-connect

The dashboard scans the loopback port, opens the WebSocket, and reconnects if the game restarts. When you open the hosted (HTTPS) page, Chrome may show a one-time "allow access to your local network" prompt - allow it (the server already sends the Private-Network-Access header).

Reading it

  • Frame chart - hover any point to read its value. X = recent samples (newest at the right), Y = mean frame time in ms (lower is better).
  • Sections - per-section ms/frame, grouped by mod. Click a group header to collapse it; hover a row for the worst-frame ms and calls/frame.
  • State distributions - hover a bar for the exact count and its share of the total.
  • Controls - Start / Stop / Reset sampling and Export a report, straight from the page.

Connecting your own dashboard

The data is plain JSON. GET /snapshot returns the full state; ws://127.0.0.1:6140/stream pushes it live; GET /health and GET /caps describe the instance. See the wire format in the mod's Server/WireProtocol.cs, and the dashboard's own source at ScheduleOne-SnitchWeb.

Clone this wiki locally