kiosk
Git-aware tmux session manager.

Search for the repo you want, and optionally select a branch: if a session already exists you jump straight in. If one doesn't, a new session is created, with a new worktree if needed.
Worktrees are created in .kiosk_worktrees/ in the parent directory of the given repository. For instance, if you set search_dirs = ["~/Development"], then worktrees are created at ~/Development/.kiosk_worktrees/.
Installing
crates.io
Ensure you have the Rust toolchain installed, then run:
Building from source
Ensure you have the Rust toolchain installed, then pull down the repo and run:
Usage with tmux
Add to your tmux.conf:
bind-key F popup -xC -yC -w90% -h90% -E "kiosk"
Then <prefix> F opens the switcher in a popup.
Configuration
You'll need a config file to get started. By default, kiosk looks for a TOML configuration file at:
- Linux or macOS:
~/.config/kiosk/config.toml - Windows:
%AppData%\kiosk\config.toml
Here's a basic example:
= ["~/Development", "~/Work"]
[]
= "hx"
Config options
The following options can be set in your configuration file:
search_dirs
Directories to scan for git repositories. Each directory can be scanned to a specified depth, with a default of 1 (i.e. just the top level).
Supports ~ for the home directory. For example:
= ["~/Development", { = "~/Work", = 2 }]
[session] section
Layout when creating a new tmux session.
split_command
Command to run in a split pane when creating a new session. For example, to open Helix in a vertical split:
[]
= "hx"
[theme] section
Color theme configuration.
accent
Primary accent color (default: "magenta").
secondary
Secondary accent color (default: "cyan").
success
Success/positive color (default: "green").
Keybindings
| Key | Action |
|---|---|
| Type | Filter repos/branches |
| Enter | Select repo / open session |
| Tab | Enter branch picker |
| Esc | Back / quit |