shipwright-cli 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +160 -72
  2. package/completions/_shipwright +59 -7
  3. package/completions/shipwright.bash +24 -4
  4. package/completions/shipwright.fish +80 -2
  5. package/dashboard/server.ts +208 -0
  6. package/docs/tmux-research/TMUX-ARCHITECTURE.md +567 -0
  7. package/docs/tmux-research/TMUX-AUDIT.md +925 -0
  8. package/docs/tmux-research/TMUX-BEST-PRACTICES-2025-2026.md +829 -0
  9. package/docs/tmux-research/TMUX-QUICK-REFERENCE.md +543 -0
  10. package/docs/tmux-research/TMUX-RESEARCH-INDEX.md +438 -0
  11. package/package.json +2 -2
  12. package/scripts/lib/helpers.sh +7 -0
  13. package/scripts/sw +116 -2
  14. package/scripts/sw-activity.sh +1 -1
  15. package/scripts/sw-adaptive.sh +1 -1
  16. package/scripts/sw-adversarial.sh +1 -1
  17. package/scripts/sw-architecture-enforcer.sh +1 -1
  18. package/scripts/sw-auth.sh +1 -1
  19. package/scripts/sw-autonomous.sh +128 -38
  20. package/scripts/sw-changelog.sh +1 -1
  21. package/scripts/sw-checkpoint.sh +1 -1
  22. package/scripts/sw-ci.sh +1 -1
  23. package/scripts/sw-cleanup.sh +1 -1
  24. package/scripts/sw-code-review.sh +62 -1
  25. package/scripts/sw-connect.sh +1 -1
  26. package/scripts/sw-context.sh +1 -1
  27. package/scripts/sw-cost.sh +44 -3
  28. package/scripts/sw-daemon.sh +155 -27
  29. package/scripts/sw-dashboard.sh +1 -1
  30. package/scripts/sw-db.sh +958 -118
  31. package/scripts/sw-decompose.sh +1 -1
  32. package/scripts/sw-deps.sh +1 -1
  33. package/scripts/sw-developer-simulation.sh +1 -1
  34. package/scripts/sw-discovery.sh +1 -1
  35. package/scripts/sw-docs-agent.sh +1 -1
  36. package/scripts/sw-docs.sh +1 -1
  37. package/scripts/sw-doctor.sh +49 -1
  38. package/scripts/sw-dora.sh +1 -1
  39. package/scripts/sw-durable.sh +1 -1
  40. package/scripts/sw-e2e-orchestrator.sh +1 -1
  41. package/scripts/sw-eventbus.sh +1 -1
  42. package/scripts/sw-feedback.sh +23 -15
  43. package/scripts/sw-fix.sh +1 -1
  44. package/scripts/sw-fleet-discover.sh +1 -1
  45. package/scripts/sw-fleet-viz.sh +1 -1
  46. package/scripts/sw-fleet.sh +1 -1
  47. package/scripts/sw-github-app.sh +1 -1
  48. package/scripts/sw-github-checks.sh +4 -4
  49. package/scripts/sw-github-deploy.sh +1 -1
  50. package/scripts/sw-github-graphql.sh +1 -1
  51. package/scripts/sw-guild.sh +1 -1
  52. package/scripts/sw-heartbeat.sh +1 -1
  53. package/scripts/sw-hygiene.sh +1 -1
  54. package/scripts/sw-incident.sh +45 -6
  55. package/scripts/sw-init.sh +150 -24
  56. package/scripts/sw-instrument.sh +1 -1
  57. package/scripts/sw-intelligence.sh +1 -1
  58. package/scripts/sw-jira.sh +1 -1
  59. package/scripts/sw-launchd.sh +1 -1
  60. package/scripts/sw-linear.sh +1 -1
  61. package/scripts/sw-logs.sh +1 -1
  62. package/scripts/sw-loop.sh +204 -19
  63. package/scripts/sw-memory.sh +18 -1
  64. package/scripts/sw-mission-control.sh +1 -1
  65. package/scripts/sw-model-router.sh +1 -1
  66. package/scripts/sw-otel.sh +1 -1
  67. package/scripts/sw-oversight.sh +76 -1
  68. package/scripts/sw-pipeline-composer.sh +1 -1
  69. package/scripts/sw-pipeline-vitals.sh +1 -1
  70. package/scripts/sw-pipeline.sh +302 -18
  71. package/scripts/sw-pm.sh +70 -5
  72. package/scripts/sw-pr-lifecycle.sh +1 -1
  73. package/scripts/sw-predictive.sh +8 -1
  74. package/scripts/sw-prep.sh +1 -1
  75. package/scripts/sw-ps.sh +1 -1
  76. package/scripts/sw-public-dashboard.sh +1 -1
  77. package/scripts/sw-quality.sh +1 -1
  78. package/scripts/sw-reaper.sh +1 -1
  79. package/scripts/sw-recruit.sh +1853 -178
  80. package/scripts/sw-regression.sh +1 -1
  81. package/scripts/sw-release-manager.sh +1 -1
  82. package/scripts/sw-release.sh +1 -1
  83. package/scripts/sw-remote.sh +1 -1
  84. package/scripts/sw-replay.sh +1 -1
  85. package/scripts/sw-retro.sh +1 -1
  86. package/scripts/sw-scale.sh +1 -1
  87. package/scripts/sw-security-audit.sh +1 -1
  88. package/scripts/sw-self-optimize.sh +1 -1
  89. package/scripts/sw-session.sh +1 -1
  90. package/scripts/sw-setup.sh +263 -127
  91. package/scripts/sw-standup.sh +1 -1
  92. package/scripts/sw-status.sh +44 -2
  93. package/scripts/sw-strategic.sh +189 -41
  94. package/scripts/sw-stream.sh +1 -1
  95. package/scripts/sw-swarm.sh +42 -5
  96. package/scripts/sw-team-stages.sh +1 -1
  97. package/scripts/sw-templates.sh +4 -4
  98. package/scripts/sw-testgen.sh +66 -15
  99. package/scripts/sw-tmux-pipeline.sh +1 -1
  100. package/scripts/sw-tmux-role-color.sh +58 -0
  101. package/scripts/sw-tmux-status.sh +128 -0
  102. package/scripts/sw-tmux.sh +1 -1
  103. package/scripts/sw-trace.sh +1 -1
  104. package/scripts/sw-tracker.sh +1 -1
  105. package/scripts/sw-triage.sh +61 -37
  106. package/scripts/sw-upgrade.sh +1 -1
  107. package/scripts/sw-ux.sh +30 -2
  108. package/scripts/sw-webhook.sh +1 -1
  109. package/scripts/sw-widgets.sh +1 -1
  110. package/scripts/sw-worktree.sh +1 -1
  111. package/tmux/shipwright-overlay.conf +35 -17
  112. package/tmux/tmux.conf +26 -21
@@ -0,0 +1,543 @@
1
+ # tmux Quick Reference 2025-2026
2
+
3
+ ## Installation
4
+
5
+ ```bash
6
+ # macOS
7
+ brew install tmux
8
+
9
+ # Ubuntu/Debian
10
+ sudo apt-get install tmux
11
+
12
+ # Build from source (latest features)
13
+ git clone https://github.com/tmux/tmux.git
14
+ cd tmux
15
+ ./configure && make
16
+ sudo make install
17
+ ```
18
+
19
+ ---
20
+
21
+ ## Oh My Tmux! Quick Setup
22
+
23
+ ```bash
24
+ # Clone into home
25
+ git clone https://github.com/gpakosz/.tmux.git ~/.tmux
26
+ ln -s -f ~/.tmux/.tmux.conf ~/.tmux.conf
27
+
28
+ # Copy local customization file (edit this, never edit .tmux.conf)
29
+ cp ~/.tmux/.tmux.conf.local ~/.tmux.conf.local
30
+
31
+ # Edit with: vim ~/.tmux.conf.local
32
+ ```
33
+
34
+ ---
35
+
36
+ ## Essential Keybindings (C-a prefix)
37
+
38
+ ### Session Management
39
+
40
+ | Binding | Action |
41
+ | ------- | ----------------- |
42
+ | `C-a :` | Command prompt |
43
+ | `C-a ?` | Show keybindings |
44
+ | `C-a d` | Detach session |
45
+ | `C-a n` | Next window |
46
+ | `C-a p` | Previous window |
47
+ | `C-a l` | Last window |
48
+ | `C-a c` | New window |
49
+ | `C-a ,` | Rename window |
50
+ | `C-a w` | List windows |
51
+ | `C-a s` | List sessions |
52
+ | `C-a $` | Rename session |
53
+ | `C-a [` | Enter copy-mode |
54
+ | `C-a ]` | Paste from buffer |
55
+ | `C-a r` | Reload config |
56
+
57
+ ### Pane Navigation (vim-tmux-navigator)
58
+
59
+ | Binding | Action |
60
+ | -------- | --------------------- |
61
+ | `C-h` | Move left (vim/tmux) |
62
+ | `C-j` | Move down (vim/tmux) |
63
+ | `C-k` | Move up (vim/tmux) |
64
+ | `C-l` | Move right (vim/tmux) |
65
+ | `C-a H` | Resize left |
66
+ | `C-a J` | Resize down |
67
+ | `C-a K` | Resize up |
68
+ | `C-a L` | Resize right |
69
+ | `C-a \|` | Split vertical |
70
+ | `C-a -` | Split horizontal |
71
+ | `C-a x` | Kill pane |
72
+ | `C-a z` | Zoom pane (toggle) |
73
+
74
+ ### Copy Mode (vi-style)
75
+
76
+ | Binding | Action |
77
+ | ------------- | ------------------------- |
78
+ | `C-a [` | Enter copy-mode |
79
+ | `v` | Begin selection |
80
+ | `y` | Copy to buffer |
81
+ | `Y` | Copy entire line |
82
+ | `H` / `L` | Start / End of line |
83
+ | `/` / `?` | Search forward / backward |
84
+ | `n` / `N` | Next / Previous match |
85
+ | `j` / `k` | Down / Up |
86
+ | `C-f` / `C-b` | Page down / Page up |
87
+ | `Enter` | Exit copy-mode |
88
+
89
+ ### Custom Additions (2025)
90
+
91
+ | Binding | Action |
92
+ | ------- | ------------------------- |
93
+ | `C-a m` | Toggle mouse mode |
94
+ | `C-g` | Floating scratch terminal |
95
+ | `C-s` | Floating session switcher |
96
+ | `C-j` | Floating git status |
97
+ | `C-f` | Floating file search |
98
+ | `C-p` | Floating process monitor |
99
+
100
+ ---
101
+
102
+ ## Command-Line Essentials
103
+
104
+ ### Session Operations
105
+
106
+ ```bash
107
+ # Create new session (in detached mode)
108
+ tmux new-session -d -s mysession
109
+
110
+ # Attach to session
111
+ tmux attach-session -t mysession
112
+ tmux a -t mysession # Short form
113
+
114
+ # List sessions
115
+ tmux list-sessions
116
+ tmux ls # Short form
117
+
118
+ # Kill session
119
+ tmux kill-session -t mysession
120
+
121
+ # Rename session
122
+ tmux rename-session -t old-name new-name
123
+
124
+ # Switch to another session (from within tmux)
125
+ tmux switch-client -t other-session
126
+ ```
127
+
128
+ ### Window Operations
129
+
130
+ ```bash
131
+ # Create window in existing session
132
+ tmux new-window -t mysession -n editor -c ~/project
133
+
134
+ # Send command to window
135
+ tmux send-keys -t mysession:editor "nvim main.go" Enter
136
+
137
+ # Split window
138
+ tmux split-window -h -t mysession:editor -c ~/project
139
+ tmux split-window -v -t mysession:editor -c ~/project
140
+
141
+ # Select pane
142
+ tmux select-pane -t mysession:editor.0
143
+ ```
144
+
145
+ ### Advanced Commands
146
+
147
+ ```bash
148
+ # Capture pane output (for logs/debugging)
149
+ tmux capture-pane -t mysession:editor -p > output.txt
150
+
151
+ # Display message
152
+ tmux display-message "Hello from tmux"
153
+
154
+ # Set option
155
+ tmux set-option -g history-limit 250000
156
+
157
+ # Bind key
158
+ tmux bind-key -n C-g display-popup -E -h 50% -w 80%
159
+
160
+ # Show environment variables
161
+ tmux show-environment -t mysession
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Essential Configuration Patterns
167
+
168
+ ### Minimal Production Config
169
+
170
+ ```tmux
171
+ # ~/.tmux.conf
172
+
173
+ set -g default-terminal "xterm-256color"
174
+ set -as terminal-overrides ",xterm*:RGB"
175
+ set -g allow-passthrough on
176
+ set -g extended-keys on
177
+ set -g focus-events on
178
+
179
+ set -g escape-time 0
180
+ set -g history-limit 250000
181
+ set -g mouse on
182
+
183
+ unbind C-b
184
+ set -g prefix C-a
185
+ bind C-a send-prefix
186
+
187
+ bind | split-window -h -c "#{pane_current_path}"
188
+ bind - split-window -v -c "#{pane_current_path}"
189
+
190
+ bind r source-file ~/.tmux.conf \; display "Reloaded!"
191
+
192
+ # Plugins
193
+ set -g @plugin 'tmux-plugins/tpm'
194
+ set -g @plugin 'tmux-plugins/tmux-sensible'
195
+ set -g @plugin 'christoomey/vim-tmux-navigator'
196
+ set -g @plugin 'tmux-plugins/tmux-yank'
197
+ set -g @plugin 'tmux-plugins/tmux-resurrect'
198
+
199
+ run '~/.tmux/plugins/tpm/tpm'
200
+ ```
201
+
202
+ ### Enable Popups (tmux 3.2+)
203
+
204
+ ```tmux
205
+ # Floating scratch terminal
206
+ bind -n C-g display-popup -E -h 60% -w 80% -x C -y S \
207
+ "cd '#{pane_current_path}' && $SHELL"
208
+
209
+ # Floating fzf session switcher
210
+ bind -n C-s display-popup -E -h 50% -w 80% -x C -y C \
211
+ "tmux list-sessions | cut -d: -f1 | fzf | xargs tmux switch-client -t"
212
+ ```
213
+
214
+ ### Vim/Neovim Navigation
215
+
216
+ ```tmux
217
+ is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
218
+
219
+ bind -n C-h if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
220
+ bind -n C-j if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
221
+ bind -n C-k if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
222
+ bind -n C-l if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
223
+ ```
224
+
225
+ ### Status Line (Minimal)
226
+
227
+ ```tmux
228
+ set -g status-style "bg=#1e1e2e,fg=#a6adc8"
229
+ set -g status-left "#{session_name} "
230
+ set -g status-right "#[fg=#7aa2f7]%H:%M#[default]"
231
+ set -g status-interval 10
232
+
233
+ set -g window-status-format " #I:#W "
234
+ set -g window-status-current-format "#[bg=#45475a,bold] #I:#W #[default]"
235
+ ```
236
+
237
+ ---
238
+
239
+ ## Plugin Manager (TPM)
240
+
241
+ ### Install TPM
242
+
243
+ ```bash
244
+ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
245
+ ```
246
+
247
+ ### Common Plugins
248
+
249
+ ```tmux
250
+ set -g @plugin 'tmux-plugins/tpm' # Plugin manager
251
+ set -g @plugin 'tmux-plugins/tmux-sensible' # Sensible defaults
252
+ set -g @plugin 'christoomey/vim-tmux-navigator' # Vim navigation
253
+ set -g @plugin 'tmux-plugins/tmux-yank' # System clipboard
254
+ set -g @plugin 'tmux-plugins/tmux-resurrect' # Persist sessions
255
+ set -g @plugin 'tmux-plugins/tmux-continuum' # Auto-save
256
+ set -g @plugin 'NHDaly/tmux-better-mouse-mode' # Better mouse
257
+ set -g @plugin 'aserowy/tmux.nvim' # Neovim integration
258
+ set -g @plugin 'tmux-plugins/tmux-fzf-url' # Open URLs with fzf
259
+
260
+ # Plugin configuration
261
+ set -g @continuum-restore 'on'
262
+ set -g @continuum-save-interval '5'
263
+ set -g @resurrect-strategy-nvim 'session'
264
+
265
+ # Install: C-a I
266
+ # Update: C-a U
267
+ # Remove: C-a Alt-u
268
+
269
+ run '~/.tmux/plugins/tpm/tpm'
270
+ ```
271
+
272
+ ---
273
+
274
+ ## Scripting Examples
275
+
276
+ ### Create Multi-Pane Session
277
+
278
+ ```bash
279
+ #!/bin/bash
280
+ # setup-dev.sh
281
+
282
+ SESSION="dev"
283
+ PROJECT="~/myproject"
284
+
285
+ tmux new-session -d -s $SESSION -c $PROJECT
286
+
287
+ # Window 1: Editor + Tests
288
+ tmux new-window -t $SESSION:0 -n editor
289
+ tmux send-keys -t $SESSION:editor "nvim" Enter
290
+
291
+ tmux split-window -h -t $SESSION:editor -c $PROJECT
292
+ tmux send-keys -t $SESSION:editor.1 "npm test -- --watch" Enter
293
+
294
+ # Window 2: Logs
295
+ tmux new-window -t $SESSION:1 -n logs -c $PROJECT
296
+ tmux send-keys -t $SESSION:logs "tail -f logs/*.log" Enter
297
+
298
+ # Attach
299
+ tmux attach-session -t $SESSION
300
+ ```
301
+
302
+ ### Multi-Agent Workflow
303
+
304
+ ```bash
305
+ #!/bin/bash
306
+ # setup-agents.sh
307
+
308
+ SESSION="agents"
309
+ PROJECT="~/myproject"
310
+
311
+ # Create session
312
+ tmux new-session -d -s $SESSION -c $PROJECT
313
+
314
+ # Agent 1: Backend (git worktree)
315
+ tmux send-keys -t $SESSION \
316
+ "git worktree add /tmp/wt-backend feat/api && cd /tmp/wt-backend && claude code" Enter
317
+
318
+ # Agent 2: Frontend (git worktree)
319
+ tmux new-window -t $SESSION -n frontend
320
+ tmux send-keys -t $SESSION:frontend \
321
+ "git worktree add /tmp/wt-frontend feat/ui && cd /tmp/wt-frontend && claude code" Enter
322
+
323
+ # Monitor
324
+ tmux new-window -t $SESSION -n monitor
325
+ tmux send-keys -t $SESSION:monitor "shipwright status" Enter
326
+
327
+ # Orchestrator
328
+ tmux new-window -t $SESSION -n orchestrator
329
+ tmux send-keys -t $SESSION:orchestrator "watch -n 5 'shipwright vitals'" Enter
330
+
331
+ tmux attach-session -t $SESSION
332
+ ```
333
+
334
+ ### Send Keys from Shell
335
+
336
+ ```bash
337
+ #!/bin/bash
338
+ # Auto-run tests when code changes (file watcher pattern)
339
+
340
+ SESSION="myapp"
341
+ WINDOW="tests"
342
+
343
+ while true; do
344
+ inotifywait -e modify -r src/ && \
345
+ tmux send-keys -t $SESSION:$WINDOW "npm test" Enter
346
+ done
347
+ ```
348
+
349
+ ---
350
+
351
+ ## Troubleshooting
352
+
353
+ ### Colors Not Working
354
+
355
+ ```tmux
356
+ # Check terminal support
357
+ echo $TERM
358
+
359
+ # Fix: Use proper terminal value
360
+ set -g default-terminal "xterm-256color"
361
+ set -as terminal-overrides ",xterm*:RGB"
362
+ set -as terminal-overrides ",alacritty:RGB"
363
+ ```
364
+
365
+ ### Vim/Neovim ESC Delay
366
+
367
+ ```tmux
368
+ # Critical fix for responsiveness
369
+ set -g escape-time 0
370
+
371
+ # Verify it's set
372
+ tmux show-option -g escape-time
373
+ ```
374
+
375
+ ### Mouse Selection Across Panes
376
+
377
+ ```tmux
378
+ # Hold Shift while selecting text to bypass tmux capture
379
+ set -g mouse on
380
+
381
+ # OR: Disable mouse and use keyboard navigation
382
+ set -g mouse off
383
+ bind -n M-Up select-pane -U
384
+ bind -n M-Down select-pane -D
385
+ bind -n M-Left select-pane -L
386
+ bind -n M-Right select-pane -R
387
+ ```
388
+
389
+ ### Clipboard Not Working
390
+
391
+ ```bash
392
+ # macOS
393
+ brew install reattach-to-user-namespace
394
+
395
+ # Linux
396
+ sudo apt-get install xclip
397
+
398
+ # Then configure in tmux:
399
+ # For macOS:
400
+ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"
401
+
402
+ # For Linux:
403
+ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
404
+ ```
405
+
406
+ ### Session Persists After Kill
407
+
408
+ ```bash
409
+ # Kill all sessions and server
410
+ tmux kill-server
411
+
412
+ # Kill specific session
413
+ tmux kill-session -t mysession
414
+ ```
415
+
416
+ ### Check Version
417
+
418
+ ```bash
419
+ tmux -V
420
+ # Output: tmux 3.2a (or similar)
421
+ ```
422
+
423
+ ---
424
+
425
+ ## Performance Tuning
426
+
427
+ ### For High-Throughput (Claude Code)
428
+
429
+ ```tmux
430
+ set -g history-limit 250000 # Increase scrollback
431
+ set -g buffer-limit 20 # Keep buffers reasonable
432
+ set -g status-interval 10 # Update status every 10s (not 1s)
433
+ set -g escape-time 0 # No ESC delay
434
+ set -g repeat-time 500 # Allow rapid key repeats
435
+ set -g allow-passthrough on # For TUI apps
436
+ ```
437
+
438
+ ### Monitor Session Usage
439
+
440
+ ```bash
441
+ # Watch memory/CPU in real-time
442
+ tmux capture-pane -t mysession -p | wc -l
443
+ ps aux | grep tmux | grep -v grep
444
+ ```
445
+
446
+ ---
447
+
448
+ ## Integration with External Tools
449
+
450
+ ### Git Worktree + tmux
451
+
452
+ ```bash
453
+ # Create branch-specific workspace
454
+ tmux new-session -d -s feature-x
455
+
456
+ # Inside session:
457
+ git worktree add /tmp/wt-feature-x feature/x
458
+ cd /tmp/wt-feature-x
459
+ nvim
460
+
461
+ # Later, clean up:
462
+ git worktree remove /tmp/wt-feature-x
463
+ tmux kill-session -t feature-x
464
+ ```
465
+
466
+ ### FZF Session Switcher
467
+
468
+ ```tmux
469
+ bind -n C-s display-popup -E \
470
+ "tmux list-sessions -F '#{session_name}' | fzf | xargs tmux switch-client -t"
471
+ ```
472
+
473
+ ### GitHub Copilot Integration
474
+
475
+ ```tmux
476
+ # In Neovim with copilot.vim plugin
477
+ bind -n C-x send-keys -t editor "i<Tab>" # Accept suggestion
478
+ ```
479
+
480
+ ---
481
+
482
+ ## Useful One-Liners
483
+
484
+ ```bash
485
+ # List all tmux commands
486
+ tmux list-commands
487
+
488
+ # Kill all tmux sessions
489
+ tmux kill-server
490
+
491
+ # Backup session state
492
+ tmux list-sessions -F "#{session_name}" | while read s; do
493
+ tmux list-windows -t $s
494
+ done
495
+
496
+ # Count panes in session
497
+ tmux list-panes -t mysession | wc -l
498
+
499
+ # Send same command to all panes in window
500
+ tmux send-keys -t mysession C-a :set-window-option synchronize-panes on Enter
501
+
502
+ # Capture pane and write to file with timestamp
503
+ tmux capture-pane -t mysession -p > ~/tmux-$(date +%s).log
504
+
505
+ # Watch a pane in real-time
506
+ watch -n 0.5 "tmux capture-pane -t mysession:0 -p"
507
+
508
+ # Find the pane with a specific command
509
+ tmux list-panes -a -F "#{pane_id} #{pane_current_command}" | grep "nvim"
510
+ ```
511
+
512
+ ---
513
+
514
+ ## Version Compatibility
515
+
516
+ | Feature | Min Version | Status |
517
+ | --------------------- | ----------- | --------------------- |
518
+ | `display-popup` | 3.2+ | Floating windows |
519
+ | `allow-passthrough` | 3.2+ | DEC 2026 sync |
520
+ | `extended-keys` | 3.0+ | Alt key support |
521
+ | `if-shell` versioning | 2.4+ | %if syntax |
522
+ | `focus-events` | 2.2+ | Window focus tracking |
523
+ | `set-clipboard` | 3.2+ | Native OSC 52 |
524
+
525
+ ---
526
+
527
+ ## Additional Resources
528
+
529
+ | Resource | Link |
530
+ | -------------------- | ------------------------------------------------- |
531
+ | Official Manual | https://man7.org/linux/man-pages/man1/tmux.1.html |
532
+ | GitHub Repository | https://github.com/tmux/tmux |
533
+ | Oh My Tmux! | https://github.com/gpakosz/.tmux |
534
+ | Awesome tmux | https://github.com/rothgar/awesome-tmux |
535
+ | Plugin Manager (TPM) | https://github.com/tmux-plugins/tpm |
536
+
537
+ ---
538
+
539
+ **Quick Tip**: Always reload config after editing with `C-a r` or `tmux source-file ~/.tmux.conf`
540
+
541
+ **Pro Tip**: Use session names that match your projects for faster switching (`myapp-dev`, `myapp-api`, etc.)
542
+
543
+ **Claude Code Tip**: Set up one tmux window per agent, use git worktrees for isolation, and monitor with `shipwright status`