Panes arrange themselves
Each new pane splits the focused one along its longer side, so the screen stays balanced without dragging borders. Switch between seven layouts, float a pane, or fill the screen with one key.
Layouts and panes →Tiling terminal multiplexer
Your terminals, tiled like a window manager.
rozi arranges panes as you open them, keeps named sessions running after you leave, reaches other machines over SSH, and shows which coding agents need you. Change any of it live, from inside rozi. On Linux, macOS, and Windows.
For Linux and macOS. Installs the current release and links ~/.local/bin/rozi.
All of it works out of the box
Each new pane splits the focused one along its longer side, so the screen stays balanced without dragging borders. Switch between seven layouts, float a pane, or fill the screen with one key.
Layouts and panes →Detach and your shells, editors, and servers carry on. Come back later, from another window, to the same panes and scrollback. After a reboot, rozi restores the layout, the commands, and their history.
Sessions →rozi --remote devbox opens a session on another machine, installs rozi there if you allow it, and reconnects after a dropped link. Remote sessions are listed next to local ones.
Remote sessions →rozi reads what coding-agent CLIs draw and marks each pane working, blocked, or finished, on its border, its workspace tab, and in the sidebar. 23 agents are built in, and you can add your own.
Agent detection →Themes, frames, layouts, and keys change from inside rozi, previewed as you browse. Your choice is saved to config.toml, and an edit to the file applies the moment you save it.
Customize rozi →True color, inline images, mouse support, scrollback search, and a vi-style copy mode. With shell integration, new panes open in the directory you are working in.
Terminal features →Previewed live · saved to config.toml · no restart
Open Settings and move through a list: the theme, the pane frames, or the layout change behind the picker as you go. Enter keeps a value and writes it to config.toml; Esc puts the old one back.
Every tab here is the same workspace. Only the lines under the picture differ, and the programs in the panes pick up the theme too.
Customize rozi →31 themes →[theme]
name = "rozi"[theme]
name = "rozi"Ctrl+A then ? lists every key in effect. Pick a command, press the new chord, and rozi shows it before saving, including any command that already uses it. The binding works the moment you confirm.
The prefix and the held modifier are rows in the same list, so moving from Alt to Super takes one change.
Edit keybindings →Every command works two ways: press the prefix, then a key, or hold Alt and press the key. Rebind either, or hold Super instead.
| Prefix, then a key | Hold Alt | |
|---|---|---|
| Ctrl+AEnter | Alt+Enter | Open another pane |
| Ctrl+Ah j k l | Alt+H…L | Move focus by direction |
| Ctrl+Af | Alt+F | Fullscreen the focused pane |
| Ctrl+At | Alt+T | Float the pane on top |
| Ctrl+A1…9 | Alt+1…9 | Jump to a workspace |
| Ctrl+Ap | Alt+P | Search every command |
| Ctrl+A? | Alt+? | Show and edit every key |
| Ctrl+Ad | Alt+D | Leave; named sessions keep running |
Everything Settings changes lives in one file, ~/.config/rozi/config.toml on Linux and macOS. rozi applies it when you save, without closing a pane, and a mistake never takes it down: a bad value falls back to its default with a warning.
[theme]
name = "catppuccin-mocha"
[input]
prefix = "ctrl-a" # the key that starts a command
modifier = "alt" # or "super"
[layout]
default = "dwindle" # how new workspaces arrange panes
[pane]
border_style = "rounded"One file · live reload · 123 rebindable commands
[theme]
name = "catppuccin-mocha" # a preset, "system", or your own file
[pane]
border_mode = "merged" # neighbours share one seam
border_style = "rounded" # plain, double, thick
titlebar = "integrated"
workbar_powerline = true
padding = [0, 1]
[animations]
pane_style = "slide" # or "scale"
geometry_ms = 220Configure presets, custom theme files, borders, titlebars, and animation timing.Reference →
Any language · public protocol · api = 1
rozi extensions newscaffoldrozi extensions checkvalidaterozi run-action reload-extensionsinstallrozi extensions listconfirm[extension]
id = "git-tools"
title = "Git tools"
version = "0.1.0"
api = 1
[[commands]]
id = "branches" # invoked as git-tools.branches
label = "Switch branch"
exec = ["python", "{extension_dir}/bin/branches.py"]
[[services]]
name = "watch"
exec = ["./bin/watch", "--json"]
restart = "on-failure"rozi pickrozi publishrozi subscriberozi notifyrozi run-actionFor agents, scripts, demos, and bug reports
rozi capture-ui returns the screen as rozi drew it: every pane, border, and overlay, and the images programs displayed. rozi capture-pane does the same for one pane, and works on a detached session too. Ask for plain text, ANSI, or a PNG, so a coding agent can look at what it is working in.
rozi record keeps a pane's screen over time, change by change. The session records it, so it carries on after you detach: review in the morning what an agent did overnight. Record the whole window instead for a demo, then replay it in a terminal or export a GIF, a video, or an asciinema cast.
# one pane, as text with its colors
rozi capture-pane --target 3 --render ansi
# record this pane, label a moment, stop
rozi record start --output ~/demo.rozirec
rozi record mark "tests started"
rozi record stop
# watch it back, or turn it into frames
rozi record play ~/demo.rozirec --speed 2
rozi record export ~/demo.rozirec --to png-frames framesEverything in v0.0.27
Seven layoutsshape-aware splitsfloatingfullscreenmove, swap, and promoteresize modenine workspacesmerged bordersgaps and paddingscratchpadanimations
True colorinline imagesmouse reportingscrollback searchvi copy modeclipboard and OSC 52hintsedit scrollbackshell integrationpane loggingsynchronized typing
Named sessionstemporary sessionsseveral windows per sessionshared sessionsremote over SSHrestore after rebootautosaveprofilessession picker
31 themessystem themelive reloadhost terminal colorsworkbar segmentspowerline capstitlebar stylessidebar tabsSettings with live previewkeybinding editorattention alertsnotifications and sounds
Control socketpickpublishsubscribenotifyrun-actioncapture-panecapture-uiPNG and ANSI screenshotspane and UI recordingGIF, video, and cast export18 hook eventsservicesuser commandsextensionsagent skillVim and Neovim navigation
Linux, macOS, and Windowsnative executables with no separate runtimesigned releasesmanaged updatesrollbackpublished benchmarksprivate control socketsMPL-2.0
34 pages, all in the repository