Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 1 addition & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,7 @@ The installer verifies the release checksum and places `tab` in `~/.local/bin`.

## Run `tab`

```text
$ tab

tmux sessions

4 sessions

│ work
│ 3 windows | 1 attached | active 2026-07-19 18:32:26

personal-agent
2 windows | detached | active 2026-07-19 18:31:07

api
2 windows | detached | active 2026-07-19 18:27:44

docs
1 window | detached | active 2026-07-19 18:20:03

↑/k up • ↓/j down • / filter • n new session • r refresh • q quit • ? more
```
![Demo showing tab browsing an existing tmux session and creating a new one](docs/assets/tab-demo.gif)

That is the whole workflow:

Expand Down
Binary file added docs/assets/tab-demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
102 changes: 102 additions & 0 deletions docs/assets/tab-demo.tape
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
Output docs/assets/tab-demo.gif

Require go
Require tmux

Set Shell "bash"
Set FontSize 14
Set Width 800
Set Height 500
Set Framerate 10
Set TypingSpeed 60ms
Set Theme "Catppuccin Mocha"
Set Padding 12
Set Margin 0
Set WindowBar Rings
Set CursorBlink false

Hide
Type `unset TMUX`
Enter
Type `export TAB_DEMO_DIR="$(mktemp -d /tmp/tab-demo.XXXXXX)"`
Enter
Type `export TMUX_TMPDIR="$TAB_DEMO_DIR/tmux"`
Enter
Type `mkdir -p "$TMUX_TMPDIR" "$TAB_DEMO_DIR/bin"`
Enter
Type `go build -o "$TAB_DEMO_DIR/bin/tab" ./cmd/tab`
Enter
Type `export PATH="$TAB_DEMO_DIR/bin:$PATH"`
Enter
Type `export PS1='$ '`
Enter
Type `tmux -f /dev/null new-session -d -s bootstrap -n shell`
Enter
Type `tmux set-option -g default-shell /bin/bash`
Enter
Type `tmux set-option -g default-command "exec /bin/bash --noprofile --norc -i"`
Enter
Type `tmux set-option -g status-left " session: #S "`
Enter
Type `tmux set-option -g status-left-length 20`
Enter
Type `tmux set-option -g status-right ""`
Enter
Type `tmux set-option -g status-style "bg=#313244,fg=#cdd6f4"`
Enter
Type `tmux new-session -d -s work -n editor`
Enter
Type `tmux new-window -d -t work -n server`
Enter
Type `tmux new-window -d -t work -n logs`
Enter
Type `sleep 1`
Enter
Type `tmux new-session -d -s docs -n writing`
Enter
Type `sleep 1`
Enter
Type `tmux new-session -d -s api -n shell`
Enter
Type `tmux new-window -d -t api -n tests`
Enter
Type `tmux send-keys -t api:0.0 "export PS1='$ '; clear" C-m`
Enter
Type `tmux kill-session -t bootstrap`
Enter
Type `clear`
Enter
Show

Type "tab"
Sleep 300ms
Enter
Wait+Screen /tmux sessions/
Sleep 1s
Down
Sleep 600ms
Up
Sleep 600ms
Enter
Sleep 1500ms

Type "tab"
Sleep 300ms
Enter
Wait+Screen /tmux sessions/
Sleep 1s
Type "n"
Wait+Screen /session name:/
Sleep 500ms
Type "demo"
Sleep 500ms
Enter
Wait+Screen /session: demo/
Sleep 3s

Hide
Ctrl+B
Type "d"
Sleep 1s
Type `tmux kill-server`
Enter