vibe-monitor 1.0.0 → 1.0.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.
package/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # Vibe Monitor Desktop App
1
+ # Vibe Monitor
2
2
 
3
- Electron-based desktop app for real-time monitoring of AI coding assistants (Claude Code, Kiro IDE/CLI) with pixel art character.
3
+ AI coding assistant status monitor with pixel art character.
4
+
5
+ ![Demo](assets/demo.gif)
4
6
 
5
7
  ## Features
6
8
 
@@ -10,259 +12,127 @@ Electron-based desktop app for real-time monitoring of AI coding assistants (Cla
10
12
  - **HTTP API**: Easy integration with IDE hooks (Claude Code, Kiro)
11
13
  - **Draggable**: Move the window to any position
12
14
 
13
- ## Installation
15
+ ## Quick Start
14
16
 
15
17
  ```bash
16
- cd desktop
17
- npm install
18
+ npx vibe-monitor
18
19
  ```
19
20
 
20
- ## Usage
21
+ ## Installation
21
22
 
22
- ### Run the App
23
+ ### From npm
23
24
 
24
25
  ```bash
25
- npm start
26
+ npm install -g vibe-monitor
27
+ vibe-monitor
26
28
  ```
27
29
 
28
- ### Update Status via HTTP API
30
+ ### From Source
29
31
 
30
32
  ```bash
31
- # Change to working state
32
- curl -X POST http://127.0.0.1:19280/status \
33
- -H "Content-Type: application/json" \
34
- -d '{"state":"working","tool":"Bash","project":"my-project","model":"opus","memory":"45%"}'
35
-
36
- # Check current status
37
- curl http://127.0.0.1:19280/status
38
- ```
39
-
40
- ### IDE Hooks Integration
41
-
42
- #### Claude Code
43
-
44
- Uses `hooks/vibe-monitor.sh` - see [main README](../README.md#claude-code-setup) for setup.
45
-
46
- #### Kiro IDE
47
-
48
- Copy hook files to `~/.kiro/hooks/` (or your project's `.kiro/hooks/` folder):
49
-
50
- ```bash
51
- # Global installation (recommended)
52
- mkdir -p ~/.kiro/hooks
53
- cp config/kiro/hooks/*.kiro.hook ~/.kiro/hooks/
54
-
55
- # Or project-level installation
56
- # cp config/kiro/hooks/*.kiro.hook your-project/.kiro/hooks/
33
+ git clone https://github.com/nalbam/vibe-monitor.git
34
+ cd vibe-monitor/desktop
35
+ npm install
36
+ npm start
57
37
  ```
58
38
 
59
- **Hook files:**
60
- - `vibe-monitor-agent-spawn.kiro.hook` - Sends `start` on `agentSpawn`
61
- - `vibe-monitor-prompt-submit.kiro.hook` - Sends `working` on `promptSubmit`
62
- - `vibe-monitor-pre-tool-use.kiro.hook` - Sends `working` on `preToolUse`
63
- - `vibe-monitor-agent-stop.kiro.hook` - Sends `idle` on `agentStop`
64
-
65
- ## Supported IDEs
66
-
67
- | IDE | Hook System | Status |
68
- |-----|-------------|--------|
69
- | **Claude Code** | Shell hooks via `settings.json` | ✅ Supported |
70
- | **Kiro IDE** | `.kiro.hook` files in `.kiro/hooks/` | ✅ Supported |
71
-
72
- ## States & Characters
39
+ ## States
73
40
 
74
- See [main README](../README.md#state-display) for details on states, animations, and characters.
41
+ | State | Color | Description |
42
+ |-------|-------|-------------|
43
+ | `start` | Cyan | Session begins |
44
+ | `idle` | Green | Waiting for input |
45
+ | `thinking` | Purple | Processing prompt |
46
+ | `working` | Blue | Tool executing |
47
+ | `notification` | Yellow | User input needed |
48
+ | `done` | Green | Tool completed |
49
+ | `sleep` | Navy | 10min inactivity |
75
50
 
76
- ## API
77
-
78
- ### POST /status
51
+ ## Characters
79
52
 
80
- Update status
53
+ - **clawd** (default): Orange pixel art character
54
+ - **kiro**: White ghost character
81
55
 
82
- ```json
83
- {
84
- "state": "working",
85
- "event": "PreToolUse",
86
- "tool": "Bash",
87
- "project": "vibe-monitor",
88
- "model": "opus",
89
- "memory": "45%",
90
- "character": "clawd"
91
- }
92
- ```
56
+ ## IDE Integration
93
57
 
94
- ### GET /status
58
+ ### Claude Code
95
59
 
96
- Get current status
60
+ Add to `~/.claude/settings.json`:
97
61
 
98
62
  ```json
99
63
  {
100
- "state": "working",
101
- "project": "vibe-monitor",
102
- "tool": "Bash",
103
- "model": "opus",
104
- "memory": "45%"
64
+ "hooks": {
65
+ "PreToolUse": [
66
+ {
67
+ "matcher": "",
68
+ "hooks": [
69
+ {
70
+ "type": "command",
71
+ "command": "curl -s -X POST http://127.0.0.1:19280/status -H 'Content-Type: application/json' -d \"$(jq -nc --arg state working --arg event PreToolUse --arg tool \"$CLAUDE_TOOL_NAME\" --arg project \"$(basename $PWD)\" '{state: $state, event: $event, tool: $tool, project: $project}')\" > /dev/null 2>&1 || true"
72
+ }
73
+ ]
74
+ }
75
+ ]
76
+ }
105
77
  }
106
78
  ```
107
79
 
108
- ### GET /health
109
-
110
- Health check endpoint
111
-
112
- ```json
113
- {
114
- "status": "ok"
115
- }
116
- ```
117
-
118
- ### POST /show
119
-
120
- Show window and position to top-right corner
121
-
122
- ```json
123
- {
124
- "success": true
125
- }
126
- ```
80
+ See [GitHub repository](https://github.com/nalbam/vibe-monitor) for full hook configuration.
127
81
 
128
- ### GET /debug
82
+ ### Kiro IDE
129
83
 
130
- Get display and window debug information (useful for troubleshooting positioning issues)
131
-
132
- ```json
133
- {
134
- "primaryDisplay": {
135
- "bounds": { "x": 0, "y": 0, "width": 1920, "height": 1080 },
136
- "workArea": { "x": 0, "y": 0, "width": 1920, "height": 1040 },
137
- "scaleFactor": 1
138
- },
139
- "window": { "x": 1748, "y": 0, "width": 172, "height": 348 },
140
- "platform": "darwin"
141
- }
142
- ```
143
-
144
- ## WSL (Windows Subsystem for Linux)
145
-
146
- Running the Electron app on WSL requires WSLg (Windows 11) and additional dependencies.
147
-
148
- ### Prerequisites
149
-
150
- 1. **Windows 11** with WSLg support
151
- 2. **Update WSL**:
152
- ```bash
153
- wsl --update
154
- ```
155
-
156
- ### Install Dependencies
157
-
158
- Electron requires several system libraries that are not installed by default on WSL:
84
+ Copy hook files from the repository to `~/.kiro/hooks/`:
159
85
 
160
86
  ```bash
161
- # Ubuntu 24.04 (Noble) or later
162
- sudo apt-get update && sudo apt-get install -y \
163
- libasound2t64 \
164
- libatk1.0-0 \
165
- libatk-bridge2.0-0 \
166
- libcups2 \
167
- libdrm2 \
168
- libgbm1 \
169
- libgtk-3-0 \
170
- libnss3 \
171
- libxcomposite1 \
172
- libxdamage1 \
173
- libxfixes3 \
174
- libxkbcommon0 \
175
- libxrandr2 \
176
- libxshmfence1 \
177
- libglu1-mesa
178
-
179
- # Ubuntu 22.04 (Jammy) or earlier
180
- sudo apt-get update && sudo apt-get install -y \
181
- libasound2 \
182
- libatk1.0-0 \
183
- libatk-bridge2.0-0 \
184
- libcups2 \
185
- libdrm2 \
186
- libgbm1 \
187
- libgtk-3-0 \
188
- libnss3 \
189
- libxcomposite1 \
190
- libxdamage1 \
191
- libxfixes3 \
192
- libxkbcommon0 \
193
- libxrandr2
87
+ curl -sL https://raw.githubusercontent.com/nalbam/vibe-monitor/main/config/kiro/hooks/vibe-monitor-pre-tool-use.kiro.hook -o ~/.kiro/hooks/vibe-monitor-pre-tool-use.kiro.hook
194
88
  ```
195
89
 
196
- ### Run
197
-
198
- ```bash
199
- cd desktop
200
- npm install
201
- npm start
202
- ```
90
+ ## API
203
91
 
204
- ### Troubleshooting
92
+ ### POST /status
205
93
 
206
- **Error: `libasound.so.2: cannot open shared object file`**
94
+ Update status:
207
95
 
208
- Install the audio library:
209
96
  ```bash
210
- # Ubuntu 24.04+
211
- sudo apt-get install -y libasound2t64
212
-
213
- # Ubuntu 22.04 or earlier
214
- sudo apt-get install -y libasound2
215
- ```
216
-
217
- **GPU process errors (can be ignored)**
218
-
219
- WSL may show GPU-related warnings like:
220
- ```
221
- Exiting GPU process due to errors during initialization
97
+ curl -X POST http://127.0.0.1:19280/status \
98
+ -H "Content-Type: application/json" \
99
+ -d '{"state":"working","tool":"Bash","project":"my-project"}'
222
100
  ```
223
- These warnings don't affect app functionality.
224
-
225
- **Window not appearing**
226
101
 
227
- Ensure WSLg is working:
228
- ```bash
229
- # Test with a simple GUI app
230
- sudo apt-get install -y x11-apps
231
- xclock
232
- ```
102
+ **Fields:**
233
103
 
234
- If xclock doesn't appear, WSLg may need to be enabled or updated.
104
+ | Field | Description |
105
+ |-------|-------------|
106
+ | `state` | `start`, `idle`, `thinking`, `working`, `notification`, `done`, `sleep` |
107
+ | `event` | `PreToolUse`, `PostToolUse`, etc. |
108
+ | `tool` | Tool name (e.g., `Bash`, `Read`, `Edit`) |
109
+ | `project` | Project name |
110
+ | `model` | Model name (e.g., `opus`, `sonnet`) |
111
+ | `memory` | Memory usage (e.g., `45%`) |
112
+ | `character` | `clawd` or `kiro` |
235
113
 
236
- ## Build
114
+ ### GET /status
237
115
 
238
- Build for macOS:
116
+ Get current status:
239
117
 
240
118
  ```bash
241
- npm run build:mac
119
+ curl http://127.0.0.1:19280/status
242
120
  ```
243
121
 
244
- Build DMG only:
245
-
246
- ```bash
247
- npm run build:dmg
248
- ```
122
+ ### GET /health
249
123
 
250
- Build for Windows:
124
+ Health check:
251
125
 
252
126
  ```bash
253
- npm run build:win
127
+ curl http://127.0.0.1:19280/health
254
128
  ```
255
129
 
256
- Build for Linux:
257
-
258
- ```bash
259
- npm run build:linux
260
- ```
130
+ ### POST /show
261
131
 
262
- Build for all platforms:
132
+ Show window:
263
133
 
264
134
  ```bash
265
- npm run build:all
135
+ curl -X POST http://127.0.0.1:19280/show
266
136
  ```
267
137
 
268
138
  ## Tray Menu
@@ -278,4 +148,15 @@ Click the system tray icon to:
278
148
 
279
149
  Default HTTP server port: `19280`
280
150
 
281
- (Can be changed via `HTTP_PORT` constant in main.js)
151
+ ## Build
152
+
153
+ ```bash
154
+ npm run build:mac # macOS
155
+ npm run build:win # Windows
156
+ npm run build:linux # Linux
157
+ npm run build:all # All platforms
158
+ ```
159
+
160
+ ## License
161
+
162
+ MIT
Binary file
package/bin/cli.js CHANGED
@@ -6,6 +6,11 @@ const path = require('path');
6
6
  const electron = require('electron');
7
7
  const appPath = path.join(__dirname, '..');
8
8
 
9
- spawn(electron, [appPath], {
10
- stdio: 'inherit'
9
+ const child = spawn(electron, [appPath], {
10
+ detached: true,
11
+ stdio: 'ignore'
11
12
  });
13
+
14
+ child.unref();
15
+
16
+ console.log('Vibe Monitor started (http://127.0.0.1:19280)');
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vibe-monitor",
3
- "version": "1.0.0",
4
- "description": "Claude Code Status Monitor - Frameless Desktop App",
3
+ "version": "1.0.1",
4
+ "description": "AI coding assistant status monitor",
5
5
  "main": "main.js",
6
6
  "bin": {
7
7
  "vibe-monitor": "./bin/cli.js"