termdeck-cli 1.0.3 โ 2.0.3
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 +197 -177
- package/package.json +9 -7
- package/sample-config.json +176 -0
- package/src/agentManager.js +217 -0
- package/src/config.js +636 -427
- package/src/dashboard.js +496 -213
- package/src/devServer.js +51 -2
- package/src/index.js +103 -10
- package/src/processMonitor.js +168 -0
- package/src/projectManager.js +159 -0
- package/src/updater.js +172 -0
- package/src/util.js +23 -0
- package/bin/termdeck.js +0 -22
package/README.md
CHANGED
|
@@ -1,234 +1,254 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
# ๐ฅ๏ธ termdeck
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
each one three actions:
|
|
5
|
+
**A beautiful, terminal-based project dashboard to manage your local dev environments, services, and AI coding agents.**
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| **Dev Server** | runs `npm run dev` **inside termdeck** โ stdout/stderr stream into the scrollable log pane below (no extra terminal window), then the localhost URL is detected and opened in your default browser |
|
|
11
|
-
| **Editor** | opens a **brand new OS terminal window**, `cd`s into the project and runs `code .` |
|
|
12
|
-
| **Agent** | opens a **brand new OS terminal window**, `cd`s into the project and runs `opencode` (placeholder โ configurable) |
|
|
13
|
-
|
|
14
|
-
Everything is keyboard driven *and* mouse driven: the three CTAs are clickable
|
|
15
|
-
buttons, the project list is click-selectable, and the mouse wheel scrolls the
|
|
16
|
-
logs.
|
|
7
|
+
[](https://www.npmjs.com/package/termdeck)
|
|
8
|
+
[](https://github.com/barigalasunil/termdeck/blob/main/LICENSE)
|
|
17
9
|
|
|
18
10
|
```
|
|
19
11
|
+----------------------------------------------------------------------+
|
|
20
|
-
| termdeck
|
|
12
|
+
| termdeck 14 projects ยท ~/dev/projects โ 2 dev servers running |
|
|
21
13
|
+------------------------+---------------------------------------------+
|
|
22
14
|
| projects | selected project |
|
|
23
|
-
| โ api [
|
|
24
|
-
| โ alpha [
|
|
25
|
-
| โ blog [
|
|
26
|
-
| โ lab [
|
|
27
|
-
| |
|
|
15
|
+
| โ api [live] | alpha โ live |
|
|
16
|
+
| โ alpha [live] | ~/dev/projects/alpha main ยท 8a2f1 (2d ago)|
|
|
17
|
+
| โ blog [exp] | marketing site |
|
|
18
|
+
| โ lab [scrap] | โ dev server running (pid 8123) โ localhost |
|
|
19
|
+
| | cpu 3.2% ยท mem 214MB |
|
|
28
20
|
+------------------------+---------------------------------------------+
|
|
29
|
-
|
|
|
30
|
-
| +---------------------------------------------+
|
|
31
|
-
| | dev server logs |
|
|
32
|
-
| | 12:04:11 alpha [termdeck] $npm run dev |
|
|
33
|
-
| | 12:04:12 alpha โ Local: http://localhost:51 |
|
|
21
|
+
| dev [r] status [s] search [/] ... |
|
|
34
22
|
+------------------------+---------------------------------------------+
|
|
35
|
-
|
|
|
23
|
+
| dev server logs |
|
|
24
|
+
| 12:04:11 alpha [termdeck] $npm run dev |
|
|
25
|
+
| 12:04:12 alpha โ Local: http://localhost:5173 |
|
|
36
26
|
+----------------------------------------------------------------------+
|
|
37
27
|
```
|
|
38
28
|
|
|
39
|
-
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## โจ Features
|
|
34
|
+
|
|
35
|
+
- ๐ฏ **Centralized Dashboard** โ See every project, its status (live, exp, pend, scrap), git state (branch, last commit), current process stats, and dev server state in one place.
|
|
36
|
+
- โก **In-Terminal Dev Servers** โ Run `npm run dev` and stream the logs inside the dashboard. Auto-opens the browser. **Crash recovery** restarts a dead server up to 3 times.
|
|
37
|
+
- ๐ **One-Click External Tools** โ Launch your editor or an AI coding agent (claude, codex, opencode, freebuff, kilocode) in a new terminal window, with agent logs tailed back into the dashboard.
|
|
38
|
+
- ๐ **Live Search & Filtering** โ Type `/` to search projects by name; press `1`โ`5` to filter by status chip.
|
|
39
|
+
- ๏ธ **Mouse & Keyboard Support** โ Fully navigable with mouse clicks, Tab/Shift+Tab focus cycling, and keyboard shortcuts.
|
|
40
|
+
- ๐พ **Persistent, Self-Healing Config** โ Interactive first-run setup saves `~/.termdeck-config.json`; the `--scan` wizard merges new projects without losing your custom agent configs.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## ๐ฆ Installation
|
|
45
|
+
|
|
46
|
+
### Global Install (Recommended)
|
|
40
47
|
|
|
41
48
|
```bash
|
|
42
49
|
npm install -g termdeck
|
|
43
|
-
termdeck
|
|
44
50
|
```
|
|
45
51
|
|
|
46
|
-
|
|
47
|
-
Terminal, iTerm, โฆ). No Docker, no daemon, no background service.
|
|
52
|
+
This installs the `termdeck` command anywhere.
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
### One-Off Run
|
|
50
55
|
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
```bash
|
|
57
|
+
npx termdeck
|
|
58
|
+
```
|
|
53
59
|
|
|
54
|
-
|
|
55
|
-
folders like `~/Projects`, plus every drive letter on Windows) or type a path.
|
|
56
|
-
2. **Which folders are projects?** โ multi-select with <kbd>space</kbd>, confirm
|
|
57
|
-
with <kbd>enter</kbd>.
|
|
58
|
-
3. **Status + description per folder** โ `Experimental`, `Live`, `Working` or
|
|
59
|
-
`Pending`, plus a one line blurb.
|
|
60
|
+
> **Note:** Requires Node.js 16+ and a real terminal (macOS/Linux Terminal, Windows Terminal, iTerm, etc.). No Docker, no daemon, no background service.
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
`termdeck --setup` (existing answers are pre-filled as defaults).
|
|
62
|
+
### Auto-Updates
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
On every dashboard launch termdeck silently checks the npm registry for a newer version. When one exists it installs `termdeck@latest` in the background โ no confirmation, no restart. Offline, slow or unreachable registries are ignored: you simply keep running the installed version.
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
| <kbd>a</kbd> | open the agent in a new terminal window (or click **Agent**) |
|
|
72
|
-
| <kbd>tab</kbd>, <kbd>shift</kbd>+<kbd>tab</kbd> | move keyboard focus to the buttons โ a focused button lights up and answers to <kbd>space</kbd>/<kbd>enter</kbd> |
|
|
73
|
-
| <kbd>x</kbd> | stop the selected project's dev server |
|
|
74
|
-
| <kbd>r</kbd> | reload the config file from disk |
|
|
75
|
-
| <kbd>PgUp</kbd>/<kbd>PgDn</kbd>, wheel | scroll the log pane (pauses following, shows how many lines arrived) |
|
|
76
|
-
| <kbd>shift</kbd>+<kbd>G</kbd>, <kbd>end</kbd> | jump back to live logs |
|
|
77
|
-
| <kbd>home</kbd> | jump to the start of the log history |
|
|
78
|
-
| <kbd>q</kbd>, <kbd>ctrl</kbd>+<kbd>c</kbd> | quit โ every dev server termdeck started is stopped first |
|
|
79
|
-
|
|
80
|
-
Quitting while dev servers are running asks for a second <kbd>q</kbd> press.
|
|
81
|
-
|
|
82
|
-
## CLI
|
|
66
|
+
Disable the check on an individual run with:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
termdeck --no-update
|
|
70
|
+
```
|
|
83
71
|
|
|
72
|
+
### Manual Upgrade
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm update -g termdeck
|
|
76
|
+
# or, to force the very latest release:
|
|
77
|
+
npm install -g termdeck@latest
|
|
84
78
|
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
termdeck --no-open never auto-open the browser
|
|
90
|
-
termdeck --help
|
|
79
|
+
|
|
80
|
+
### Check the Installed Version
|
|
81
|
+
|
|
82
|
+
```bash
|
|
91
83
|
termdeck --version
|
|
84
|
+
# or inspect the global install directly
|
|
85
|
+
npm list -g termdeck
|
|
92
86
|
```
|
|
93
87
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"root": "/home/you/Projects",
|
|
103
|
-
"devCommand": "npm run dev",
|
|
104
|
-
"editorCommand": "code .",
|
|
105
|
-
"agentCommand": "opencode",
|
|
106
|
-
"openBrowser": true,
|
|
107
|
-
"projects": [
|
|
108
|
-
{
|
|
109
|
-
"name": "alpha",
|
|
110
|
-
"path": "/home/you/Projects/alpha",
|
|
111
|
-
"status": "Working",
|
|
112
|
-
"info": "marketing site with a Next.js frontend"
|
|
113
|
-
}
|
|
114
|
-
]
|
|
115
|
-
}
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## ๐๏ธ Uninstall
|
|
91
|
+
|
|
92
|
+
To completely remove termdeck from your system:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
npm uninstall -g termdeck
|
|
116
96
|
```
|
|
117
97
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
98
|
+
This removes the global package and the `termdeck` command.
|
|
99
|
+
Your project configuration at `~/.termdeck-config.json` is preserved.
|
|
100
|
+
To delete the config file as well:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# macOS/Linux
|
|
104
|
+
rm ~/.termdeck-config.json
|
|
105
|
+
|
|
106
|
+
# Windows PowerShell
|
|
107
|
+
Remove-Item ~\.termdeck-config.json
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## ๐ First Run & Configuration
|
|
113
|
+
|
|
114
|
+
On first launch termdeck detects that no `~/.termdeck-config.json` exists and runs an interactive setup wizard:
|
|
115
|
+
|
|
116
|
+
1. **Which directory holds your projects?** โ Pick from suggestions (common folders like `~/Projects`, `~/dev`, plus every drive letter on Windows) or type a path.
|
|
117
|
+
2. **Which folders are projects?** โ termdeck scans the directory and shows only folders that contain a `.git` directory or a `package.json` manifest. Multi-select with <kbd>Space</kbd>, confirm with <kbd>Enter</kbd>.
|
|
118
|
+
3. **Per-project details** โ For each project you pick, termdeck asks its status (`live`, `exp`, `pend` or `scrap`, default `exp`), the dev-server port (default `3000`) and the package manager (`npm`, `pnpm` or `yarn` โ auto-detected from `pnpm-lock.yaml` / `yarn.lock`).
|
|
119
|
+
|
|
120
|
+
Every later launch skips straight to the dashboard.
|
|
121
|
+
|
|
122
|
+
> **Tip:** You can manually edit `~/.termdeck-config.json` if needed. Press <kbd>r</kbd> in the dashboard to reload.
|
|
122
123
|
|
|
123
|
-
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## โจ๏ธ Usage & Controls
|
|
127
|
+
|
|
128
|
+
### CLI Flags
|
|
129
|
+
|
|
130
|
+
| Command | What it does |
|
|
124
131
|
| --- | --- |
|
|
125
|
-
| `
|
|
126
|
-
| `
|
|
127
|
-
| `
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
is attached to a terminal. Each stream is split into lines and pushed into the
|
|
137
|
-
blessed-contrib `log` widget in the dashboard (batched every 120 ms โ dev
|
|
138
|
-
servers can emit hundreds of lines per second). Every line is scanned for a
|
|
139
|
-
localhost URL (`http://localhost:5173/`, `0.0.0.0:3000`, `listening on port
|
|
140
|
-
4200`, โฆ); the first hit is normalised, and after a short delay the `open`
|
|
141
|
-
package launches your default browser. If no URL shows up within ~9 seconds,
|
|
142
|
-
termdeck assumes `http://localhost:<port || 3000>` and says so in the log pane.
|
|
143
|
-
Processes are spawned detached on macOS/Linux and killed as a tree
|
|
144
|
-
(`process.kill(-pid)` / `taskkill /T /F`), so a quit never leaves an orphaned
|
|
145
|
-
Vite/Next server behind.
|
|
146
|
-
|
|
147
|
-
**Editor / Agent (new terminal windows).** `cross-spawn` launches the OS
|
|
148
|
-
terminal:
|
|
149
|
-
|
|
150
|
-
- **macOS** โ `osascript -e 'tell application "Terminal" โฆ do script "cd โฆ && code ."'`
|
|
151
|
-
- **Windows** โ `wt.exe -d "<dir>" cmd /k "code ."`, falling back to
|
|
152
|
-
`cmd /c start "" /D "<dir>" cmd.exe /k "code ."` when Windows Terminal is not
|
|
153
|
-
installed
|
|
154
|
-
- **Linux** โ the first emulator found on `PATH` out of `gnome-terminal`,
|
|
155
|
-
`konsole`, `xfce4-terminal`, `kitty`, `alacritty`, `wezterm`,
|
|
156
|
-
`x-terminal-emulator`, `xterm` (each gets `--working-directory`/`-e` with
|
|
157
|
-
`bash -lc` and `exec bash` so the window stays open)
|
|
158
|
-
|
|
159
|
-
On Linux you can force a specific emulator with the `TERMDECK_TERMINAL`
|
|
160
|
-
environment variable.
|
|
161
|
-
|
|
162
|
-
## Linking locally (test before publishing)
|
|
163
|
-
|
|
164
|
-
From the project folder:
|
|
132
|
+
| `termdeck` | Launch the dashboard using the existing config (first run starts the wizard). |
|
|
133
|
+
| `termdeck --demo` | Launch with 14 sample projects (great for trying it out). |
|
|
134
|
+
| `termdeck --scan` | Re-run the interactive scanner: adds/updates projects in the config, merging with existing entries and preserving custom agent configs. |
|
|
135
|
+
| `termdeck --no-auto-restart` | Disable dev-server crash recovery for this session only. |
|
|
136
|
+
| `termdeck --reset` | Delete the config file and force a fresh first-run setup on the next launch. |
|
|
137
|
+
| `termdeck --no-update` | Disable the background auto-updater. |
|
|
138
|
+
| `termdeck --setup` | Re-run the setup wizard manually. |
|
|
139
|
+
| `termdeck --list` | Print the configured projects as a table and exit (no TUI). |
|
|
140
|
+
| `termdeck --no-open` | Do not auto-open the browser when a dev server starts. |
|
|
141
|
+
|
|
142
|
+
### Keyboard Shortcuts
|
|
165
143
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
144
|
+
| Key | Action |
|
|
145
|
+
| --- | --- |
|
|
146
|
+
| <kbd>โ</kbd> / <kbd>โ</kbd> or <kbd>j</kbd> / <kbd>k</kbd> | Navigate projects |
|
|
147
|
+
| <kbd>Tab</kbd> / <kbd>Shift</kbd>+<kbd>Tab</kbd> | Cycle focus: project list โ actions โ output |
|
|
148
|
+
| <kbd>Enter</kbd> or <kbd>Space</kbd> | Activate the focused button |
|
|
149
|
+
| <kbd>r</kbd> / <kbd>d</kbd> | Run `npm run dev` for the selected project |
|
|
150
|
+
| <kbd>e</kbd> | Open the project in your editor in a new terminal |
|
|
151
|
+
| <kbd>c</kbd> | Open Claude in a new terminal |
|
|
152
|
+
| <kbd>x</kbd> | Open Codex in a new terminal |
|
|
153
|
+
| <kbd>o</kbd> | Open opencode in a new terminal |
|
|
154
|
+
| <kbd>f</kbd> | Open freebuff in a new terminal |
|
|
155
|
+
| <kbd>k</kbd> | Open kilocode in a new terminal |
|
|
156
|
+
| <kbd>s</kbd> | Cycle the selected project's status |
|
|
157
|
+
| <kbd>/</kbd> | Search projects by name (Enter commits, Esc cancels) |
|
|
158
|
+
| <kbd>1</kbd>โ<kbd>5</kbd> | Filter by status chip: all / live / exp / pend / scrap |
|
|
159
|
+
| <kbd>Shift</kbd>+<kbd>X</kbd> | Stop the selected project's dev server |
|
|
160
|
+
| <kbd>PgUp</kbd>/<kbd>PgDn</kbd>, mouse wheel | Scroll the dev server logs (<kbd>g</kbd> to follow the tail again) |
|
|
161
|
+
| <kbd>q</kbd> | Quit (stops every dev server it started) |
|
|
170
162
|
|
|
171
|
-
|
|
172
|
-
termdeck # now runs from anywhere with your edits live
|
|
163
|
+
> **Mouse Support:** All buttons and list items are fully clickable. Use the mouse wheel to scroll logs.
|
|
173
164
|
|
|
174
|
-
|
|
175
|
-
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## โ FAQ
|
|
168
|
+
|
|
169
|
+
**How do I disable auto-updates?**
|
|
170
|
+
Pass `--no-update` when you launch the dashboard: `termdeck --no-update`. The npm registry is then never contacted and nothing is printed.
|
|
171
|
+
|
|
172
|
+
**A dev server keeps restarting โ how do I stop that?**
|
|
173
|
+
termdeck restarts a crashed dev server up to 3 times, then gives up and logs the failure. If you would rather not have any crash recovery for a session, launch with `termdeck --no-auto-restart`.
|
|
174
|
+
|
|
175
|
+
**Does my config get clobbered when I re-scan?**
|
|
176
|
+
No. `termdeck --scan` (or the setup wizard on a machine that already has a config) merges: projects you didn't touch stay exactly as they are, projects you re-select get their new status/port/package manager, and hand-written per-project overrides such as custom agent commands are kept.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## ๐ ๏ธ Development & Contributing
|
|
181
|
+
|
|
182
|
+
### Local Testing
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
git clone https://github.com/barigalasunil/termdeck.git
|
|
186
|
+
cd termdeck
|
|
187
|
+
npm install
|
|
188
|
+
npm link # symlink into global node_modules
|
|
189
|
+
termdeck # runs from anywhere with your edits live
|
|
176
190
|
```
|
|
177
191
|
|
|
178
|
-
|
|
179
|
-
code changes take effect immediately โ no republishing. If you would rather not
|
|
180
|
-
touch the global install, these work too:
|
|
192
|
+
### Running Tests
|
|
181
193
|
|
|
182
194
|
```bash
|
|
183
|
-
npm
|
|
184
|
-
|
|
185
|
-
npm exec -- termdeck # run via the local package
|
|
195
|
+
npm test # unit + end-to-end dev server tests (64/64 passing โ
)
|
|
196
|
+
npm run smoke # headless TUI smoke test
|
|
186
197
|
```
|
|
187
198
|
|
|
188
|
-
|
|
199
|
+
The smoke test drives a headless blessed screen: it verifies the dashboard renders, the dev-server CTA starts a real fixture server and streams its logs into the log pane, and that stopping the server cleans up the child process.
|
|
189
200
|
|
|
190
|
-
|
|
191
|
-
`TERMDECK_CONFIG=./scratch-config.json termdeck` (on Windows Git Bash use
|
|
192
|
-
`TERMDECK_CONFIG=./scratch-config.json node bin/termdeck.js`).
|
|
193
|
-
- `termdeck --list` prints the parsed config without starting the TUI, which is
|
|
194
|
-
the quickest way to check that setup wrote what you expected.
|
|
201
|
+
### Testing Auto-Updates
|
|
195
202
|
|
|
196
|
-
|
|
203
|
+
The updater reads its registry endpoint from `TERMDECK_REGISTRY_URL`, so you can point it at a local mock. In one terminal, serve a fake registry that always claims a newer version:
|
|
197
204
|
|
|
198
205
|
```bash
|
|
199
|
-
|
|
200
|
-
npm publish # needs an npm account; the package name must be free
|
|
206
|
+
node -e "require('http').createServer((q,s)=>{s.setHeader('content-type','application/json');s.end(JSON.stringify({version:'9.9.9'}))}).listen(4873)"
|
|
201
207
|
```
|
|
202
208
|
|
|
203
|
-
|
|
204
|
-
`bin/termdeck.js` are what make the global `termdeck` command work.
|
|
209
|
+
Then run termdeck with the mock enabled:
|
|
205
210
|
|
|
206
|
-
|
|
211
|
+
```bash
|
|
212
|
+
# macOS/Linux
|
|
213
|
+
TERMDECK_REGISTRY_URL=http://127.0.0.1:4873/termdeck/latest termdeck
|
|
207
214
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
| Browser opens too early / too late | tune the port: the URL is only opened once it appears in the output. Silence your dev server's URL banner and termdeck falls back after ~9s |
|
|
212
|
-
| "no terminal emulator found" | install one of the Linux terminals above or set `TERMDECK_TERMINAL` |
|
|
213
|
-
| `opencode` not found in the new window | change `agentCommand` to whatever you use (`cursor .`, `claude`, `aider`, โฆ) |
|
|
214
|
-
| Log colours look plain | intentional: ANSI codes are stripped so the log pane stays readable in a terminal multiplexer |
|
|
215
|
-
| Nothing appears when clicking | make sure you are *inside* the TUI window and the terminal reports mouse events (Windows Terminal, iTerm2, GNOME Terminal, VS Code all do) |
|
|
215
|
+
# Windows PowerShell
|
|
216
|
+
$env:TERMDECK_REGISTRY_URL="http://127.0.0.1:4873/termdeck/latest"; termdeck
|
|
217
|
+
```
|
|
216
218
|
|
|
217
|
-
|
|
219
|
+
> The install always targets `@latest` on the **real** npm registry. Set the mock to your current version (e.g. `{"version":"2.0.0"}`) to exercise the "already up to date, no install" path, or use `--no-update` to skip the check entirely.
|
|
218
220
|
|
|
221
|
+
### Releasing a Version
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
npm version patch # 2.0.0 -> 2.0.1 (bug fixes)
|
|
225
|
+
npm version minor # adds backwards-compatible features
|
|
226
|
+
npm version major # breaking changes
|
|
227
|
+
npm publish
|
|
219
228
|
```
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
src/util.js ANSI stripping, URL parsing, which(), killTree()
|
|
228
|
-
test/run.js npm test โ unit tests + a real npm run dev lifecycle
|
|
229
|
-
test/smoke.js npm run smoke โ headless render + real mouse click on a CTA
|
|
229
|
+
|
|
230
|
+
Publishing a higher version is what triggers the auto-update for everyone already running termdeck.
|
|
231
|
+
|
|
232
|
+
### Unlink When Done
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npm unlink -g termdeck
|
|
230
236
|
```
|
|
231
237
|
|
|
232
|
-
|
|
238
|
+
> **Tip:** Use `TERMDECK_CONFIG=./scratch-config.json termdeck` to test without touching your real config.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## ๐ License
|
|
233
243
|
|
|
234
244
|
MIT
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
<div align="center">
|
|
249
|
+
|
|
250
|
+
**Built with โค๏ธ by [Sunil](https://github.com/barigalasunil)**
|
|
251
|
+
|
|
252
|
+
[GitHub](https://github.com/barigalasunil/termdeck) ยท [npm](https://www.npmjs.com/package/termdeck)
|
|
253
|
+
|
|
254
|
+
</div>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "termdeck-cli",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.3",
|
|
4
|
+
"description": "Terminal project control: a multi-pane TUI to manage your local dev projects โ dev servers, git state, process stats, and AI coding agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
7
7
|
"tui",
|
|
@@ -9,23 +9,24 @@
|
|
|
9
9
|
"blessed",
|
|
10
10
|
"blessed-contrib",
|
|
11
11
|
"dev-server",
|
|
12
|
-
"projects"
|
|
12
|
+
"projects",
|
|
13
|
+
"agents"
|
|
13
14
|
],
|
|
14
15
|
"license": "MIT",
|
|
15
16
|
"main": "src/index.js",
|
|
16
17
|
"bin": {
|
|
17
|
-
"termdeck": "
|
|
18
|
+
"termdeck": "src/index.js"
|
|
18
19
|
},
|
|
19
20
|
"files": [
|
|
20
|
-
"bin",
|
|
21
21
|
"src",
|
|
22
|
+
"sample-config.json",
|
|
22
23
|
"README.md"
|
|
23
24
|
],
|
|
24
25
|
"engines": {
|
|
25
26
|
"node": ">=16"
|
|
26
27
|
},
|
|
27
28
|
"scripts": {
|
|
28
|
-
"start": "node
|
|
29
|
+
"start": "node src/index.js",
|
|
29
30
|
"test": "node test/run.js",
|
|
30
31
|
"smoke": "node test/smoke.js"
|
|
31
32
|
},
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
"blessed-contrib": "^4.11.0",
|
|
35
36
|
"cross-spawn": "^7.0.3",
|
|
36
37
|
"inquirer": "^8.2.6",
|
|
37
|
-
"open": "^8.4.2"
|
|
38
|
+
"open": "^8.4.2",
|
|
39
|
+
"pidusage": "^3.0.2"
|
|
38
40
|
}
|
|
39
41
|
}
|