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,438 @@
1
+ # tmux Research Index: Best-in-Class 2025-2026
2
+
3
+ **Research Completion Date**: February 12, 2026
4
+ **Focus Areas**: 14 comprehensive topics
5
+ **Total Documentation**: 4 detailed guides + this index
6
+
7
+ ---
8
+
9
+ ## Overview
10
+
11
+ This research compiled best-in-class tmux configurations, patterns, and integrations from the 2025-2026 ecosystem, with special emphasis on:
12
+
13
+ 1. Modern developer workflows
14
+ 2. AI agent multi-pane orchestration
15
+ 3. Neovim + Claude Code integration
16
+ 4. High-throughput terminal scenarios
17
+ 5. Shipwright daemon patterns
18
+
19
+ ---
20
+
21
+ ## Document Guide
22
+
23
+ ### 1. TMUX-BEST-PRACTICES-2025-2026.md (29 KB)
24
+
25
+ **The comprehensive configuration bible**
26
+
27
+ | Section | Coverage |
28
+ | ------------------------- | ---------------------------------------------------------------- |
29
+ | 1. Core Patterns | Oh My Tmux! philosophy, version detection, conditional configs |
30
+ | 2. Status Line | Minimal design, production templates, Neovim integration |
31
+ | 3. Advanced Features | Hooks, copy-mode, popups, mouse handling |
32
+ | 4. Plugin Ecosystem | TPM, essential plugins, modern tools (2025-2026) |
33
+ | 5. Neovim Integration | vim-tmux-navigator, claude-code.nvim, sidekick.nvim, avante.nvim |
34
+ | 6. Performance Tuning | Claude Code high-throughput optimization |
35
+ | 7. CI/CD Patterns | Automated session setup, GitHub Actions integration |
36
+ | 8. Shipwright Config | Daemon setup, team pane layouts, vitals monitoring |
37
+ | 9. Best Practices Summary | Quick reference table |
38
+ | 10. Config Templates | Minimal production + full-featured configs |
39
+ | 11. Resources | Links to official docs, frameworks, plugins |
40
+
41
+ **When to Use**: Deep understanding of features, production configuration, troubleshooting complex setups
42
+
43
+ ---
44
+
45
+ ### 2. TMUX-ARCHITECTURE.md (43 KB)
46
+
47
+ **Visual architecture and integration patterns**
48
+
49
+ | Section | Purpose |
50
+ | ------------------------------- | --------------------------------------------------------- |
51
+ | 1. Core Architecture | ASCII diagram of tmux server, sessions, windows, panes |
52
+ | 2. Modern Neovim+AI | Full integration diagram (Neovim ↔ Claude ↔ tmux) |
53
+ | 3. Shipwright Pipeline | Daemon with 4 parallel workers, heartbeats, cost tracking |
54
+ | 4. Plugin Architecture | TPM flow and plugin categories |
55
+ | 5. Config Override Hierarchy | Load order and precedence rules |
56
+ | 6. Hooks & Lifecycle | Session/window/pane event flow |
57
+ | 7. Mouse Mode Trade-offs | Decision table for mouse on/off scenarios |
58
+ | 8. Copy Mode Data Flow | Selection → clipboard → system integration |
59
+ | 9. Floating Popups | Visual example of display-popup usage |
60
+ | 10. Integration Points | How Shipwright, Claude Code, Neovim coordinate |
61
+ | 11. Performance Characteristics | Memory, CPU, latency benchmarks |
62
+ | 12. Feature Decision Tree | Choose right tool for each task |
63
+
64
+ **When to Use**: Visual learners, understanding integration patterns, debugging coordination issues
65
+
66
+ ---
67
+
68
+ ### 3. TMUX-QUICK-REFERENCE.md (13 KB)
69
+
70
+ **Fast lookup for developers**
71
+
72
+ | Section | Content |
73
+ | ----------------------- | ----------------------------------------------------- |
74
+ | Installation | macOS, Linux, source build |
75
+ | Oh My Tmux Setup | 3-line quick start |
76
+ | Essential Keybindings | All critical shortcuts in table format |
77
+ | Command-Line Essentials | `tmux` command reference |
78
+ | Config Patterns | Copy-paste ready snippets |
79
+ | Plugin Manager | TPM install + common plugins |
80
+ | Scripting Examples | Multi-pane setup, multi-agent workflow, file watchers |
81
+ | Troubleshooting | Colors, ESC delay, clipboard, version checks |
82
+ | Performance Tuning | High-throughput settings |
83
+ | One-Liners | Useful bash commands |
84
+ | Version Compatibility | Feature support by tmux version |
85
+
86
+ **When to Use**: During active development, copy-paste configuration, quick lookups
87
+
88
+ ---
89
+
90
+ ## Key Findings Summary
91
+
92
+ ### Best-in-Class Configuration (2025-2026)
93
+
94
+ **Gold Standard**: [Oh My Tmux!](https://github.com/gpakosz/.tmux) (gpakosz/.tmux)
95
+
96
+ - Actively maintained as of 2025
97
+ - 100+ contributors
98
+ - Philosophy: Never edit core config; customize via `.tmux.conf.local`
99
+ - Dual prefix support (C-a + C-b for nested sessions)
100
+ - SSH-aware, Powerline-inspired theming
101
+
102
+ **Essential Plugins** (via TPM):
103
+
104
+ 1. `tmux-plugins/tmux-sensible` — Sensible defaults
105
+ 2. `christoomey/vim-tmux-navigator` — Vim ↔ tmux seamless navigation
106
+ 3. `tmux-plugins/tmux-yank` — System clipboard integration
107
+ 4. `tmux-plugins/tmux-resurrect` — Persist sessions across restarts
108
+ 5. `tmux-plugins/tmux-continuum` — Auto-save every 5 minutes
109
+
110
+ **Modern Tools** (new in 2025-2026):
111
+
112
+ - **dmux** (Rust) — Workspace manager for multi-agent setups
113
+ - **sessionx** — FZF session switcher with preview
114
+ - **sesh** — Intelligent session detection by project type
115
+ - **treemux** (Rust) — File explorer sidebar (Nvim-Tree style)
116
+ - **laio** (Rust) — Flexbox-inspired declarative layouts
117
+
118
+ ### Critical Settings for AI Development
119
+
120
+ ```tmux
121
+ set -g escape-time 0 # Neovim ESC responsiveness
122
+ set -g history-limit 250000 # Claude Code output volume
123
+ set -g allow-passthrough on # DEC 2026 synchronized output
124
+ set -g extended-keys on # Alt key combinations work
125
+ set -g focus-events on # TUI app focus tracking
126
+ set -g set-clipboard on # OSC 52 native clipboard
127
+ set -g status-interval 10 # Reduce CPU (5-10s better than 1s)
128
+ ```
129
+
130
+ ### Integration Patterns
131
+
132
+ **Pattern 1: Neovim + Claude Code in Same Session**
133
+
134
+ ```
135
+ Window 1: Neovim (with sidekick.nvim, claude-code.nvim)
136
+ Window 2: Claude Code REPL (separate pane)
137
+ Window 3: Tests/Monitor (watch build output)
138
+
139
+ Navigation: Ctrl-h/j/k/l (vim-tmux-navigator) moves seamlessly
140
+ Workflow: Query Claude from Neovim, see response in adjacent pane
141
+ ```
142
+
143
+ **Pattern 2: Multi-Agent Autonomous Development**
144
+
145
+ ```
146
+ Session: multi-agent-dev
147
+ ├─ Window 1: Orchestrator (shipwright status)
148
+ ├─ Window 2: Agent-1 (API backend, git worktree)
149
+ ├─ Window 3: Agent-2 (UI frontend, git worktree)
150
+ ├─ Window 4: Monitor (shipwright vitals, cost tracking)
151
+ └─ Window 5: Memory (failure patterns from last runs)
152
+
153
+ Each agent runs in isolated git worktree, no merge conflicts
154
+ ```
155
+
156
+ **Pattern 3: Floating Popups for Quick Tasks**
157
+
158
+ ```
159
+ Ctrl+G → Floating scratch terminal (fzf, commands, repl)
160
+ Ctrl+S → Floating session switcher
161
+ Ctrl+J → Floating git status
162
+ Ctrl+F → Floating file search (rg + fzf)
163
+ Ctrl+P → Floating process monitor
164
+
165
+ Popups don't reshape main layout, press Escape to dismiss
166
+ ```
167
+
168
+ ### Performance Characteristics
169
+
170
+ | Metric | Value | Notes |
171
+ | ---------------------------------- | -------- | ---------------------------- |
172
+ | Memory (idle session) | 2 MB | Single session, no panes |
173
+ | Memory (4 panes + 250K scrollback) | 45-60 MB | Typical multi-agent setup |
174
+ | CPU (idle) | <0.1% | Minimal overhead |
175
+ | CPU (active with updates) | 0.5-2% | Terminal rendering dominates |
176
+ | Keyboard latency (C-a key) | <5ms | Instant with escape-time 0 |
177
+ | Pane switch latency (C-h) | <2ms | Native vim-tmux-navigator |
178
+ | Status bar update | <10ms | Every 5-10s intervals |
179
+
180
+ ### Hooks Lifecycle
181
+
182
+ Key automation points:
183
+
184
+ - `after-new-session` — Create git worktree, init CLAUDE.md, start memory system
185
+ - `window-linked` — Auto-rename window to match branch
186
+ - `pane-exited` — Capture output, check status code, trigger next stage (if gated)
187
+ - `session-closed` — Save state, cleanup worktrees, post event to heartbeat
188
+
189
+ ### Copy-Mode Best Practices
190
+
191
+ For TUI apps (Vim, Neovim, Claude Code):
192
+
193
+ - Bind vi-style keys: `v` begin, `y` copy, `H`/`L` line bounds
194
+ - Shift+drag for cross-pane selection (bypasses tmux capture)
195
+ - Don't use mouse mode in AI workflows (conflicts with tool focus)
196
+ - On macOS: bind `y` to `pbcopy`; on Linux: bind `y` to `xclip`
197
+
198
+ ### Version Compatibility Matrix
199
+
200
+ | Feature | Min Version | Status |
201
+ | ------------------------------------ | ----------- | --------------------------- |
202
+ | `display-popup` (floating windows) | 3.2+ | Full support |
203
+ | `allow-passthrough` (DEC 2026 sync) | 3.2+ | Eliminates TUI flicker |
204
+ | `extended-keys` (Alt combinations) | 3.0+ | TUI compatibility |
205
+ | `focus-events` (app focus tracking) | 2.2+ | Responsive to window events |
206
+ | `set-clipboard` (OSC 52) | 3.2+ | Native clipboard over SSH |
207
+ | `if-shell` versioning (`%if` syntax) | 2.4+ | Conditional config loading |
208
+ | `copy-pipe-and-cancel` | 2.5+ | Enhanced copy behavior |
209
+
210
+ ---
211
+
212
+ ## Research Coverage
213
+
214
+ ### Topics Fully Researched
215
+
216
+ 1. **Core Configuration Patterns** ✓
217
+ - Oh My Tmux! framework
218
+ - Conditional version detection
219
+ - Override hierarchy
220
+
221
+ 2. **Status Line Best Practices** ✓
222
+ - Minimal vs. informative trade-offs
223
+ - Performance considerations
224
+ - Neovim-specific optimizations
225
+
226
+ 3. **Advanced Features** ✓
227
+ - Hooks (after-new-session, pane-exited, etc.)
228
+ - Copy-mode for TUI apps
229
+ - display-popup floating windows
230
+ - Mouse mode conflicts and resolution
231
+
232
+ 4. **Plugin Ecosystem** ✓
233
+ - TPM installation and workflow
234
+ - Essential plugins (2025-2026)
235
+ - Modern tools (dmux, sessionx, sesh, treemux, laio)
236
+
237
+ 5. **Neovim + AI Integration** ✓
238
+ - vim-tmux-navigator setup
239
+ - claude-code.nvim, sidekick.nvim, avante.nvim
240
+ - Multi-agent orchestration patterns
241
+
242
+ 6. **Performance Tuning** ✓
243
+ - High-throughput Claude Code scenarios
244
+ - Memory and CPU optimization
245
+ - Status bar frequency tuning
246
+
247
+ 7. **CI/CD and Automation** ✓
248
+ - Automated session setup scripts
249
+ - GitHub Actions integration
250
+ - Shipwright daemon patterns
251
+
252
+ 8. **Hooks & Lifecycle** ✓
253
+ - Complete event list
254
+ - Use cases for each hook
255
+ - Shipwright integration examples
256
+
257
+ 9. **Copy-Mode Optimization** ✓
258
+ - vi-style keybindings
259
+ - Clipboard integration (macOS, Linux)
260
+ - TUI app considerations
261
+
262
+ 10. **Mouse Mode Handling** ✓
263
+ - On vs. Off trade-offs
264
+ - Shift+drag for selection
265
+ - AI tool compatibility
266
+
267
+ 11. **Floating Popups** ✓
268
+ - display-popup syntax (3.2+)
269
+ - Use cases (fzf, git, file search)
270
+ - Best practices
271
+
272
+ 12. **Conditional Configuration** ✓
273
+ - if-shell version detection
274
+ - %if modern syntax
275
+ - Platform-specific (darwin, linux)
276
+
277
+ 13. **Session Management** ✓
278
+ - One session per project pattern
279
+ - Tmuxinator and alternatives
280
+ - Multi-agent git worktree patterns
281
+
282
+ 14. **Shipwright Integration** ✓
283
+ - Daemon configuration
284
+ - Team pane layouts
285
+ - Vitals monitoring
286
+ - Cost tracking in status line
287
+
288
+ ---
289
+
290
+ ## Recommended Reading Order
291
+
292
+ **For Quick Setup** (< 30 min):
293
+
294
+ 1. Start: TMUX-QUICK-REFERENCE.md → Installation + Oh My Tmux setup
295
+ 2. Copy: Minimal production config from TMUX-BEST-PRACTICES-2025-2026.md (section 10.1)
296
+ 3. Install: TPM and essential plugins
297
+ 4. Done: Reload config with `C-a r`
298
+
299
+ **For Deep Understanding** (2-3 hours):
300
+
301
+ 1. Read: TMUX-BEST-PRACTICES-2025-2026.md sections 1-5
302
+ 2. Visualize: TMUX-ARCHITECTURE.md sections 1-3 (diagrams)
303
+ 3. Review: Integration examples (TMUX-BEST-PRACTICES-2025-2026.md section 5)
304
+ 4. Reference: TMUX-QUICK-REFERENCE.md as needed
305
+
306
+ **For Shipwright Integration** (1-2 hours):
307
+
308
+ 1. Read: TMUX-BEST-PRACTICES-2025-2026.md section 8
309
+ 2. Review: TMUX-ARCHITECTURE.md section 3 (pipeline diagram)
310
+ 3. Copy: Multi-agent workflow template from TMUX-BEST-PRACTICES-2025-2026.md (section 5.3)
311
+ 4. Adapt: For your project layout
312
+
313
+ **For Performance Optimization** (30 min):
314
+
315
+ 1. Reference: TMUX-ARCHITECTURE.md section 11 (benchmarks)
316
+ 2. Review: TMUX-BEST-PRACTICES-2025-2026.md section 6
317
+ 3. Apply: Settings to `.tmux.conf.local`
318
+
319
+ ---
320
+
321
+ ## External Resources
322
+
323
+ ### Official Documentation
324
+
325
+ - [tmux Manual](https://man7.org/linux/man-pages/man1/tmux.1.html) — Complete reference
326
+ - [GitHub tmux/tmux](https://github.com/tmux/tmux) — Release notes, issues
327
+
328
+ ### Frameworks & Configs
329
+
330
+ - [Oh my tmux!](https://github.com/gpakosz/.tmux) — Actively maintained 2025
331
+ - [Awesome tmux](https://github.com/rothgar/awesome-tmux) — Community curated
332
+ - [tao-of-tmux](https://tao-of-tmux.readthedocs.io/) — Educational guide
333
+
334
+ ### AI Integration Plugins
335
+
336
+ - [claude-code.nvim](https://github.com/dreemanuel/claude-code.nvim) — Neovim + Claude + tmux
337
+ - [sidekick.nvim](https://github.com/folke/sidekick.nvim) — AI sidekick with tmux backend
338
+ - [avante.nvim](https://github.com/yetone/avante.nvim) — Multi-provider AI in Neovim
339
+
340
+ ### Plugin Manager & Plugins
341
+
342
+ - [TPM](https://github.com/tmux-plugins/tpm) — Plugin manager
343
+ - [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator) — Seamless navigation
344
+ - [tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) — Session persistence
345
+ - [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) — Auto-save
346
+
347
+ ### Multi-Agent Workflows
348
+
349
+ - [Shipwright](https://github.com/sethdford/shipwright) — Autonomous agent pipeline (this repo!)
350
+ - [multi-agent-workflow-kit](https://github.com/laris-co/multi-agent-workflow-kit) — Reusable patterns
351
+ - [workmux](https://github.com/raine/workmux) — git worktrees + tmux windows
352
+
353
+ ---
354
+
355
+ ## Implementation Checklist
356
+
357
+ ### Immediate Actions (< 1 hour)
358
+
359
+ - [ ] Install/upgrade tmux to 3.2+: `brew install tmux`
360
+ - [ ] Clone Oh My Tmux!: `git clone https://github.com/gpakosz/.tmux.git ~/.tmux`
361
+ - [ ] Create symlink: `ln -s -f ~/.tmux/.tmux.conf ~/.tmux.conf`
362
+ - [ ] Copy local config: `cp ~/.tmux/.tmux.conf.local ~/.tmux.conf.local`
363
+ - [ ] Install TPM: `git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm`
364
+ - [ ] Edit `.tmux.conf.local` with essential plugins
365
+ - [ ] Reload config: `tmux source-file ~/.tmux.conf`
366
+ - [ ] Test navigation: `Ctrl-h/j/k/l` (should work in vim + tmux)
367
+
368
+ ### Short-term (1-2 weeks)
369
+
370
+ - [ ] Configure status line for your workflow
371
+ - [ ] Set up vim-tmux-navigator in Neovim
372
+ - [ ] Install Neovim AI plugin (sidekick.nvim or claude-code.nvim)
373
+ - [ ] Create tmux session template for your main project
374
+ - [ ] Test multi-pane setup (editor + tests + logs)
375
+ - [ ] Benchmark escape-time with `:set timeoutlen=100` in vim
376
+
377
+ ### Medium-term (1 month)
378
+
379
+ - [ ] Adapt multi-agent workflow for Shipwright pipeline
380
+ - [ ] Set up git worktree pattern for parallel development
381
+ - [ ] Configure hooks for your workflow
382
+ - [ ] Implement floating popup bindings (fzf, git status)
383
+ - [ ] Set up automatic session resurrection
384
+ - [ ] Document your custom keybindings
385
+
386
+ ### Long-term (ongoing)
387
+
388
+ - [ ] Monitor performance with `watch ps aux | grep tmux`
389
+ - [ ] Keep Oh My Tmux! updated (pull from upstream)
390
+ - [ ] Stay current with plugin updates (TPM: `C-a U`)
391
+ - [ ] Contribute improvements back to Shipwright
392
+ - [ ] Share your configuration with team
393
+
394
+ ---
395
+
396
+ ## FAQ
397
+
398
+ **Q: Do I need to use Oh My Tmux! or can I start from scratch?**
399
+ A: Oh My Tmux! is recommended for consistency and ease of updates. If you prefer minimal configs, use the templates from TMUX-QUICK-REFERENCE.md section "Minimal Production Config".
400
+
401
+ **Q: How do I integrate with existing Vim/Neovim config?**
402
+ A: Install `vim-tmux-navigator` plugin via your plugin manager, then add the keybindings from TMUX-BEST-PRACTICES-2025-2026.md section 5.1 to `.tmux.conf.local`.
403
+
404
+ **Q: Can I use this with Shipwright's daemon?**
405
+ A: Yes! See TMUX-BEST-PRACTICES-2025-2026.md section 8 for daemon-specific configuration, including vitals monitoring and cost tracking in the status line.
406
+
407
+ **Q: What's the minimum tmux version I need?**
408
+ A: tmux 3.0+ for modern features. For floating popups (display-popup), you need 3.2+. Older versions work but lack advanced features.
409
+
410
+ **Q: How do I handle mouse conflicts with AI tools?**
411
+ A: See TMUX-ARCHITECTURE.md section 7 and TMUX-BEST-PRACTICES-2025-2026.md section 3.4. Recommendation: keep mouse OFF for AI workflows, use Shift+drag when needed.
412
+
413
+ **Q: How much does tmux actually slow down my terminal?**
414
+ A: Very little. Most overhead is terminal rendering, not tmux logic. See TMUX-ARCHITECTURE.md section 11 for benchmarks.
415
+
416
+ **Q: Should I set up tmux before or after installing Claude Code?**
417
+ A: Either order works. Recommend setting up tmux first (basic config), then install Claude Code plugins. They complement each other.
418
+
419
+ ---
420
+
421
+ ## Notes
422
+
423
+ - All configuration snippets have been tested with tmux 3.2+ on macOS and Linux
424
+ - Plugin versions reflect active maintenance as of February 2026
425
+ - Shipwright integration examples assume Shipwright 1.x+ with daemon support
426
+ - Performance metrics are typical; actual numbers vary by system and workload
427
+
428
+ ---
429
+
430
+ **Document Version**: 1.0
431
+ **Last Updated**: February 12, 2026
432
+ **Status**: Complete
433
+
434
+ For corrections, clarifications, or additions, refer to the source documents:
435
+
436
+ - TMUX-BEST-PRACTICES-2025-2026.md
437
+ - TMUX-ARCHITECTURE.md
438
+ - TMUX-QUICK-REFERENCE.md
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shipwright-cli",
3
- "version": "2.0.0",
3
+ "version": "2.1.1",
4
4
  "description": "Orchestrate autonomous Claude Code agent teams in tmux",
5
5
  "bin": {
6
6
  "shipwright": "./scripts/sw",
@@ -29,7 +29,7 @@
29
29
  ],
30
30
  "scripts": {
31
31
  "postinstall": "node scripts/postinstall.mjs",
32
- "test": "bash scripts/sw-pipeline-test.sh && bash scripts/sw-daemon-test.sh && bash scripts/sw-prep-test.sh && bash scripts/sw-fleet-test.sh && bash scripts/sw-fix-test.sh && bash scripts/sw-memory-test.sh && bash scripts/sw-session-test.sh && bash scripts/sw-init-test.sh && bash scripts/sw-tracker-test.sh && bash scripts/sw-heartbeat-test.sh && bash scripts/sw-remote-test.sh && bash scripts/sw-intelligence-test.sh && bash scripts/sw-pipeline-composer-test.sh && bash scripts/sw-self-optimize-test.sh && bash scripts/sw-predictive-test.sh && bash scripts/sw-frontier-test.sh && bash scripts/sw-connect-test.sh && bash scripts/sw-github-graphql-test.sh && bash scripts/sw-github-checks-test.sh && bash scripts/sw-github-deploy-test.sh && bash scripts/sw-docs-test.sh && bash scripts/sw-tmux-test.sh && bash scripts/sw-status-test.sh && bash scripts/sw-launchd-test.sh && bash scripts/sw-e2e-smoke-test.sh",
32
+ "test": "bash scripts/sw-activity-test.sh && bash scripts/sw-adaptive-test.sh && bash scripts/sw-adversarial-test.sh && bash scripts/sw-architecture-enforcer-test.sh && bash scripts/sw-auth-test.sh && bash scripts/sw-autonomous-test.sh && bash scripts/sw-changelog-test.sh && bash scripts/sw-checkpoint-test.sh && bash scripts/sw-ci-test.sh && bash scripts/sw-cleanup-test.sh && bash scripts/sw-code-review-test.sh && bash scripts/sw-connect-test.sh && bash scripts/sw-context-test.sh && bash scripts/sw-cost-test.sh && bash scripts/sw-daemon-test.sh && bash scripts/sw-dashboard-test.sh && bash scripts/sw-db-test.sh && bash scripts/sw-decompose-test.sh && bash scripts/sw-deps-test.sh && bash scripts/sw-developer-simulation-test.sh && bash scripts/sw-discovery-test.sh && bash scripts/sw-docs-agent-test.sh && bash scripts/sw-docs-test.sh && bash scripts/sw-doctor-test.sh && bash scripts/sw-dora-test.sh && bash scripts/sw-durable-test.sh && bash scripts/sw-e2e-orchestrator-test.sh && bash scripts/sw-eventbus-test.sh && bash scripts/sw-feedback-test.sh && bash scripts/sw-fix-test.sh && bash scripts/sw-fleet-discover-test.sh && bash scripts/sw-fleet-test.sh && bash scripts/sw-fleet-viz-test.sh && bash scripts/sw-frontier-test.sh && bash scripts/sw-github-app-test.sh && bash scripts/sw-github-checks-test.sh && bash scripts/sw-github-deploy-test.sh && bash scripts/sw-github-graphql-test.sh && bash scripts/sw-guild-test.sh && bash scripts/sw-heartbeat-test.sh && bash scripts/sw-hygiene-test.sh && bash scripts/sw-incident-test.sh && bash scripts/sw-init-test.sh && bash scripts/sw-instrument-test.sh && bash scripts/sw-intelligence-test.sh && bash scripts/sw-jira-test.sh && bash scripts/sw-launchd-test.sh && bash scripts/sw-linear-test.sh && bash scripts/sw-logs-test.sh && bash scripts/sw-loop-test.sh && bash scripts/sw-memory-test.sh && bash scripts/sw-mission-control-test.sh && bash scripts/sw-model-router-test.sh && bash scripts/sw-otel-test.sh && bash scripts/sw-oversight-test.sh && bash scripts/sw-patrol-meta-test.sh && bash scripts/sw-pipeline-composer-test.sh && bash scripts/sw-pipeline-test.sh && bash scripts/sw-pipeline-vitals-test.sh && bash scripts/sw-pm-test.sh && bash scripts/sw-pr-lifecycle-test.sh && bash scripts/sw-predictive-test.sh && bash scripts/sw-prep-test.sh && bash scripts/sw-ps-test.sh && bash scripts/sw-public-dashboard-test.sh && bash scripts/sw-quality-test.sh && bash scripts/sw-reaper-test.sh && bash scripts/sw-recruit-test.sh && bash scripts/sw-regression-test.sh && bash scripts/sw-release-manager-test.sh && bash scripts/sw-release-test.sh && bash scripts/sw-remote-test.sh && bash scripts/sw-replay-test.sh && bash scripts/sw-retro-test.sh && bash scripts/sw-scale-test.sh && bash scripts/sw-security-audit-test.sh && bash scripts/sw-self-optimize-test.sh && bash scripts/sw-session-test.sh && bash scripts/sw-setup-test.sh && bash scripts/sw-standup-test.sh && bash scripts/sw-status-test.sh && bash scripts/sw-strategic-test.sh && bash scripts/sw-stream-test.sh && bash scripts/sw-swarm-test.sh && bash scripts/sw-team-stages-test.sh && bash scripts/sw-templates-test.sh && bash scripts/sw-testgen-test.sh && bash scripts/sw-tmux-pipeline-test.sh && bash scripts/sw-tmux-test.sh && bash scripts/sw-trace-test.sh && bash scripts/sw-tracker-test.sh && bash scripts/sw-triage-test.sh && bash scripts/sw-upgrade-test.sh && bash scripts/sw-ux-test.sh && bash scripts/sw-webhook-test.sh && bash scripts/sw-widgets-test.sh && bash scripts/sw-worktree-test.sh && bash scripts/sw-e2e-smoke-test.sh",
33
33
  "test:smoke": "bash scripts/sw-e2e-smoke-test.sh",
34
34
  "test:integration": "bash scripts/sw-e2e-integration-test.sh"
35
35
  },
@@ -56,6 +56,13 @@ EVENTS_FILE="${EVENTS_FILE:-${HOME}/.shipwright/events.jsonl}"
56
56
  emit_event() {
57
57
  local event_type="$1"
58
58
  shift
59
+
60
+ # Try SQLite first (via sw-db.sh's db_add_event)
61
+ if type db_add_event &>/dev/null; then
62
+ db_add_event "$event_type" "$@" 2>/dev/null || true
63
+ fi
64
+
65
+ # Always write to JSONL (dual-write period for backward compat)
59
66
  local json_fields=""
60
67
  for kv in "$@"; do
61
68
  local key="${kv%%=*}"
package/scripts/sw CHANGED
@@ -5,7 +5,7 @@
5
5
  # ╚═══════════════════════════════════════════════════════════════════════════╝
6
6
  set -euo pipefail
7
7
 
8
- VERSION="2.0.0"
8
+ VERSION="2.1.1"
9
9
 
10
10
  # Resolve symlinks (required for npm global install where bin/ symlinks to node_modules/)
11
11
  SOURCE="${BASH_SOURCE[0]}"
@@ -55,6 +55,18 @@ check_in_tmux() {
55
55
  fi
56
56
  }
57
57
 
58
+ ensure_repo_setup() {
59
+ if [[ ! -d ".claude" ]]; then
60
+ error "This repo hasn't been set up for Shipwright."
61
+ echo ""
62
+ echo -e " ${CYAN}${BOLD}Run one of:${RESET}"
63
+ echo -e " ${DIM}shipwright setup${RESET} — guided setup (recommended)"
64
+ echo -e " ${DIM}shipwright init${RESET} — quick setup (no prompts)"
65
+ echo ""
66
+ exit 1
67
+ fi
68
+ }
69
+
58
70
  show_version() {
59
71
  echo -e "${CYAN}${BOLD}shipwright${RESET} ${DIM}v${VERSION}${RESET} — Orchestrate AI Coding Teams ${DIM}(aliases: sw, cct)${RESET}"
60
72
  }
@@ -64,8 +76,16 @@ show_help() {
64
76
  echo ""
65
77
  echo -e "${BOLD}USAGE${RESET}"
66
78
  echo -e " ${CYAN}shipwright${RESET} <command> [options] ${DIM}(also: sw, cct)${RESET}"
79
+ echo -e " ${CYAN}shipwright${RESET} <group> <subcommand> [options]"
80
+ echo ""
81
+ echo -e "${BOLD}COMMAND GROUPS${RESET} ${DIM}(new grouped syntax)${RESET}"
82
+ echo -e " ${CYAN}agent${RESET} <subcmd> ${DIM}Agent management: recruit, swarm, standup, guild, oversight${RESET}"
83
+ echo -e " ${CYAN}quality${RESET} <subcmd> ${DIM}Quality & review: code-review, security-audit, testgen, hygiene${RESET}"
84
+ echo -e " ${CYAN}observe${RESET} <subcmd> ${DIM}Observability: vitals, dora, retro, stream, activity, replay${RESET}"
85
+ echo -e " ${CYAN}release${RESET} <subcmd> ${DIM}Release & deploy: release, release-manager, changelog, deploy${RESET}"
86
+ echo -e " ${CYAN}intel${RESET} <subcmd> ${DIM}Intelligence: predict, intelligence, strategic, optimize${RESET}"
67
87
  echo ""
68
- echo -e "${BOLD}COMMANDS${RESET}"
88
+ echo -e "${BOLD}CORE COMMANDS${RESET} ${DIM}(flat aliases for backwards compat)${RESET}"
69
89
  echo -e " ${CYAN}session${RESET} [name] Create a new tmux window for a Claude team"
70
90
  echo -e " ${CYAN}status${RESET} [--json] Show dashboard of running teams and agents"
71
91
  echo -e " ${CYAN}mission-control|mc${RESET} Terminal-based pipeline mission control (drill-down, team tree, orchestration)"
@@ -232,13 +252,107 @@ show_help() {
232
252
  echo -e "${DIM}Docs: https://sethdford.github.io/shipwright | GitHub: https://github.com/sethdford/shipwright${RESET}"
233
253
  }
234
254
 
255
+ # ─── Command Group Routers ───────────────────────────────────────────────────
256
+
257
+ route_agent() {
258
+ local subcmd="${1:-help}"
259
+ shift 2>/dev/null || true
260
+ case "$subcmd" in
261
+ recruit) exec "$SCRIPT_DIR/sw-recruit.sh" "$@" ;;
262
+ swarm) exec "$SCRIPT_DIR/sw-swarm.sh" "$@" ;;
263
+ standup) exec "$SCRIPT_DIR/sw-standup.sh" "$@" ;;
264
+ guild) exec "$SCRIPT_DIR/sw-guild.sh" "$@" ;;
265
+ oversight) exec "$SCRIPT_DIR/sw-oversight.sh" "$@" ;;
266
+ help|*) echo "Usage: shipwright agent {recruit|swarm|standup|guild|oversight}"; exit 1 ;;
267
+ esac
268
+ }
269
+
270
+ route_quality() {
271
+ local subcmd="${1:-help}"
272
+ shift 2>/dev/null || true
273
+ case "$subcmd" in
274
+ code-review) exec "$SCRIPT_DIR/sw-code-review.sh" "$@" ;;
275
+ security-audit|audit) exec "$SCRIPT_DIR/sw-security-audit.sh" "$@" ;;
276
+ testgen) exec "$SCRIPT_DIR/sw-testgen.sh" "$@" ;;
277
+ hygiene) exec "$SCRIPT_DIR/sw-hygiene.sh" "$@" ;;
278
+ help|*) echo "Usage: shipwright quality {code-review|security-audit|testgen|hygiene}"; exit 1 ;;
279
+ esac
280
+ }
281
+
282
+ route_observe() {
283
+ local subcmd="${1:-help}"
284
+ shift 2>/dev/null || true
285
+ case "$subcmd" in
286
+ vitals) exec "$SCRIPT_DIR/sw-pipeline-vitals.sh" "$@" ;;
287
+ dora) exec "$SCRIPT_DIR/sw-dora.sh" "$@" ;;
288
+ retro) exec "$SCRIPT_DIR/sw-retro.sh" "$@" ;;
289
+ stream) exec "$SCRIPT_DIR/sw-stream.sh" "$@" ;;
290
+ activity) exec "$SCRIPT_DIR/sw-activity.sh" "$@" ;;
291
+ replay) exec "$SCRIPT_DIR/sw-replay.sh" "$@" ;;
292
+ status) exec "$SCRIPT_DIR/sw-status.sh" "$@" ;;
293
+ help|*) echo "Usage: shipwright observe {vitals|dora|retro|stream|activity|replay|status}"; exit 1 ;;
294
+ esac
295
+ }
296
+
297
+ route_release() {
298
+ local subcmd="${1:-help}"
299
+ shift 2>/dev/null || true
300
+ case "$subcmd" in
301
+ release) exec "$SCRIPT_DIR/sw-release.sh" "$@" ;;
302
+ release-manager) exec "$SCRIPT_DIR/sw-release-manager.sh" "$@" ;;
303
+ changelog) exec "$SCRIPT_DIR/sw-changelog.sh" "$@" ;;
304
+ deploy|deploys) exec "$SCRIPT_DIR/sw-github-deploy.sh" "$@" ;;
305
+ help|*) echo "Usage: shipwright release {release|release-manager|changelog|deploy}"; exit 1 ;;
306
+ esac
307
+ }
308
+
309
+ route_intel() {
310
+ local subcmd="${1:-help}"
311
+ shift 2>/dev/null || true
312
+ case "$subcmd" in
313
+ predict) exec "$SCRIPT_DIR/sw-predictive.sh" "$@" ;;
314
+ intelligence) exec "$SCRIPT_DIR/sw-intelligence.sh" "$@" ;;
315
+ strategic) exec "$SCRIPT_DIR/sw-strategic.sh" "$@" ;;
316
+ optimize) exec "$SCRIPT_DIR/sw-self-optimize.sh" "$@" ;;
317
+ help|*) echo "Usage: shipwright intel {predict|intelligence|strategic|optimize}"; exit 1 ;;
318
+ esac
319
+ }
320
+
321
+ # ─── Welcome message helper ──────────────────────────────────────────────────
322
+ show_welcome() {
323
+ echo ""
324
+ echo -e "${CYAN}${BOLD} Welcome to Shipwright v${VERSION}!${RESET}"
325
+ echo -e "${DIM} ════════════════════════════════════════════${RESET}"
326
+ echo ""
327
+ echo -e " It looks like this repo hasn't been set up yet."
328
+ echo ""
329
+ echo -e " ${CYAN}${BOLD}→${RESET} For guided setup (4 phases): ${DIM}shipwright setup${RESET}"
330
+ echo -e " ${CYAN}${BOLD}→${RESET} For quick setup (no prompts): ${DIM}shipwright init${RESET}"
331
+ echo -e " ${CYAN}${BOLD}→${RESET} For full help: ${DIM}shipwright help${RESET}"
332
+ echo ""
333
+ }
334
+
235
335
  # ─── Command Router ──────────────────────────────────────────────────────────
236
336
 
237
337
  main() {
238
338
  local cmd="${1:-help}"
339
+
340
+ # Special case: if no arguments and .claude/ doesn't exist, show welcome
341
+ if [[ "$#" -eq 0 && ! -d ".claude" && ! -d "$(pwd)/.claude" ]]; then
342
+ show_welcome
343
+ return 0
344
+ fi
345
+
239
346
  shift 2>/dev/null || true
240
347
 
241
348
  case "$cmd" in
349
+ # Command groups
350
+ agent) route_agent "$@" ;;
351
+ quality) route_quality "$@" ;;
352
+ observe) route_observe "$@" ;;
353
+ release) route_release "$@" ;;
354
+ intel) route_intel "$@" ;;
355
+
242
356
  session)
243
357
  check_tmux
244
358
  check_in_tmux
@@ -6,7 +6,7 @@
6
6
  set -euo pipefail
7
7
  trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
8
8
 
9
- VERSION="2.0.0"
9
+ VERSION="2.1.1"
10
10
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
11
 
12
12
  # ─── Colors (matches Seth's tmux theme) ─────────────────────────────────────
@@ -6,7 +6,7 @@
6
6
  set -euo pipefail
7
7
  trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
8
8
 
9
- VERSION="2.0.0"
9
+ VERSION="2.1.1"
10
10
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
11
 
12
12
  # ─── Colors (matches Seth's tmux theme) ─────────────────────────────────────
@@ -6,7 +6,7 @@
6
6
  set -euo pipefail
7
7
  trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
8
8
 
9
- VERSION="2.0.0"
9
+ VERSION="2.1.1"
10
10
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
11
  REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
12
12
 
@@ -6,7 +6,7 @@
6
6
  set -euo pipefail
7
7
  trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
8
8
 
9
- VERSION="2.0.0"
9
+ VERSION="2.1.1"
10
10
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
11
  REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
12
12