Active Claude sessions ticker: cross-host session metadata surface #41
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-14T02:19:57Z - https://github.com/coilysiren/repo-recall/issues/127
Motivation
Kai is scoping a personal Pulse-style dashboard (inspired by
danielmiessler/Personal_AI_Infrastructure). One desired panel is a live ticker of Claude Code sessions running across Mac, Windows, and kai-server, with click-through to the transcript. The dashboard is phone-first over Tailscale.Rather than build session tracking inside the new dashboard, repo-recall should own the surface. The dashboard reads from repo-recall. This keeps session state in the tool that already knows about repo-scoped agent activity, and gives every future consumer (CLI, dashboard, future automations) one source of truth.
Proposed surface
A repo-recall subcommand or HTTP endpoint that returns active session metadata. JSON twin per
kai-tech-prefs(human-readable default,--jsonfor machine consumers, same fields both ways).Per-session fields, at minimum:
host- mac, windows, kai-server, etc.repo- repo name if the cwd resolves to onecwd- absolute path on the originating hoststarted_at- ISO 8601last_activity_at- ISO 8601, updated by heartbeattranscript_path- absolute path on the originating hostsession_id- stable id for click-throughShape sketch, not final:
repo-recall sessions list- human tablerepo-recall sessions list --json- array of the aboveGET /sessionson the repo-recall HTTP surface, same JSONCross-host data path
Open question. How does kai-server learn about a session running on the Mac?
Strawman: each Claude session writes a heartbeat file on its origin host at
~/.repo-recall/sessions/<host>/<session_id>.json, refreshed every N seconds while the session is active. Aggregation options:~/.repo-recall/sessions/<host>/locally, andrepo-recall sessions liston kai-server reads a Tailscale-mounted union of the three host dirs. Simple, no daemon, but needs a sync mechanism (rsync cron, or a mount).~/.repo-recall/sessions/over Tailscale SSH. Read-only, no writes from non-server hosts, but adds latency.Preference probably option 2 (push) for freshness and to avoid filesystem coupling, but worth pricing out all three.
The session-write side likely hooks into the Claude Code session lifecycle. A
SessionStarthook to register, a periodic heartbeat (timer orPostToolUsehook),StoporSessionEndto deregister.Stop condition
Stale heartbeat files get reaped. Default idle timeout in the 2 to 5 minute range, configurable. A session whose heartbeat is older than the timeout is filtered from the active list and either deleted or moved to a
sessions/archive/dir for later inspection.Out of scope
Iceboxed in the 2026-05-29 backlog burn-down: Cross-host ticker for speculative Pulse-style dashboard. Reopen anytime if it becomes real.