feat: remote instance monitoring panel #187

Open
opened 2026-03-06 09:33:46 -08:00 by hikari · 0 comments
Owner

Overview

Inspired by ralph-tui's remote instance management feature, this adds a Remote Instance Panel that allows monitoring and controlling Hikari Desktop sessions running on other machines from a unified interface.

User Story

As a developer who runs Claude Code sessions on multiple machines (e.g. a powerful server for heavy tasks and a local laptop for quick edits), I want a single Hikari window that shows me the status of all my running instances, so I can monitor progress without switching machines.

Feature Details

Architecture

  • Each Hikari instance exposes a lightweight local server (WebSocket or HTTP)
  • Remote instances are registered by host/port + authentication token
  • The monitoring panel polls or subscribes to events from each registered instance

Remote Panel UI

  • Instance List: Sidebar listing all registered remote instances
    • Status indicator (connected / disconnected / error)
    • Latency display (ms ping)
    • Current conversation count and active task status
    • Last activity timestamp
  • Instance Detail View: Clicking an instance shows:
    • Live terminal output (read-only stream)
    • Current conversation list
    • Token/cost stats
    • Task loop progress (if running)
  • Add/Remove Instance: Form to register a new remote by host:port + token

Authentication

  • Token-based: each Hikari instance generates a local server token on first run
  • Tokens stored in ~/.config/Hikari/remote-tokens.json
  • Connection tokens separate from server tokens (shorter-lived) for session handshakes
  • Automatic reconnection with exponential backoff on disconnect

Configuration Push

  • Optionally push configuration (model, budget limits) to remote instances
  • Remote instances can accept or reject pushed config based on their own settings

Keyboard Navigation

  • Tab key cycles between local and remote instance views
  • Escape returns to local view

Implementation Notes

  • The local server should be opt-in and off by default (security consideration)
  • Server binds to 127.0.0.1 only by default; user must explicitly enable external access
  • All communication should be over authenticated WebSocket

Acceptance Criteria

  • Hikari can optionally expose a local monitoring server (opt-in, localhost only by default)
  • Remote instances can be registered by host:port + auth token
  • Panel displays live status of all registered instances
  • Live terminal output from remote instances is readable (read-only)
  • Latency/connection status displayed per instance
  • Graceful handling of disconnection with auto-reconnect
  • Server is off by default with a clear enable toggle in settings
  • Tests written for server logic, connection handling, and token management

This issue was created with help from Hikari~ 🌸

## Overview Inspired by [ralph-tui](https://github.com/subsy/ralph-tui)'s remote instance management feature, this adds a **Remote Instance Panel** that allows monitoring and controlling Hikari Desktop sessions running on other machines from a unified interface. ## User Story As a developer who runs Claude Code sessions on multiple machines (e.g. a powerful server for heavy tasks and a local laptop for quick edits), I want a single Hikari window that shows me the status of all my running instances, so I can monitor progress without switching machines. ## Feature Details ### Architecture - Each Hikari instance exposes a lightweight local server (WebSocket or HTTP) - Remote instances are registered by host/port + authentication token - The monitoring panel polls or subscribes to events from each registered instance ### Remote Panel UI - **Instance List**: Sidebar listing all registered remote instances - Status indicator (connected / disconnected / error) - Latency display (ms ping) - Current conversation count and active task status - Last activity timestamp - **Instance Detail View**: Clicking an instance shows: - Live terminal output (read-only stream) - Current conversation list - Token/cost stats - Task loop progress (if running) - **Add/Remove Instance**: Form to register a new remote by host:port + token ### Authentication - Token-based: each Hikari instance generates a local server token on first run - Tokens stored in `~/.config/Hikari/remote-tokens.json` - Connection tokens separate from server tokens (shorter-lived) for session handshakes - Automatic reconnection with exponential backoff on disconnect ### Configuration Push - Optionally push configuration (model, budget limits) to remote instances - Remote instances can accept or reject pushed config based on their own settings ### Keyboard Navigation - Tab key cycles between local and remote instance views - Escape returns to local view ## Implementation Notes - The local server should be opt-in and off by default (security consideration) - Server binds to `127.0.0.1` only by default; user must explicitly enable external access - All communication should be over authenticated WebSocket ## Acceptance Criteria - [ ] Hikari can optionally expose a local monitoring server (opt-in, localhost only by default) - [ ] Remote instances can be registered by host:port + auth token - [ ] Panel displays live status of all registered instances - [ ] Live terminal output from remote instances is readable (read-only) - [ ] Latency/connection status displayed per instance - [ ] Graceful handling of disconnection with auto-reconnect - [ ] Server is off by default with a clear enable toggle in settings - [ ] Tests written for server logic, connection handling, and token management ✨ This issue was created with help from Hikari~ 🌸
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nhcarrigan/hikari-desktop#187