raunen

Using raunen with tmux

Running raunen in several panes at once is the natural way to work โ€” one per project, say. prefix + R lists every instance and jumps to its pane.

Add this to ~/.tmux.conf:

tmux.conf
bind R display-popup -E -w 70% -h 50% "raunen-picker"

prefix + R opens a picker populated by raunen --running and filtered through fzf. Enter jumps to the chosen pane, esc cancels. The script lives at contrib/raunen-picker and is meant to run from a tmux popup.

Why a separate listing

tmux cannot be asked directly which panes are running raunen, because pane_current_command reports a pane's foreground process โ€” which during a turn is whatever the agent happens to be running rather than raunen itself. A pane mid-tool would show ollama or git, not raunen.

So each instance announces itself instead. On start it writes a record to ~/.local/share/raunen/running/ โ€” pid, pane, directory, model and the session title โ€” and removes it on exit. raunen --running reads that directory and prints one line per live instance:

shell
$ raunen --running
%3 raunen   45821  raunen   ollama/qwen3.5-8k:latest  (new session)
%7 raunen   46002  my-thing  omniroute/auto/best-coding  fix the login

The picker only lists instances inside tmux. An instance running outside a pane has no TMUX_PANE to record, so its line is skipped โ€” raunen --running reports it, but the jump has nowhere to go. Saved sessions are still reachable with raunen --continue and raunen --resume.

One thing to know

Taking the alternate screen means tmux's own scrollback and copy-mode no longer hold the conversation โ€” it scrolls in-app instead, and sessions are saved to disk. See terminal behaviour in the README for the trade. The picker is the way back to a particular pane when you have several open.