Telepath Dashboard

The glanceable startup dashboard — parallel data fetching with cached AI summaries.

Telepath is the at-a-glance dashboard the shell shows on launch: a grid of cards that pull together your email, news, and other signals, each distilled by the LLM into a short summary. It's powered by.

What it does

the dashboard service encapsulates three things:

  1. Parallel fetching — email and news (and other sources) are fetched concurrently via a ThreadPoolExecutor, so the dashboard assembles quickly.
  2. AI summarization — each source's content is summarized by the LLM into a compact heading + body.
  3. Caching — summaries are cached by a content hash with a 30-minute TTL, so the same content isn't re-summarized on every refresh.

Content-hash summary cache

Each piece of content is hashed (compute_content_hash); the summary cache is keyed on that hash:

  • Cache hit (within 30 min) → the stored {heading, body} is returned instantly.
  • Cache miss → a placeholder is shown and the summary is generated in the background (tracked in pending_summaries), then filled in — so the UI never blocks waiting on the LLM.

Cached summaries are also exposed over HTTP:

EndpointPurpose
GET /api/summaries/{content_hash}Fetch a cached summary
POST /api/summaries/batchRequest/fetch summaries in bulk

Launching it

The dashboard is summoned by the demo or telepath query and auto-runs on shell startup. You choose which cards appear with --cards=:

text
demo --cards=email,news,weather

The shell remembers your selection in SharedPreferences (telepath_cards_config) and replays it on the next launch — see Desktop Environment.

Why it's separate

Telepath has its own service because its needs are different from a normal /chat: concurrency (many sources at once), caching (don't re-summarize unchanged content), and background work (return the layout immediately, fill summaries in as they're ready). Keeping it in isolates that logic from the main composition path.