Per-user dashboard on a shared dev machine: reachable over the tailnet, links to each worktree's services and Claude Code session #652

Closed
opened 2026-09-29 08:41:02 +00:00 by claude · 0 comments
Member

Situation

A shared dev machine (dev.fiftyforms.cz, ff-dev on a tailnet) where people work only from the Claude application: each effort worktree has a Claude Code Remote Control session, started by iw start through the kanon session hook. Several worktrees run at once, and each serves its increment (an app, later an offline harness) on its own port. Two users (mph, jozin) work on the machine, each with their own worktrees.

Today nothing lists what runs where. A session tells its URL in chat and nowhere else.

Wanted

Each user's iw dashboard is their starting page on the machine:

  1. Reachable over the tailnet. A configured bind address and port (e.g. the tailnet IP, a port per user), not only loopback plus opening a local browser. It runs as a service of that user, with no browser to open.
  2. Links to each worktree's running services. A worktree declares its services, e.g. in a port file the start hook writes (app -> base+0, harness -> base+1), or as a URL action in review-state. The dashboard shows a link for each service and whether its port answers.
  3. A link to each worktree's Claude Code session — the Remote Control session URL (claude.ai/code/...), so the dashboard is where you start from. Open question: how the dashboard learns that URL (the session prints it; the start hook or the session could write it into review-state).

Not in scope

  • Other users' worktrees and effort state. There is no authentication, so one dashboard cannot tell users apart; each user runs their own. Sharing the state of development is a later, shared dashboard with authentication.
  • Note: without authentication, a per-user dashboard is separated by port, not by access — anyone on the tailnet can open it.
  • Per-worktree port range and database, written at iw start by a setup hook and removed at iw rm by a cleanup hook: the declaration in point 2 reads what that hook writes.
  • procedures effort shared-base, slice 03-dev-driven-from-the-app.
## Situation A shared dev machine (dev.fiftyforms.cz, `ff-dev` on a tailnet) where people work only from the Claude application: each effort worktree has a Claude Code Remote Control session, started by `iw start` through the kanon session hook. Several worktrees run at once, and each serves its increment (an app, later an offline harness) on its own port. Two users (`mph`, `jozin`) work on the machine, each with their own worktrees. Today nothing lists what runs where. A session tells its URL in chat and nowhere else. ## Wanted Each user's iw dashboard is their starting page on the machine: 1. **Reachable over the tailnet.** A configured bind address and port (e.g. the tailnet IP, a port per user), not only loopback plus opening a local browser. It runs as a service of that user, with no browser to open. 2. **Links to each worktree's running services.** A worktree declares its services, e.g. in a port file the start hook writes (`app` -> base+0, `harness` -> base+1), or as a URL action in review-state. The dashboard shows a link for each service and whether its port answers. 3. **A link to each worktree's Claude Code session** — the Remote Control session URL (claude.ai/code/...), so the dashboard is where you start from. Open question: how the dashboard learns that URL (the session prints it; the start hook or the session could write it into review-state). ## Not in scope - Other users' worktrees and effort state. There is no authentication, so one dashboard cannot tell users apart; each user runs their own. Sharing the state of development is a later, shared dashboard **with authentication**. - Note: without authentication, a per-user dashboard is separated by port, not by access — anyone on the tailnet can open it. ## Related - Per-worktree port range and database, written at `iw start` by a setup hook and removed at `iw rm` by a cleanup hook: the declaration in point 2 reads what that hook writes. - procedures effort `shared-base`, slice `03-dev-driven-from-the-app`.
claude changed title from Dashboard on a shared dev machine: reachable over the tailnet, links to each worktree's running services, all users' worktrees to Per-user dashboard on a shared dev machine: reachable over the tailnet, links to each worktree's services and Claude Code session 2026-09-29 12:33:48 +00:00
mph closed this issue 2026-10-02 09:18:52 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
iterative-works/iw-cli#652
No description provided.