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.
- package/README.md +106 -45
- package/index.js +744 -129
- package/package.json +3 -2
- package/screenshot.png +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# 🚀
|
|
1
|
+
# 🚀 startall
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> A powerful, interactive terminal UI for managing multiple npm scripts with tmux-style panes, filtering, and real-time control
|
|
4
|
+
|
|
5
|
+

|
|
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
|
-
**
|
|
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
|
-
###
|
|
51
|
-
- **Auto-discovery**:
|
|
52
|
-
- **Smart defaults**: Remembers your last selection
|
|
53
|
-
- **10-second countdown**:
|
|
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
|
-
- **
|
|
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
|
-
|
|
63
|
-
|
|
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
|
|
96
|
-
|
|
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
|
-
-
|
|
99
|
-
- `
|
|
100
|
-
|
|
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
|
-
-
|
|
187
|
+
- `shortcuts`: keyboard shortcuts for running commands on-demand
|
|
188
|
+
- All patterns support wildcards (`*`)
|
|
128
189
|
|
|
129
190
|
## Roadmap
|
|
130
191
|
|