Skip to content

Managing Sessions

Each session in the dashboard has an action bar with four buttons.

Open

Opens the full terminal view in the current browser tab. This is the same xterm.js terminal as the original single-session mode — full color, cursor, scrollback, and mobile keyboard support. Use the browser's back button to return to the dashboard.

Rename

Tap "Rename" to edit the session's display name inline. Type a new name and press Enter (or tap elsewhere) to save. Press Escape to cancel.

By default, sessions are named after their agent command (claude, aider, bash). Renaming is useful when running multiple instances of the same agent on different projects.

Info

Tap "Info" to toggle the metadata panel showing:

FieldDescription
PIDProcess ID of the agent
AgentThe command that was run
PortThe session's WebSocket server port
DirectoryWorking directory
MemoryResident memory usage (from ps)
UptimeHow long the session has been running

Tap "Info" again to collapse the panel.

Stop

Tap "Stop" to terminate a session. A confirmation dialog appears: "Stop this session?" with Yes/No buttons. Confirming sends SIGTERM to the agent process.

The session is removed from the dashboard. Other sessions are unaffected.

Session Status

Each session card shows a status indicator:

StatusColorMeaning
activeGreenOutput received in the last 30 seconds
idleYellowNo output for 30+ seconds
attentionRed (pulsing)Agent sent a notification signal (bell)

Session Persistence

Sessions survive hub daemon restarts. When the hub shuts down (intentionally or due to a crash) and restarts, it restores all sessions whose processes are still alive.

How it works:

  • The hub persists the session registry to ~/.itwillsync/sessions.json after each change (debounced)
  • On startup, the hub reads this file and verifies each session's PID is still running
  • Dead sessions are automatically removed
  • Sessions older than 24 hours are pruned regardless of status

This means you won't lose your dashboard layout if the hub restarts — active sessions reappear automatically.

Session Logging

Terminal output from each session is logged to ~/.itwillsync/logs/{sessionId}.log. Logs are buffered in memory (4 KB) and flushed periodically for performance. When a session ends, the log is automatically compressed to .gz format. Logs older than 30 days (configurable via logRetentionDays in Configuration) are cleaned up.

Released under the MIT License.