Features And Keybindings Reference

April 24, 2026 · View on GitHub

This page lists the user-visible features currently implemented in the sidebar.

Session List

Each session row can show:

  • Session index for number-key switching
  • Session name
  • Branch name, truncated when needed
  • Running spinner or terminal-state marker
  • Focused state highlight
  • Current client session emphasis
  • Unseen accent for done, error, or interrupted states

Detail Panel

The focused session detail panel can show:

  • Truncated working directory
  • Detected localhost ports
  • Agent instances in that session
  • Thread names when watchers provide them

Clicking a detected port opens http://localhost:<port>.

Agent Features

  • Multiple agent instances per session when a watcher emits threadId
  • Per-instance unseen tracking
  • Amp thread seen-state integration via Amp's session.json
  • Status values: idle, running, done, error, waiting, interrupted
  • Automatic pruning of stale running and seen terminal states

Session Metadata Features

  • Git branch lookup from the session directory
  • Dirty-worktree detection
  • Git worktree detection
  • Pane count and window count per session
  • Session uptime display
  • Session ordering persisted across restarts

tmux-specific

  • Global hooks for session changes, window selection, window creation, resize, and refresh
  • Sidebar stash session named _os_stash so hidden sidebars can be restored
  • Session creation popup using the bundled sessionizer.sh script

Keyboard Shortcuts

Inside the sidebar

KeyAction
j, DownMove focus down
k, UpMove focus up
EnterSwitch to focused session
TabCycle to next session
Shift+TabCycle to previous session
1-9Switch to session by visible index
Alt+UpMove focused session up in persisted order
Alt+DownMove focused session down in persisted order
n, cCreate a new session
d, xOpen kill-session confirmation for focused session
tOpen theme picker
rRefresh state
qQuit the server and all sidebar panes
EscClose only the current sidebar client

tmux plugin shortcuts

KeyAction
prefix o → sReveal and focus the sidebar pane
prefix o → tToggle the sidebar
prefix o → eSpread non-sidebar panes in the current window using even-horizontal
prefix o → 1 through prefix o → 9Switch directly to the visible session indices
Configurable @opensessions-focus-global-key such as Alt-sReveal and focus the sidebar pane from any tmux pane
Configurable @opensessions-index-keys such as Alt-1 through Alt-9Switch directly to the visible session indices from any tmux pane

Session Creation Behavior

  • The server exposes new-session through the mux provider interface.
  • The TUI uses a tmux popup sessionizer when it is running inside tmux.
  • The bundled sessionizer searches directories listed in SESSIONIZER_DIR (colon-separated, e.g. $HOME/Code:$HOME/.config) or $HOME/Documents if unset. The variable is also read from the tmux global environment (tmux set-environment -g) as a fallback.
  • Search depth is controlled by SESSIONIZER_MAXDEPTH (defaults to 3).
  • If fzf is unavailable, the tmux sessionizer exits with a prompt explaining that dependency.

Session Switching Behavior

  • Switching routes through the server so the server can use authoritative client TTY information.
  • tmux is the only supported mux today.

Refresh And Discovery Behavior

  • Git info is cached for 5 seconds.
  • Listening localhost ports are re-polled every 10 seconds while clients are connected.
  • Amp and Claude Code watchers poll every 2 seconds in addition to file watching.
  • OpenCode polls every 3 seconds.

Files And Paths The UI Depends On

  • ~/.local/share/amp/threads/
  • ~/.local/share/amp/session.json
  • ~/.claude/projects/
  • ~/.local/share/opencode/opencode.db
  • ~/.config/opensessions/config.json