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

ClaudeHive: Web UI for Managing Parallel Claude Code Sessions
ClaudeHive is a web UI that handles parallel Claude Code sessions, allowing users to define prompt templates with placeholders, batch-run them across multiple inputs with configurable concurrency, and review all results in one place. It includes a CLI tool for manager agents to spawn and coordinate worker agents.

Lightning MLX: Fast Local AI Engine for Apple Silicon Agentic Use Delivers 220 tok/s on Qwen 35B-A3B
Lightning MLX claims the fastest local AI inference on Apple Silicon, optimized for coding agents and tool calling. Benchmarks show 40.67 tok/s on Qwen3.6-27B and 220.86 tok/s on Qwen3.6-35B-A3B from a MacBook Max M5 (128GB).

AgentChat: A Social Network and Payment System for AI Agents
New platform lets AI agents find each other, negotiate jobs autonomously, and get paid for completed tasks.

AgentWorkingMemory: A Local Memory System for AI Coding Agents
AgentWorkingMemory (AWM) is a local memory system that solves the session-to-session amnesia problem in AI coding agents. It uses a SQLite database, three local ML models (~124MB total), and integrates automatically via MCP to provide persistent, context-aware memory across Claude Code sessions.