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 +85 -204
- package/assets/demo.gif +0 -0
- package/bin/cli.js +7 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# Vibe Monitor
|
|
1
|
+
# Vibe Monitor
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
AI coding assistant status monitor with pixel art character.
|
|
4
|
+
|
|
5
|
+

|
|
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
|
-
##
|
|
15
|
+
## Quick Start
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
|
-
|
|
17
|
-
npm install
|
|
18
|
+
npx vibe-monitor
|
|
18
19
|
```
|
|
19
20
|
|
|
20
|
-
##
|
|
21
|
+
## Installation
|
|
21
22
|
|
|
22
|
-
###
|
|
23
|
+
### From npm
|
|
23
24
|
|
|
24
25
|
```bash
|
|
25
|
-
npm
|
|
26
|
+
npm install -g vibe-monitor
|
|
27
|
+
vibe-monitor
|
|
26
28
|
```
|
|
27
29
|
|
|
28
|
-
###
|
|
30
|
+
### From Source
|
|
29
31
|
|
|
30
32
|
```bash
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
77
|
-
|
|
78
|
-
### POST /status
|
|
51
|
+
## Characters
|
|
79
52
|
|
|
80
|
-
|
|
53
|
+
- **clawd** (default): Orange pixel art character
|
|
54
|
+
- **kiro**: White ghost character
|
|
81
55
|
|
|
82
|
-
|
|
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
|
-
###
|
|
58
|
+
### Claude Code
|
|
95
59
|
|
|
96
|
-
|
|
60
|
+
Add to `~/.claude/settings.json`:
|
|
97
61
|
|
|
98
62
|
```json
|
|
99
63
|
{
|
|
100
|
-
"
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
82
|
+
### Kiro IDE
|
|
129
83
|
|
|
130
|
-
|
|
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
|
-
|
|
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
|
-
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
cd desktop
|
|
200
|
-
npm install
|
|
201
|
-
npm start
|
|
202
|
-
```
|
|
90
|
+
## API
|
|
203
91
|
|
|
204
|
-
###
|
|
92
|
+
### POST /status
|
|
205
93
|
|
|
206
|
-
|
|
94
|
+
Update status:
|
|
207
95
|
|
|
208
|
-
Install the audio library:
|
|
209
96
|
```bash
|
|
210
|
-
|
|
211
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
### GET /status
|
|
237
115
|
|
|
238
|
-
|
|
116
|
+
Get current status:
|
|
239
117
|
|
|
240
118
|
```bash
|
|
241
|
-
|
|
119
|
+
curl http://127.0.0.1:19280/status
|
|
242
120
|
```
|
|
243
121
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
npm run build:dmg
|
|
248
|
-
```
|
|
122
|
+
### GET /health
|
|
249
123
|
|
|
250
|
-
|
|
124
|
+
Health check:
|
|
251
125
|
|
|
252
126
|
```bash
|
|
253
|
-
|
|
127
|
+
curl http://127.0.0.1:19280/health
|
|
254
128
|
```
|
|
255
129
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
npm run build:linux
|
|
260
|
-
```
|
|
130
|
+
### POST /show
|
|
261
131
|
|
|
262
|
-
|
|
132
|
+
Show window:
|
|
263
133
|
|
|
264
134
|
```bash
|
|
265
|
-
|
|
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
|
-
|
|
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
|
package/assets/demo.gif
ADDED
|
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
|
-
|
|
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