Ph.66 · Always-On Live Control Plane
Foreground 0600 RPC socket in both TUI and GUI, child PTY env injection (BILTERM_SOCKET, BILTERM_PANE_ID), multi-instance registry with --instance <pid|all>, OIA [RPC:LIVE] and :rpc.
IBM 3270 × Borland Turbo Vision × Autonomous AI Swarms
A retro-futuristic terminal multiplexer, native desktop GUI terminal, and AI agent coordination workspace in Rust. Zero SIGWINCH thrash, 2D rectangular block copy, and resilient remote SSH/tmux sessions.
curl -fsSL https://raw.githubusercontent.com/bsommers/bilterm/main/scripts/install.sh | bash
Linux & macOS supported (Windows via source/cargo). Installs pre-built binary to ~/.local/bin with manpage, bash/zsh/fish completions, and desktop icon.
git clone https://github.com/bsommers/bilterm.git && cd bilterm
cargo build --release && install -m 0755 target/release/bilterm ~/.local/bin/bilterm
71 development phases • Beyond Herdr live control plane • every feature reachable from keyboard, colon command, JSON-RPC, CLI, and MCP.
Foreground 0600 RPC socket in both TUI and GUI, child PTY env injection (BILTERM_SOCKET, BILTERM_PANE_ID), multi-instance registry with --instance <pid|all>, OIA [RPC:LIVE] and :rpc.
bilterm agent|pane|workspace CLIHerdr-style w<N>:p<M> and semantic selectors (@claude, @idle, @blocked), smart prompt injection, and zero-polling server-side agent wait.
agent.last_turn structured deltas, permission-gate approve/deny, per-pane FIFO prompt queue, and a cross-agent bilterm context bus.
:swarm run plan.toml spawns atomic git-worktree agents in dependency waves with diff/merge and a self-healing verify_cmd retry loop.
:agents hud live mini viewports and sparklines, per-turn replay scrubber, and a stall/loop watchdog.
Five-level Daemon/Workspace/Session/Window/Pane addressing with a universal parser, title-bar coordinate badge, :coords, coords.resolve RPC and MCP bilterm_coords_resolve.
65 development phases • 175+ test suites • 110+ Action variants • every feature reachable from keyboard, colon command, JSON-RPC, and MCP.
Hover or highlight any window in the drawer for a live 8-line ANSI preview (:drawer preview / :peek). Inline prompt bar and full actions without leaving the drawer.
:clip opens a filterable, MIME-aware overlay previewing text, JSON, diff, image, and file clipboards. :paste and bracketed-paste probing, plus inbound/outbound OSC 52.
:voice toggle|ptt|lang|model dictates into the prompt via a local Whisper-compatible HTTP STT endpoint. Live waveform OIA badge, plus pre-flight recorder & endpoint diagnostics.
:browser [url] with an editable URL bar (click or Ctrl+L, auto-https://) and Back / Forward / Reload nav bar. Dual-surface rendering: crisp RGBA in the GUI, TrueColor ▀ half-block cells in the TUI (with +1 row top-prompt offset).
:video <path|url>|pause|seek|stop streams through a real non-blocking ffmpeg rawvideo RGBA pipe reader (synthetic fallback when absent) with interactive OSD controls, rendered in GUI and as TUI half-blocks.
:web start|stop|status launches an axum HTTP + WebSocket /ws server speaking @agent-manager/protocol v1. Zero-build browser viewport decoupled from TUI/GUI state.
Each drawer entry is two lines: line 1 carries ID, title, badges, and action buttons; line 2 shows the live last output line of that window.
Shift/Alt+Drag bypasses a nested app's mouse capture, with an [OVERRIDE -> CLIPBOARD] toast. Vi copy mode gains w b e, 0 ^ $, f F t T, and ; , motions.
Primary modifier is Cmd on macOS and Ctrl+Shift on Linux/Windows (:keymap profile auto|mac|linux|windows). Sticky Window Mode (Leader w) takes single-key s v q z f d c h j k l m chords with a live [WIN MODE] HUD, a Which-Key chord popup, and a 9-category keyboard-navigable Menu Bar (Leader m, Alt+S/W/P/V/A/D/N/T/H).
:traffic opens a live, filterable ring buffer with a detail payload inspector across 33 byte-boundary hooks: PTY, SSH, Tmux, RPC, MCP, Web, CDP, STT, and Session.
Floating DAEMON SUPERVISOR modal (Leader B / :daemon ui) with compile-time SignalablePid guardrails that block PID ≤ 1. PTY-less :ssh-tmux control-mode panes with auto-reconnect, and an OIA [TUI]/[GUI] surface badge.
A slide-out/push-out left sidebar (:drawer style navigator) displaying workspace hierarchy, sessions, and live agent status dots ( Working, Idle, Blocked, Done, Errored).
Direct inter-agent communication across terminal panes: :agent send <name> <msg>, per-agent bounded mailboxes (64 max), and 3 delivery modes: mailbox, nudge (when shell is idle), and file (for large payloads).
Instant global search across agents, active and saved sessions, and command history: :find agent|session|history <query> or Ctrl+Alt+F. Automatic zero-trust secret masking protects tokens and credentials.
Switch between 8 built-in visual profiles via :appearance: Obsidian (modern dark slate, fresh default), Legacy (Borland Blue), Midnight, Arctic, Liquid, Amber, Synthwave, and Solarized. Plus :mode standard|minimal|zen.
Remote sessions via :ssh-tmux <host> [session] maintain state across connection drops. Automatic reconnection with exponential backoff, capture-pane hydration upon reconnect, and exit hold banners.
Pinnable and dockable workbench windows: :fonts live typography preview, :commands execution history workbench, and :script / :studio Script Studio with multi-line editor, live recorder, and step debugger.
Visualize and pack multi-session container hierarchies with :sessions map in Braille/UTF-8 box-drawing or native GUI vector rendering. Move panes across sessions with mouse drag-and-drop or :window move.
Singleton daemon supervisor with automatic startup and stale-lock recovery. Manage named daemons via :daemon list|status|start|stop|prune. Drive headless sessions over HTTP+SSE (--http) and strict RFC 8259 JSON-RPC 2.0.
Multi-Agent Swarm with Navigator Sidebar, agent state dots, and Agent Traffic Bus packet stream.
The floating command prompt, scrolling PTY output canvas, and 3270 OIA status bar form a single atomic pane. Command prompt can float, pin to top/bottom, or split, with zero SIGWINCH geometry thrashing.
Hold Alt+LeftDrag or toggle :rect mode to select, highlight, and copy rectangular columns and boxes directly out of terminal output, table columns, or logs. Pastes cleanly to system and OSC 52 clipboards.
Detach with Ctrl+X D or :detach. Bilterm serializes the complete workspace: split tree geometry, z-stack order, prompt anchors, active shells, running commands, and per-pane working directories (CWD).
Run standalone without a host terminal using hardware-accelerated desktop rendering on Linux (X11), macOS (Cocoa), and Windows (Win32 GDI). Scale each pane's font independently from 50% to 300% (Ctrl+Wheel).
Experience classic IBM 3270 mainframe paging: MORE... / HOLDING page pauses prevent run-away flood from blowing away your output buffer. QuickSelect hints (F3) jump to URLs, paths, and hashes.
All IPC sockets, session TOMLs, command history exports, and .cast recordings reside in 0700 directories with 0600 atomic file permissions. Unix domain sockets enforce SO_PEERCRED UID checking.
| Action / Function | Keyboard Shortcut | Colon Command (:) |
Notes |
|---|---|---|---|
| Help / Palette / Inspector | F1 / Ctrl+P / F9 | :help / :palette / :inspector |
Command catalog, search & 3270 inspection |
| Navigator Drawer | F7 (<L> d) / Click OIA | :drawer [toggle|navigator|classic] |
Workspaces, sessions, agent state dots |
| Global Fuzzy Finder | Ctrl+Alt+F | :find [agent|session|history] <q> |
Unified registry search with secret masking |
| Agent Messaging & Swarm | Alt+] (jump to blocked) | :agent [name|send|inbox|list|snoop] |
Direct messaging, mailboxes, packet telemetry |
| Split Horizontal / Vertical / Zoom | F2 / Alt+V / F5 | :split h / :split v / :zoom |
Binary space partitioning tiling |
| Tiled Splits vs. Z-Stack Deck | Alt+M / F6 / Alt+1..9 | :layout tile|stack / :deck next|prev |
Borland overlapping window cascade |
| Appearance & Display Modes | F11 / F4 | :appearance [obsidian|legacy|...] / :mode [standard|zen] |
8 modern design profiles & Zen mode |
| Remote SSH + tmux Sessions | — | :ssh-tmux <host> [session] |
Auto-reconnecting resilient remote sessions |
| Utility Windows (Fonts / Studio) | * (pin) / [ / ] (scale) | :fonts / :commands / :studio |
Workbench windows, live recorder & debugger |
| 2D Rectangular Select & Copy | Alt+R / Alt+LeftDrag | :rect [mode|copy|cut|clear] |
Block highlight & yank across canvas |
| Detach Session / Re-Attach | Ctrl+X D / Exit Guard [d] | :detach [name] / :attach [name] |
Leaves shells running in background daemon |
| Session Map & Window Move | m (in Map) | :sessions map / :window move <sess> |
Packing treemap & live window migration |
| Clipboard Viewer / Paste | Ctrl+Alt+V | :clip / :paste |
MIME-aware preview, OSC 52 |
| Voice-to-Text | Ctrl+Alt+S | :voice toggle|ptt|lang|model |
Local Whisper STT, OIA waveform badge |
| Embedded Browser | Ctrl+Alt+B / Ctrl+L (URL) | :browser [url] |
Chrome CDP, GUI RGBA & TUI half-blocks |
| Video Canvas | Ctrl+Alt+Y | :video <path|url>|pause|seek|stop |
60fps ffmpeg pipe with OSD |
| Web Frontend | Ctrl+Alt+W | :web start|stop|status |
axum HTTP + WebSocket /ws |
| Drawer Peek & Rows | P / v in drawer | :peek / :drawer rows |
Live preview, 2-line items |
| Sticky Window Mode / Menu Bar | Leader w / Leader m | :keymap profile auto|mac|linux|windows |
[WIN MODE] HUD, which-key, 9-category menus |
| Traffic Monitor | — | :traffic |
33-hook filterable ring buffer |
| Daemon Supervisor | Leader B | :daemon ui |
Guarded PID signalling |
Leader Prefix (<L>) defaults to Ctrl+X (or Ctrl+B outside tmux). Every keyboard action has a colon equivalent for 100% surface parity.
Bilterm is built from the ground up for autonomous AI coding agents, robot test harnesses, and external script orchestration:
Run bilterm --mcp for 20+ first-class MCP tools and dynamic resources:
bilterm_voice • bilterm_browser • bilterm_video • bilterm_traffic • bilterm_clipboard • bilterm_agent_mail • bilterm_find • bilterm_run_action • bilterm_session_manager • bilterm://state • bilterm://config • bilterm://agent/{name}/inbox
Drive headless workspaces via bilterm ctl or HTTP transport (--http 127.0.0.1:9090):
voice.* • browser.* • video.* • web.* • traffic.* • keys.* • agent.send • agent.wait • find.agents • window.move • daemon.list • wm.command • pane.send_keys • workspace.status
$ bilterm ctl agent.send '{"to":"auditor","body":"Review PR #42","mode":"mailbox"}'
{"jsonrpc":"2.0","result":{"delivered":true,"msg_id":"msg-104"},"id":1}
Complete documentation from getting started to advanced multi-agent swarm orchestration, SSH fleets, and security best practices.
Exhaustive wire contract for JSON-RPC 2.0 methods, HTTP SSE streaming endpoints, MCP tools, and error codes.
Full-resolution vector SVG screenshots showing CRT shaders, phosphor green/amber, multi-pane splits, and typography.
5 ready-to-run configurations: Multi-Agent Swarm, Remote Fleet, Robot QA, Incident War Room, and Retro CRT.