vibeaudio 0.6.2 โ 0.6.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 +9 -0
- package/package.json +1 -1
- package/scripts/postinstall.js +23 -6
package/README.md
CHANGED
|
@@ -23,6 +23,7 @@ AI coding agents take 15โ45 seconds to reason, read files and write code. Star
|
|
|
23
23
|
* ๐งฎ **Pure synthesis, zero MP3s.** Every note, chord and pad is generated in code โ no audio assets, no npm dependencies, no `node-gyp`.
|
|
24
24
|
* ๐ผ **A different arrangement per project.** Your working directory seeds the progression, bass line and melody, so each repo has its own sound and keeps it.
|
|
25
25
|
* ๐ **Escalating layers.** Tier 1 (0โ15s) gentle intro โ Tier 2 (15โ45s) main groove โ Tier 3 (45s+) deep focus. You can hear how deep into the task the agent is.
|
|
26
|
+
* ๐๏ธ **Music that follows the work** ([reactive mode](#reactive-mode-opt-in), opt-in). Calm while the agent reads, fuller while it edits, busiest when it runs commands or hands work to sub-agents โ you can hear *what* it's doing, not just for how long.
|
|
26
27
|
* ๐ **Outcome-aware chimes.** Ascending on success, a soft descending minor chord on failure, and **silence on `Ctrl+C`** โ an abort is never reported as done.
|
|
27
28
|
* โ **A "your turn" chime.** When Claude Code stops to ask permission (or an MCP server asks for input), the music pauses and a rising two-note chime asks for you; it picks back up once you've answered.
|
|
28
29
|
* ๐ **Universal drop-in.** Hooks for **Claude Code, Codex, Cursor, Grok, Gemini CLI, Copilot CLI and Qwen Code**; MCP for **Claude Desktop and Antigravity**; the wrapper (`vibe <command>`) for anything else.
|
|
@@ -94,6 +95,14 @@ That puts `vibe` and `vibeaudio` on your `PATH`. Re-run the same command to upda
|
|
|
94
95
|
vibe --install-hooks
|
|
95
96
|
```
|
|
96
97
|
|
|
98
|
+
Want the music to follow what the agent is doing โ calm while it reads, busiest while it runs commands? Add `--reactive`:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
vibe --reactive --install-hooks
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Prefer a guided setup? Run `vibe` with nothing after it: a menu asks for your agent, genre and volume (press `p` to hear a genre first) and installs the hooks for you.
|
|
105
|
+
|
|
97
106
|
Now run your agent normally, with no prefix. Music starts when you submit a prompt and stops with a chime when the agent finishes. [Details below.](#-agent-hooks-no-wrapper-needed)
|
|
98
107
|
|
|
99
108
|
**Running one-shot commands?** Wrap them:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeaudio",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Procedural focus music while your AI coding tools (Claude Code, Codex, Cursor, Grok, Gemini, Copilot) think \u2014 a different arrangement per project.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"vibeaudio": "bin/vibeaudio.js",
|
package/scripts/postinstall.js
CHANGED
|
@@ -10,6 +10,21 @@
|
|
|
10
10
|
* report and the user's to wonder about, so everything is wrapped and the exit
|
|
11
11
|
* code is always 0 - a greeting is not worth a failed install.
|
|
12
12
|
*/
|
|
13
|
+
// npm 7+ hides lifecycle-script stdout unless the script fails - measured on
|
|
14
|
+
// npm 10, a global install printed only "added 1 package". The controlling
|
|
15
|
+
// terminal is outside npm's pipe, so write there; stdout remains for when
|
|
16
|
+
// there is no terminal (CI, Windows), where npm may or may not show it.
|
|
17
|
+
function say(text) {
|
|
18
|
+
const fs = require("fs");
|
|
19
|
+
try {
|
|
20
|
+
const fd = fs.openSync("/dev/tty", "w");
|
|
21
|
+
fs.writeSync(fd, text + "\n");
|
|
22
|
+
fs.closeSync(fd);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
console.log(text);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
13
28
|
try {
|
|
14
29
|
// Local installs are a dependency of something else; their user is not here
|
|
15
30
|
// and not the one who would run `vibe`. CI and Docker set this too.
|
|
@@ -18,14 +33,16 @@ try {
|
|
|
18
33
|
// install is already the narrow case - a dependency install sets this false.
|
|
19
34
|
if (process.env.npm_config_global === "true") {
|
|
20
35
|
const c = (code, text) => `\x1b[${code}m${text}\x1b[0m`;
|
|
21
|
-
|
|
22
|
-
${c("1;36", "๐ง VibeAudio installed.")}
|
|
36
|
+
say(`
|
|
37
|
+
${c("1;36", "๐ง VibeAudio installed.")} Start here:
|
|
23
38
|
|
|
24
|
-
${c("1", "vibe
|
|
25
|
-
|
|
39
|
+
${c("1", "vibe")} ${c("90", "guided setup: pick your agent, genre and volume")}
|
|
40
|
+
|
|
41
|
+
Or skip the menu:
|
|
26
42
|
|
|
27
|
-
${c("
|
|
28
|
-
${c("
|
|
43
|
+
${c("1", "vibe --install-hooks")} ${c("90", "music follows your agent's thinking โ Claude Code, Codex, Cursorโฆ")}
|
|
44
|
+
${c("1", "vibe npm test")} ${c("90", "wrap any command that exits when it's done")}
|
|
45
|
+
${c("1", "vibe --preview jazz")} ${c("90", "hear a genre first")}
|
|
29
46
|
`);
|
|
30
47
|
}
|
|
31
48
|
} catch (e) {
|