vibe-monitor 1.0.3 → 1.0.5

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  AI coding assistant status monitor with pixel art character.
4
4
 
5
- ![Demo](assets/demo.gif)
5
+ ![Demo](https://raw.githubusercontent.com/nalbam/vibe-monitor/main/desktop/assets/demo.gif)
6
6
 
7
7
  ## Features
8
8
 
@@ -15,7 +15,7 @@ AI coding assistant status monitor with pixel art character.
15
15
  ## Quick Start
16
16
 
17
17
  ```bash
18
- npx vibe-monitor
18
+ npx vibe-monitor@latest
19
19
  ```
20
20
 
21
21
  ### Stop
@@ -67,27 +67,54 @@ npm start
67
67
 
68
68
  ### Claude Code
69
69
 
70
- Add to `~/.claude/settings.json`:
70
+ Claude Code uses **hooks** and **statusline** to send data:
71
+
72
+ | Source | Data Provided | Description |
73
+ |--------|---------------|-------------|
74
+ | **Hook** | state, tool, project | Triggered on Claude Code events |
75
+ | **Statusline** | model, memory | Continuously updated status bar |
76
+
77
+ #### 1. Copy scripts
78
+
79
+ ```bash
80
+ # Create hooks directory
81
+ mkdir -p ~/.claude/hooks
82
+
83
+ # Copy hook script (provides state, tool, project)
84
+ cp config/claude/hooks/vibe-monitor.sh ~/.claude/hooks/
85
+ chmod +x ~/.claude/hooks/vibe-monitor.sh
86
+
87
+ # Copy statusline script (provides model, memory)
88
+ cp config/claude/statusline.sh ~/.claude/statusline.sh
89
+ chmod +x ~/.claude/statusline.sh
90
+ ```
91
+
92
+ #### 2. Add to `~/.claude/settings.json`
71
93
 
72
94
  ```json
73
95
  {
74
96
  "hooks": {
75
- "PreToolUse": [
76
- {
77
- "matcher": "",
78
- "hooks": [
79
- {
80
- "type": "command",
81
- "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"
82
- }
83
- ]
84
- }
85
- ]
97
+ "SessionStart": [{ "command": "~/.claude/hooks/vibe-monitor.sh" }],
98
+ "UserPromptSubmit": [{ "command": "~/.claude/hooks/vibe-monitor.sh" }],
99
+ "PreToolUse": [{ "command": "~/.claude/hooks/vibe-monitor.sh" }],
100
+ "Notification": [{ "command": "~/.claude/hooks/vibe-monitor.sh" }],
101
+ "Stop": [{ "command": "~/.claude/hooks/vibe-monitor.sh" }]
102
+ },
103
+ "statusLine": {
104
+ "type": "command",
105
+ "command": "~/.claude/statusline.sh"
86
106
  }
87
107
  }
88
108
  ```
89
109
 
90
- See [GitHub repository](https://github.com/nalbam/vibe-monitor) for full hook configuration.
110
+ #### 3. Configure environment
111
+
112
+ ```bash
113
+ cp config/claude/.env.sample ~/.claude/.env.local
114
+ # Edit and set VIBE_MONITOR_URL="http://127.0.0.1:19280"
115
+ ```
116
+
117
+ See [GitHub repository](https://github.com/nalbam/vibe-monitor) for full configuration.
91
118
 
92
119
  ### Kiro IDE
93
120
 
package/index.html CHANGED
@@ -29,7 +29,7 @@
29
29
  <div class="dot dim"></div>
30
30
  <div class="dot dim"></div>
31
31
  </div>
32
- <div class="info-text project-text">
32
+ <div class="info-text project-text" id="project-line">
33
33
  <span class="info-label"><span class="emoji-icon">📂 </span><canvas class="pixel-icon" id="icon-project" width="8" height="8"></canvas></span>
34
34
  <span class="info-value" id="project-value">-</span>
35
35
  </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibe-monitor",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "AI coding assistant status monitor",
5
5
  "main": "main.js",
6
6
  "bin": {
package/renderer.js CHANGED
@@ -41,6 +41,7 @@ function initDomCache() {
41
41
  display: document.getElementById('display'),
42
42
  statusText: document.getElementById('status-text'),
43
43
  loadingDots: document.getElementById('loading-dots'),
44
+ projectLine: document.getElementById('project-line'),
44
45
  toolLine: document.getElementById('tool-line'),
45
46
  modelLine: document.getElementById('model-line'),
46
47
  memoryLine: document.getElementById('memory-line'),
@@ -133,7 +134,9 @@ function updateDisplay() {
133
134
  d.modelValue.textContent = displayModel;
134
135
  d.memoryValue.textContent = currentMemory;
135
136
 
136
- // Update model/memory visibility (hide memory on start state)
137
+ // Update project/model/memory visibility (hide memory on start state)
138
+ const showProject = currentProject && currentProject !== '-';
139
+ d.projectLine.style.display = showProject ? 'block' : 'none';
137
140
  d.modelLine.style.display = currentModel && currentModel !== '-' ? 'block' : 'none';
138
141
  const showMemory = currentState !== 'start' && currentMemory && currentMemory !== '-';
139
142
  d.memoryLine.style.display = showMemory ? 'block' : 'none';