Multi-session coding-agent orchestrator
TUI Agentic IDE
Run Claude Code, Codex, Antigravity, opencode, aider, GitHub Copilot CLI, Vibe, pi, Oh My Pi — or any CLI you define — side by side in persistent tmux panes that survive crashes and restarts.
Built-in agent support for Claude Code Codex Antigravity opencode aider Copilot Vibe pi Oh My Pi plus any CLI agent
Linux & macOS. Auto-detects your platform, verifies checksums, and installs the
latest release to
~/.local/bin
.
curl -fsSL https://raw.githubusercontent.com/bvc3at/friring/main/scripts/install.sh | sh
Native Windows (PowerShell 5.1+). Verifies checksums and installs the latest release to
%LOCALAPPDATA%\Programs\friring
(added to your user
PATH
).
irm https://raw.githubusercontent.com/bvc3at/friring/main/scripts/install.ps1 | iex
macOS (Apple Silicon) & Linux x86_64. This repo doubles as its own tap, so the
tap URL is spelled out —
brew tap
only infers one from a repo named
homebrew-friring
. Installs the prebuilt
friring
+
friring-cli
binaries and pulls in
tmux
and
git
automatically.
brew tap bvc3at/friring https://github.com/bvc3at/friring
brew install bvc3at/friring/friring
Any platform with a Rust toolchain. Builds and installs
friring
+
friring-cli
into
~/.cargo/bin
— this is the route for platforms with no prebuilt binary, namely Intel macOS
and aarch64 Linux.
cargo install --git https://github.com/bvc3at/friring --locked
Any platform with Rust 1.75+. Builds both the
friring
TUI and the
friring-cli
headless binary into
target/release/
.
git clone https://github.com/bvc3at/friring.git
cd friring
cargo build --releaseFeatures
Everything you need to run coding agents at scale
Cards marked Friring are where this fork differs from Thurbox — either it has no equivalent, or this fork changed it.
Persistent Sessions
Run multiple coding-agent CLIs side-by-side, each in its own tmux pane. Sessions persist across crashes, restarts, and multiple concurrent Friring instances.
Lazy Sessions & Ghosts Friring
An idle agent CLI costs hundreds of MB. A session that is not running holds its
place as a greyed
ghost
— its last frame, no process — and
Alt+U
freezes a live one back to that. Each row is priced with its whole process tree,
so the saving is on screen rather than argued.
Agent Activity View Friring
F9
reconstructs what a session's agent actually did — every command, edit, read,
search and delegated subagent — from what the CLI already writes to disk.
An Overview dashboard, a turn-grouped Timeline, and twelve supported agent CLIs.
Leader Key Friring
Ctrl+F
arms a tmux-style prefix and paints a which-key overlay naming everything reachable;
the next key runs it. Jump to a session by number where
Alt+<digit>
is claimed by your terminal — or hand every bare
Ctrl+<letter>
back to the agent CLI.
Git Worktrees & Sync
Spawn sessions in isolated git worktrees for branch-level isolation. One-key sync (
Ctrl+S
) rebases all worktrees from origin/main, with automatic conflict resolution and
worktree cleanup on session close.
Any Coding Agent
A session runs one agent of your choice — Claude Code, Codex, Antigravity, opencode, aider, GitHub Copilot CLI, Vibe, pi, Oh My Pi, or any CLI you describe. Each agent runs with its own default config. Mix different agents across the sidebar.
Agent Definitions
Agents are declared as data in
~/.config/friring/agents.toml
, seeded with built-ins on first run. Add or tweak an agent — command and
argument templates — with no recompile.
Automations Friring
Named, scheduled agent runs — one-shot or recurring (cron, with
daily
/
weekly
presets). On schedule they
send
a prompt to a session or
spawn
a fresh one. Manage them from the always-on
Ctrl+P
pane (or the
friring-cli
headless binary); they fire even when the TUI is closed.
Tasks
A built-in todo list whose items
connect to a coding agent
—
send
the title to a session or
spawn
a fresh one. Toggle the panel with
Ctrl+W
; edit in place, cycle status, and trigger the action with
r
.
Code Review Friring
A native, GitHub-style diff reviewer (
Ctrl+X
) — no external tool. Browse the branch, a commit, or working changes in a
folder tree
, leave classified comments, fold reviewed files, then
send the review back to the agent
to address. Stays open per session, like the shell view.
Extensions
Opt-in,
agent-agnostic
add-ons that compose Friring through
friring-cli
— never the binary. Install each from a declarative manifest in one command (
friring-cli extension install <name>
), and Friring keeps its session and automation
self-healed
. Ships flow, forge, ci-shepherd, renovate, and task integrations
for GitHub / GitLab / Linear / Jira (all experimental).
Global Search Friring
One key (
Ctrl+/
) — or a double-tap of
Shift
— opens a centered popup that searches
every scope at once
— sessions (incl. live terminal content), tasks, automations, and files
— with matches highlighted live in the panels themselves.
Persistent tmux Sessions
Every session runs in a dedicated
tmux -L friring
pane behind a single
SessionBackend
trait, so sessions survive crashes, restarts, and detaches.
Headless CLI
The
friring-cli
binary scripts everything from the terminal: create and drive sessions and schedule
commands, all sharing the TUI's SQLite database.
How It Works
Three steps from launch to coding
Launch
Start Friring. The session sidebar and terminal panel appear.
friringCreate a Session
Press
Ctrl+N
to pick repos, name the session, then choose an agent.
Ctrl+N New session # Pick repo: ~/projects/my-app # Name: my-app Agent: claude
Start Coding
Spin up sessions (optionally on a fresh git worktree) and start working with the agent. Navigate, sync, and fork with Vim-inspired keys.
Ctrl+N New session (select mode) Ctrl+L Cycle focus to terminal Ctrl+J Switch between sessions Ctrl+S Sync worktrees with origin/main Ctrl+P Automations (scheduled agent runs) Ctrl+R Restart active session Ctrl+F Fork active session Ctrl+O Open repos in editor
Feature walkthrough
See the TUI in action — recorded from the real app
Alt+U
Lazy sessions & ghosts Friring
Four real Claude Code sessions, frozen one at a time. Each row carries what its
agent process tree costs, the
Σ
under the list carries the fleet total, and a frozen session reads
—
— a measured absence, not a blank. By the end nothing is running and the
total is gone; the last one loads back through
--resume
with its conversation intact.
F9
Agent activity view Friring
What did this agent actually do? Every command it ran, file it edited or read, search it made and subagent it delegated to — reconstructed from what the CLI already writes to disk, so it works on a conversation that started before you opened the view. An Overview dashboard and a Timeline grouped by turn.
Learn more →Ctrl+F
Leader key Friring
A tmux-style prefix. Arming it paints a which-key overlay grouping everything reachable, and the next key runs it — so the Ctrl namespace stops being a fixed budget, and chords the agent CLI wants back can be handed over wholesale.
Learn more →Ctrl+X
Code review Friring
A native, GitHub-style diff reviewer — no external tool. Browse the branch, a commit, or working changes in a folder tree, leave classified comments, fold reviewed files, then send the review back to the agent to address.
Learn more →Ctrl+P
Automations Friring
Named, scheduled agent runs — one-shot or recurring cron. Each fires on its own schedule to send a prompt to a session or spawn a fresh one, even when the TUI is closed.
Learn more →Ctrl+W
Tasks
A built-in todo list whose items connect to a coding agent: send the title to a running session or spawn a new one, edit in place, and cycle status as work moves.
Learn more →Ctrl+/
Global search Friring
One centered popup searches every scope at once — sessions (including live terminal content), tasks, automations, and files — with matches highlighted live in the panels around it. It overlays rather than docks, so opening a search never resizes a running agent's terminal.
Learn more →Ctrl+N
Session creation
Spin up a session in a few keystrokes: pick one or more repos, name it, and choose an agent — optionally on a fresh git worktree for branch isolation.
Learn more →Ctrl+E
File viewer
Browse the worktree's file tree right beside the agent, with fuzzy search to jump straight to any file.
Learn more →Ctrl+B
Info panel
Keep an eye on each session: live details plus CPU/RAM and agent activity metrics, in a panel beside the terminal.
Learn more →Ctrl+Y
Themes
Thirty-six built-in palettes — twenty-eight dark, eight light — switch live with a keystroke and persist across restarts. Bring your own in themes.toml.
Learn more →Prerequisites
What you need before running Friring — plus extra install options
Custom Directory
INSTALL_DIR=/usr/local/bin curl ...
Specific Version
VERSION=v0.20.0 curl ...
Full Guide
Prerequisites
- tmux >= 3.2 — session backend
- A coding-agent CLI — e.g. claude , codex, antigravity, opencode, aider, copilot, vibe, pi, or omp
- git — required for worktree features
- Rust 1.75+ — only for building from source (optional)