startall 0.0.3 → 0.0.9

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.
@@ -1,23 +1,59 @@
1
- name: Publish to npm
1
+ name: Release and Publish
2
2
 
3
3
  on:
4
- release:
5
- types: [published]
4
+ push:
5
+ branches:
6
+ - main
6
7
 
7
8
  jobs:
8
- publish:
9
+ release-and-publish:
9
10
  runs-on: ubuntu-latest
10
11
  permissions:
11
- contents: read
12
+ contents: write
12
13
  id-token: write
13
14
  steps:
14
15
  - uses: actions/checkout@v4
16
+ with:
17
+ fetch-depth: 0
18
+ token: ${{ secrets.GITHUB_TOKEN }}
15
19
 
16
20
  - uses: actions/setup-node@v4
17
21
  with:
18
22
  node-version: '20'
19
23
  registry-url: 'https://registry.npmjs.org'
20
24
 
25
+ - name: Upgrade npm to latest
26
+ run: npm install -g npm@latest
27
+
21
28
  - run: npm ci
22
29
 
23
- - run: npm publish --access public --provenance
30
+ - name: Configure Git
31
+ run: |
32
+ git config user.name "github-actions[bot]"
33
+ git config user.email "github-actions[bot]@users.noreply.github.com"
34
+
35
+ - name: Bump version
36
+ run: |
37
+ npm version patch -m "chore: bump version to %s [skip ci]"
38
+
39
+ - name: Push changes
40
+ run: git push --follow-tags
41
+
42
+ - name: Get version
43
+ id: version
44
+ run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
45
+
46
+ - name: Create GitHub Release
47
+ run: |
48
+ gh release create "v${{ steps.version.outputs.version }}" \
49
+ --title "v${{ steps.version.outputs.version }}" \
50
+ --notes "Automated release for version ${{ steps.version.outputs.version }}" \
51
+ --latest
52
+ env:
53
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54
+
55
+ - name: Check npm version
56
+ run: npm --version
57
+
58
+ - name: Publish to npm
59
+ run: npm publish --provenance --access public
package/README.md CHANGED
@@ -1,67 +1,67 @@
1
- # 🚀 Start
2
-
3
- > An interactive terminal UI for managing multiple npm scripts in parallel
4
-
5
- ## The Problem
6
-
7
- Running multiple npm scripts during development is tedious:
8
-
9
- - **Repetitive**: Manually typing `npm run frontend`, `npm run backend`, etc. every time
10
- - **Cluttered terminal**: Multiple terminal tabs/windows get messy fast
11
- - **No visibility**: Hard to tell if one process crashed while others are running
12
- - **No control**: Can't easily restart a single service without restarting everything
13
- - **No filtering**: Output from 4+ processes becomes unreadable noise
14
-
15
- Traditional solutions fall short:
16
- - `npm-run-all`/`concurrently`: No interactivity, just dumps output
17
- - PM2: Overkill for dev workflows, designed for production
18
- - Overmind: Amazing UX but requires tmux (not Windows-friendly)
19
- - Manual shell scripts: No real-time status or control
20
-
21
- ## The Solution
22
-
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
- ```
47
-
48
- ## Features
49
-
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
54
- - **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
61
- - **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
64
-
1
+ # 🚀 Start
2
+
3
+ > An interactive terminal UI for managing multiple npm scripts in parallel
4
+
5
+ ## The Problem
6
+
7
+ Running multiple npm scripts during development is tedious:
8
+
9
+ - **Repetitive**: Manually typing `npm run frontend`, `npm run backend`, etc. every time
10
+ - **Cluttered terminal**: Multiple terminal tabs/windows get messy fast
11
+ - **No visibility**: Hard to tell if one process crashed while others are running
12
+ - **No control**: Can't easily restart a single service without restarting everything
13
+ - **No filtering**: Output from 4+ processes becomes unreadable noise
14
+
15
+ Traditional solutions fall short:
16
+ - `npm-run-all`/`concurrently`: No interactivity, just dumps output
17
+ - PM2: Overkill for dev workflows, designed for production
18
+ - Overmind: Amazing UX but requires tmux (not Windows-friendly)
19
+ - Manual shell scripts: No real-time status or control
20
+
21
+ ## The Solution
22
+
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
+ ```
47
+
48
+ ## Features
49
+
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
54
+ - **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
61
+ - **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
64
+
65
65
  ## Installation
66
66
 
67
67
  ```bash
@@ -76,44 +76,44 @@ In any project with a `package.json`:
76
76
  startall # uses startall.json if present
77
77
  startall myconfig.json # uses custom config file
78
78
  ```
79
-
80
- That's it! The TUI will:
81
-
82
- 1. Show all available npm scripts
83
- 2. Pre-select your last choices
84
- 3. Give you 10 seconds to adjust
85
- 4. Start all selected scripts in parallel
86
-
87
- ### Keyboard Shortcuts
88
-
89
- **Selection Screen:**
90
- - `↑`/`↓` - Navigate scripts
91
- - `Space` - Toggle selection
92
- - `Enter` - Start immediately (skip countdown)
93
- - `Ctrl+C` - Exit
94
-
95
- **Running Screen (planned):**
96
- - `Space` - Start/stop selected process
97
- - `r` - Restart selected process
98
- - `/` - Filter output
99
- - `Tab` - Switch between processes
100
- - `Ctrl+C` - Stop all and exit
101
-
102
- ## Why Build This?
103
-
104
- Existing tools either:
105
- - Lack interactivity (concurrently, npm-run-all)
106
- - Are production-focused (PM2, forever)
107
- - Don't support Windows (Overmind, tmux-based tools)
108
- - Are too heavyweight for simple dev workflows
109
-
110
- **Start** is purpose-built for the development workflow: lightweight, cross-platform, and interactive.
111
-
112
- ## Technical Details
113
-
114
- - Built with [OpenTUI](https://github.com/openmux/opentui) for a modern terminal UI
115
- - Uses standard Node.js `child_process` (no PTY required = Windows support)
116
- - Parses `package.json` scripts automatically
79
+
80
+ That's it! The TUI will:
81
+
82
+ 1. Show all available npm scripts
83
+ 2. Pre-select your last choices
84
+ 3. Give you 10 seconds to adjust
85
+ 4. Start all selected scripts in parallel
86
+
87
+ ### Keyboard Shortcuts
88
+
89
+ **Selection Screen:**
90
+ - `↑`/`↓` - Navigate scripts
91
+ - `Space` - Toggle selection
92
+ - `Enter` - Start immediately (skip countdown)
93
+ - `Ctrl+C` - Exit
94
+
95
+ **Running Screen (planned):**
96
+ - `Space` - Start/stop selected process
97
+ - `r` - Restart selected process
98
+ - `/` - Filter output
99
+ - `Tab` - Switch between processes
100
+ - `Ctrl+C` - Stop all and exit
101
+
102
+ ## Why Build This?
103
+
104
+ Existing tools either:
105
+ - Lack interactivity (concurrently, npm-run-all)
106
+ - Are production-focused (PM2, forever)
107
+ - Don't support Windows (Overmind, tmux-based tools)
108
+ - Are too heavyweight for simple dev workflows
109
+
110
+ **Start** is purpose-built for the development workflow: lightweight, cross-platform, and interactive.
111
+
112
+ ## Technical Details
113
+
114
+ - Built with [OpenTUI](https://github.com/openmux/opentui) for a modern terminal UI
115
+ - Uses standard Node.js `child_process` (no PTY required = Windows support)
116
+ - Parses `package.json` scripts automatically
117
117
  - Saves configuration in `startall.json`:
118
118
  ```json
119
119
  {
@@ -124,23 +124,23 @@ Existing tools either:
124
124
  ```
125
125
  - `include` (optional): if defined, only scripts matching these patterns are shown
126
126
  - `ignore`: scripts matching these patterns are hidden
127
- - Both support wildcards (`*`)
128
-
129
- ## Roadmap
130
-
131
- - [ ] Interactive process control (start/stop/restart)
132
- - [ ] Real-time status indicators
133
- - [ ] Output filtering and search
134
- - [ ] Tab view for individual process logs
135
- - [ ] Resource monitoring
136
- - [ ] Custom color schemes
137
- - [ ] Configuration file support
138
- - [ ] Watch mode (restart on file changes)
139
-
140
- ## Contributing
141
-
142
- PRs welcome! This is a tool built by developers, for developers.
143
-
144
- ## License
145
-
146
- MIT
127
+ - Both support wildcards (`*`)
128
+
129
+ ## Roadmap
130
+
131
+ - [ ] Interactive process control (start/stop/restart)
132
+ - [ ] Real-time status indicators
133
+ - [ ] Output filtering and search
134
+ - [ ] Tab view for individual process logs
135
+ - [ ] Resource monitoring
136
+ - [ ] Custom color schemes
137
+ - [ ] Configuration file support
138
+ - [ ] Watch mode (restart on file changes)
139
+
140
+ ## Contributing
141
+
142
+ PRs welcome! This is a tool built by developers, for developers.
143
+
144
+ ## License
145
+
146
+ MIT