Skip to content

Web Dashboard

Distill includes a web dashboard for browsing digests, managing shared links, and reading extracted articles.

Prerequisites

The dashboard requires Bun (JavaScript runtime):

curl -fsSL https://bun.sh/install | bash

Starting the dashboard

uv run python -m distill serve --output ./insights

This:

  1. Installs JS dependencies (bun install) if needed
  2. Builds the frontend (bun run build) if needed
  3. Starts the API server on http://localhost:6107

First start takes ~30 seconds

Subsequent starts are instant since the build is cached.

What you get

Page What it shows
Home Pipeline status, recent activity, quick stats
Reading Daily intake digests with full markdown rendering
Graph Knowledge graph with three tabs (see below)
Shares URLs shared from your phone — click to read extracted content
Studio Blog post editor with AI chat and multi-platform publishing
Settings Configuration, source management, sharing setup

Knowledge Graph

The Graph page (/graph) has three tabs:

  • Briefing — Executive summary generated from your recent sessions. Shows focus areas with status (active/cooling/emerging), learning topics, risks, and recommendations.
  • Activity — Session timeline with stats, entity tag cloud, and file activity over a configurable time window (24h–30d).
  • Concepts — Interactive mind-map of ~25 concept nodes extracted from the briefing. Projects, topics, threads, risks, and entities are shown as labeled rectangles with color-coded edges. Click a node to see its detail and connections. Drag nodes to rearrange the layout.

Generate briefing data first

The Briefing and Concepts tabs require a briefing file. Generate one with:

uv run python -m distill graph briefing --output ./insights

Port

The default port is 6107. Override with:

uv run python -m distill serve --output ./insights --port 8080

HTTPS / TLS

For Tailscale or remote access, enable HTTPS:

# Generate certs with Tailscale
tailscale cert your-machine.ts.net

# Start with TLS
uv run python -m distill serve --output ./insights \
  --tls-cert your-machine.ts.net.crt \
  --tls-key your-machine.ts.net.key

This binds HTTPS on port 6117 alongside HTTP on 6107.

Development mode

For frontend development with hot reload:

# Terminal 1: API server
uv run python -m distill serve --output ./insights --dev

# Terminal 2: Vite dev server (HMR)
cd web && bun run dev

The Vite dev server on port 6108 proxies API requests to 6107.