startall 0.0.12 → 0.0.14

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 (4) hide show
  1. package/README.md +106 -45
  2. package/index.js +744 -129
  3. package/package.json +3 -2
  4. package/screenshot.png +0 -0
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # 🚀 Start
1
+ # 🚀 startall
2
2
 
3
- > An interactive terminal UI for managing multiple npm scripts in parallel
3
+ > A powerful, interactive terminal UI for managing multiple npm scripts with tmux-style panes, filtering, and real-time control
4
+
5
+ ![startall screenshot](https://github.com/bzbetty/startall/raw/main/screenshot.png)
4
6
 
5
7
  ## The Problem
6
8
 
@@ -20,47 +22,51 @@ Traditional solutions fall short:
20
22
 
21
23
  ## The Solution
22
24
 
23
- **Start** is a lightweight, interactive TUI that gives you complete control over your development processes:
24
-
25
- ```
26
- ┌─ Starting in 7s... [Enter to start now] ─────────────┐
27
- │ [x] frontend (npm run start:frontend) │
28
- │ [x] backend (npm run start:backend) │
29
- │ [ ] worker (npm run start:worker) │
30
- │ [x] db (npm run start:db) │
31
- │ │
32
- │ ↑/↓ Navigate | Space: Toggle | Enter: Start │
33
- └───────────────────────────────────────────────────────┘
34
-
35
- After starting:
36
- ┌─ Processes ──────────────┬─ Output (filter: error) ───┐
37
- │ [f] frontend ● Running │ [backend] Error: ECONNREF │
38
- │ [b] backend ✖ Crashed │ [backend] Retrying... │
39
- │ [w] worker ⏸ Stopped │ [frontend] Started on 3000 │
40
- │ [d] db ● Running │ │
41
- │ │ │
42
- │ Space: Start/Stop │ │
43
- │ r: Restart │ │
44
- │ /: Filter output │ │
45
- └──────────────────────────┴────────────────────────────┘
46
- ```
25
+ **startall** is a sophisticated TUI that combines the power of tmux with the simplicity of npm scripts, giving you complete control over your development processes with split panes, filtering, and interactive controls.
47
26
 
48
27
  ## Features
49
28
 
50
- ### Current
51
- - **Auto-discovery**: Reads all scripts from `package.json` automatically
52
- - **Smart defaults**: Remembers your last selection
53
- - **10-second countdown**: Time to review/change selections before starting
29
+ ### 🎯 Core Features
30
+ - **Auto-discovery**: Automatically reads all scripts from `package.json`
31
+ - **Smart defaults**: Remembers your last selection in `startall.json`
32
+ - **10-second countdown**: Review selections before starting
54
33
  - **Parallel execution**: Run multiple npm scripts simultaneously
55
- - **Colored output**: Each process gets its own color prefix
56
-
57
- ### 🚧 Planned
58
- - **Live status monitoring**: See which processes are running/crashed/stopped at a glance
59
- - **Interactive controls**: Start, stop, and restart individual processes with keyboard shortcuts
60
- - **Output filtering**: Search/filter logs across all processes in real-time
34
+ - **Live status monitoring**: Real-time status indicators (● running, crashed, ○ stopped)
35
+ - **Interactive controls**: Start, stop, and restart individual processes on the fly
61
36
  - **Cross-platform**: Works identically on Windows, Linux, and macOS
62
- - **Tab view**: Switch between different process outputs
63
- - **Resource monitoring**: CPU/memory usage per process
37
+
38
+ ### 🎨 Advanced UI
39
+ - **Multi-pane layout**: tmux-inspired split panes (vertical & horizontal)
40
+ - **Flexible filtering**:
41
+ - Text search across all output (`/`)
42
+ - Filter by ANSI color (red/yellow/green/blue/cyan/magenta) (`c`)
43
+ - Per-process visibility toggles (`Space` or `1-9`)
44
+ - Per-pane filters (different views in each pane)
45
+ - **Custom pane naming**: Label panes for easier identification (`n`)
46
+ - **Persistent layouts**: Your pane configuration is saved between sessions
47
+ - **Process-specific views**: Show/hide specific processes in each pane
48
+ - **Colored output**: Each process gets unique color-coded output
49
+ - **Pause/resume**: Freeze output to review logs (`p`)
50
+ - **Scrollable history**: 1000-line buffer with mouse wheel support
51
+ - **Enhanced navigation**: Home/End/PageUp/PageDown keys
52
+
53
+ ### ⚙️ Display Options
54
+ - **Toggleable line numbers**: Show/hide line numbers (`#`)
55
+ - **Timestamps**: Show/hide timestamps for each log line (`t`)
56
+ - **Quick process toggle**: Use number keys `1-9` for instant visibility control
57
+
58
+ ### 🔧 Advanced Controls
59
+ - **Quick Commands**: Assign keyboard shortcuts to run scripts on-demand
60
+ - Press assigned key to run command in a popup overlay
61
+ - Perfect for build scripts, tests, or any short-running command
62
+ - Configure in settings (`o` → Quick Commands section)
63
+ - **Interactive input mode**: Send commands to running processes via stdin (`i`)
64
+ - Perfect for dev servers that accept commands (Vite, Rust watch, etc.)
65
+ - **Settings panel**: Configure ignore/include patterns, shortcuts, and more (`o`)
66
+ - Wildcard support (`*`) for pattern matching
67
+ - Per-script visibility toggles
68
+ - **Keyboard & mouse support**: Full keyboard navigation + mouse clicking/scrolling
69
+ - **VSCode integration**: Optimized for VSCode integrated terminal
64
70
 
65
71
  ## Installation
66
72
 
@@ -90,14 +96,62 @@ That's it! The TUI will:
90
96
  - `↑`/`↓` - Navigate scripts
91
97
  - `Space` - Toggle selection
92
98
  - `Enter` - Start immediately (skip countdown)
99
+ - `o` - Open settings
93
100
  - `Ctrl+C` - Exit
94
101
 
95
- **Running Screen (planned):**
96
- - `Space` - Start/stop selected process
102
+ **Running Screen:**
103
+
104
+ *Process Control:*
105
+ - `1-9` - Quick toggle process visibility in focused pane
106
+ - `Space` - Toggle visibility of selected process
107
+ - `s` - Stop/start selected process
97
108
  - `r` - Restart selected process
98
- - `/` - Filter output
99
- - `Tab` - Switch between processes
100
- - `Ctrl+C` - Stop all and exit
109
+ - `i` - Send input to selected process (interactive mode)
110
+ - `a-z` - Run assigned quick command (if configured)
111
+
112
+ *Pane Management:*
113
+ - `\` - Open command palette
114
+ - `|` - Split pane vertically (left/right)
115
+ - `_` - Split pane horizontally (top/bottom)
116
+ - `x` - Close current pane (if >1 pane exists)
117
+ - `Tab` - Next pane
118
+ - `Shift+Tab` - Previous pane
119
+ - `n` - Name current pane
120
+
121
+ *Filtering & View:*
122
+ - `/` - Enter text filter mode
123
+ - `c` - Cycle color filter (red/yellow/green/blue/cyan/magenta/none)
124
+ - `f` - Filter to selected process only
125
+ - `Esc` - Clear filters
126
+ - `p` - Pause/resume output scrolling
127
+ - `#` - Toggle line numbers
128
+ - `t` - Toggle timestamps
129
+
130
+ *Navigation:*
131
+ - `↑`/`↓` or `k`/`j` - Select process (vim-style)
132
+ - `←`/`→` or `h`/`l` - Select process (vim-style)
133
+ - `Home` - Scroll to top of pane
134
+ - `End` - Scroll to bottom of pane
135
+ - `Page Up` - Scroll up one page
136
+ - `Page Down` - Scroll down one page
137
+ - `Mouse wheel` - Scroll output
138
+
139
+ *Other:*
140
+ - `o` - Open settings
141
+ - `q` - Quit (stops all processes)
142
+ - `Ctrl+C` - Force quit
143
+
144
+ **Settings Screen:**
145
+ - `Tab`/`←`/`→` - Switch sections (Display/Ignore/Include/Quick Commands/Script List)
146
+ - `↑`/`↓` - Navigate items
147
+ - `i` - Add new ignore pattern
148
+ - `n` - Add new include pattern
149
+ - `Space` or `Enter` - Toggle option (Display) / Assign shortcut (Quick Commands) / Toggle ignore (Script List)
150
+ - `d` or `Backspace` - Delete pattern or shortcut
151
+ - `Esc` or `q` - Return to previous screen
152
+
153
+ **Quick Commands Overlay:**
154
+ - `Esc` - Close overlay and stop command (if running)
101
155
 
102
156
  ## Why Build This?
103
157
 
@@ -119,12 +173,19 @@ Existing tools either:
119
173
  {
120
174
  "defaultSelection": ["frontend", "backend"],
121
175
  "include": ["dev:*"],
122
- "ignore": ["*:test"]
176
+ "ignore": ["*:test"],
177
+ "shortcuts": {
178
+ "b": "build",
179
+ "t": "test",
180
+ "l": "lint"
181
+ }
123
182
  }
124
183
  ```
184
+ - `defaultSelection`: scripts to auto-select on startup
125
185
  - `include` (optional): if defined, only scripts matching these patterns are shown
126
186
  - `ignore`: scripts matching these patterns are hidden
127
- - Both support wildcards (`*`)
187
+ - `shortcuts`: keyboard shortcuts for running commands on-demand
188
+ - All patterns support wildcards (`*`)
128
189
 
129
190
  ## Roadmap
130
191