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 .

bash
curl -fsSL https://raw.githubusercontent.com/bvc3at/friring/main/scripts/install.sh | sh
MIT License Built with Rust
friring

Features

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

1

Launch

Start Friring. The session sidebar and terminal panel appear.

bash
friring
2

Create a Session

Press Ctrl+N to pick repos, name the session, then choose an agent.

friring
Ctrl+N  New session
# Pick repo: ~/projects/my-app
# Name: my-app   Agent: claude
3

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.

friring
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.

Learn more →
Ghost fleet

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 →
Activity view

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 →
Leader key

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 →
Code review

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 →
Automations

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 →
Tasks

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 →
Global search

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 →
Session creation

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 →
File viewer

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 →
Info panel

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 →
Themes

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

docs/installation

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)