Roost: A Single-Go-Binary Sidebar for Claude Code with Clickable Prompt History, File Tree, and Notifications

A developer built Roost to address three gaps when using Claude Code over SSH via tmux: clickable prompt history, a file tree to reduce cat-ing files, and push notifications when Claude is waiting. It's a single Go binary serving a web interface on 127.0.0.1:8080 designed for SSH tunnelling.
Key Features
- xterm.js terminal backed by tmux: Survives WebSocket disconnects, sleep, and server restarts. Every session is
tmux new-session -A -s {id}. - File tree: Preview files, drag-drop upload, and automatically follows your current directory by reading tmux's
pane_current_path— no shell integration required. - Activity panel: Reads
~/.claude/projects/*.jsonland shows every prompt. Click a prompt → terminal scrolls back to that turn. - Top-bar chips: Display active model and latest context tokens.
- Push notifications: Uses Claude Code's
Stophook to ping your laptop when Claude becomes idle, even with the tab backgrounded.
Design Decisions
- tmux as durability layer: The shell survives disconnects and restarts because tmux handles session persistence. Roost only owns a WebSocket bridge and an append-only disk log.
- Single-user-per-instance: No accounts or RBAC. Two people sharing a host each run
roost serveon a different port. UNIX UIDs handle isolation; reverse-proxies handle multi-tenant auth. - Vanilla JS, no build step: Frontend is plain
<script>files embedded via//go:embed all:web. No bundler — easier to debug and ship.
Notable Bug Fix
tmux's display-message -p '#{x}\x1f#{y}' returns 0x1f as a literal underscore when launched without a UTF-8 locale (e.g., from systemd units). The one-line fix: tmux -u. If you pipe tmux through field separators, lock the locale.
Compatibility
Validated on Linux server + Windows Chrome over SSH tunnel. macOS-as-server works but has rough edges. Codex sessions work if you swap agents. Repo: github.com/liamsysmind/roost. v0.1.0 tarballs at github.com/liamsysmind/roost/releases/tag/v0.1.0.
📖 Read the full source: r/ClaudeAI
👀 See Also

Relay: A Tool for Handing Off Claude Code Sessions to Other AI Agents
Relay is a Rust binary that extracts Claude Code's session context—including conversation history, tool calls, errors, and git state—and transfers it to other AI agents like Codex or Gemini when rate limits are hit. It supports 8 agents and can be installed via GitHub or npm.

Tredict MCP Server Enables Claude to Create and Push Training Plans to Sports Watches
A developer built a Tredict MCP Server for Claude.ai and Claude Code that creates complex endurance training plans via prompts and automatically uploads structured workouts to Garmin, Coros, Suunto, and Wahoo watches. The server includes an MCP App for visual feedback within Claude chat.

SwarmClaw Dashboard Adds Orchestration Layer to OpenClaw
SwarmClaw is a self-hosted dashboard that wraps OpenClaw, providing deployment and management of multiple instances with gateway controls, config repair, remote history sync, and live execution approval. It supports OpenClaw plugins and SKILL.md files, plus connects to 14 other AI providers.

Claude Token Counter Updated with Model Comparison Feature
Simon Willison's Claude Token Counter tool now supports comparing token counts across different Claude models. The update reveals Opus 4.7 uses 1.0–1.35× more tokens than Opus 4.6 due to an updated tokenizer, potentially increasing costs by around 40% despite identical pricing.