Skip to content

Mobile companion UI (chat-first) as a second layout in the dashboard app #8

Description

@noisy

Goal

A phone-friendly minimal UI for talking to the agent away from the desk (e.g. on a treadmill), exposed via ngrok http 8770.

Decisions (2026-07-17)

  • Direction: chat-first (proposal B in issues-drafts/mobile-ui/) — message-stream of user/Claude bubbles, live transcription growing inside the user bubble, thin activity status bar, always-visible mute, PTT button only when detection_mode == "ptt".
  • Architecture: one Vue app, two layouts — mobile as a separate route/entry in dashboard/, sharing components and hud.css tokens with the desktop HUD. NOT a media-query-responsive single page, NOT a separate hand-written HTML (today's mobile.py inline string drifts from the desktop).
  • v1 scope: Claude activity, live transcript, chat history, mute (+ conditional PTT). No costs widget, no character panel.

Technical notes

  • mobile_server.py (port 8770) currently proxies only /status and /api/active-agent — needs /utterances and the mute toggle proxied too; serve the built mobile page instead of the MOBILE_HTML string.
  • Browser mic on the phone requires HTTPS — ngrok provides it; verify the tab-audio WS (:8766) path works through the tunnel or is out of scope for v1 (view/control only).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions