{"_id":"@aisounds/cli","_rev":"3-989ab822212cc3841857f662b9f971ce","name":"@aisounds/cli","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@aisounds/cli","version":"0.1.0","keywords":["aisounds","cursor","claude-code","vscode","windsurf","sound-pack","cli"],"license":"Apache-2.0","_id":"@aisounds/cli@0.1.0","maintainers":[{"name":"luisaooo","email":"luisreysn@gmail.com"}],"bin":{"aisounds":"dist/index.js"},"dist":{"shasum":"fb8f7ec347b647a8cdfced4e497452c38b2eb4d4","tarball":"https://registry.npmjs.org/@aisounds/cli/-/cli-0.1.0.tgz","fileCount":4,"integrity":"sha512-8YBaF9tbukeJ27A1JdCSYcw0UiJitgYAimnNKgXacHnR9DURGVnrCUwOrfg/EO6sZi5K+80/fJ3Yr2kUpDJl8g==","signatures":[{"sig":"MEQCIHcrzWzJWW629tS8nzQFDmrQ0j6gIZx5mcA71V/uVvyhAiAm1NaQMNZ6avRJVc1XIsiqGnzFquNpmyOuMcMQH+RbBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189335},"main":"./dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"a64a4b13898c23ca6bb927a8db9afefa49adee30","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","start":"node ./dist/index.js","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"luisaooo","email":"luisreysn@gmail.com"},"_npmVersion":"11.12.1","description":"CLI to install and manage AI Sounds packs for Cursor, VS Code, Claude Code, Windsurf and more.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ora":"^8.1.1","chalk":"^5.3.0","adm-zip":"^0.5.16","inquirer":"^12.3.0","commander":"^12.1.0","node-fetch":"^3.3.2","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^4.1.5","typescript":"^5.6.3","@types/node":"^22.10.2","@aisounds/core":"workspace:*","@types/adm-zip":"^0.5.7","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.0_1778086299638_0.3117505021900384","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aisounds/cli","version":"0.1.1","keywords":["aisounds","cursor","claude-code","vscode","windsurf","sound-pack","cli"],"license":"Apache-2.0","_id":"@aisounds/cli@0.1.1","maintainers":[{"name":"luisaooo","email":"luisreysn@gmail.com"}],"bin":{"aisounds":"dist/index.js"},"dist":{"shasum":"674a5ff4df7358da2159b8fd12432d0acd8f8997","tarball":"https://registry.npmjs.org/@aisounds/cli/-/cli-0.1.1.tgz","fileCount":4,"integrity":"sha512-sdSHgzm6KNQSl+UWOCRDZMrbxlQaqGJBimLMl9F0Nnqyz3zQH3RtjrC1uBdfF41ekcH/Nv+/Q4fZ/pGUqOGAkg==","signatures":[{"sig":"MEQCIE5xoBuL07DIOyQSSzlGLvyQyRQ18X2MZeHvH7HmIy1qAiB89KJBx8DGjkx2j6+sKHXo71bv+0wRFyA8zDMnUvJfaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189868},"main":"./dist/index.js","type":"module","engines":{"node":">=20"},"gitHead":"fde0d263610edc92b902a89b443b56b5263dad20","scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","start":"node ./dist/index.js","type-check":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"luisaooo","email":"luisreysn@gmail.com"},"_npmVersion":"11.12.1","description":"CLI to install and manage AI Sounds packs for Cursor, VS Code, Claude Code, Windsurf and more.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ora":"^8.1.1","chalk":"^5.3.0","adm-zip":"^0.5.16","inquirer":"^12.3.0","commander":"^12.1.0","node-fetch":"^3.3.2","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","vitest":"^4.1.5","typescript":"^5.6.3","@types/node":"^22.10.2","@aisounds/core":"workspace:*","@types/adm-zip":"^0.5.7","@types/inquirer":"^9.0.7"},"_npmOperationalInternal":{"tmp":"tmp/cli_0.1.1_1778152193741_0.2380970742690347","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aisounds/cli","version":"0.1.2","description":"CLI to install and manage AI Sounds packs for Cursor, VS Code, Claude Code, Windsurf and more.","license":"Apache-2.0","type":"module","bin":{"aisounds":"dist/index.js"},"main":"./dist/index.js","keywords":["aisounds","cursor","claude-code","vscode","windsurf","sound-pack","cli"],"repository":{"type":"git","url":"git+https://github.com/luisreysan/aisounds.git","directory":"apps/cli"},"homepage":"https://aisounds.dev/docs/cli","bugs":{"url":"https://github.com/luisreysan/aisounds/issues"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"scripts":{"build":"tsup","dev":"tsup --watch","start":"node ./dist/index.js","type-check":"tsc --noEmit","test":"vitest run","clean":"rm -rf dist .turbo","prepublishOnly":"npm run build"},"dependencies":{"@inquirer/prompts":"^8.4.2","adm-zip":"^0.5.16","chalk":"^5.3.0","commander":"^12.1.0","inquirer":"^12.3.0","node-fetch":"^3.3.2","ora":"^8.1.1"},"devDependencies":{"@aisounds/core":"workspace:*","@types/adm-zip":"^0.5.7","@types/inquirer":"^9.0.7","@types/node":"^22.10.2","tsup":"^8.3.5","typescript":"^5.6.3","vitest":"^4.1.5"},"gitHead":"29da05a67cb4943fdf98ea6674f5aa7aa5575673","_id":"@aisounds/cli@0.1.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-thb+nAP5XU4ZT/3FkR0ntM42wnFwkV5jYEA3S4l6IIH2LuYFP0r3orC0q4zTusPtERGOofF8K1bagIU665SuDg==","shasum":"ef286223c878a971f2b6920c90a2ea8a888ebe29","tarball":"https://registry.npmjs.org/@aisounds/cli/-/cli-0.1.2.tgz","fileCount":4,"unpackedSize":195503,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCt/dQOw+M/GqpMMANkB/kITyB8jM/z6Q9yby1P6Qm3ZAIhAMvRjq6qU/sRClRVLvaQwmFMsTIKanWbi+q0qG2iRdhJ"}]},"_npmUser":{"name":"luisaooo","email":"luisreysn@gmail.com"},"directories":{},"maintainers":[{"name":"luisaooo","email":"luisreysn@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_0.1.2_1779793171337_0.8058640627103371"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-06T16:51:39.453Z","modified":"2026-05-26T10:59:31.651Z","0.1.0":"2026-05-06T16:51:39.799Z","0.1.1":"2026-05-07T11:09:53.895Z","0.1.2":"2026-05-26T10:59:31.522Z"},"license":"Apache-2.0","keywords":["aisounds","cursor","claude-code","vscode","windsurf","sound-pack","cli"],"description":"CLI to install and manage AI Sounds packs for Cursor, VS Code, Claude Code, Windsurf and more.","maintainers":[{"name":"luisaooo","email":"luisreysn@gmail.com"}],"readme":"# aisounds\r\n\r\nCLI to install and manage [AI Sounds](https://aisounds.dev) packs for AI coding\r\ntools (Cursor, Claude Code, VS Code; Windsurf and Aider installers are coming\r\nsoon).\r\n\r\n## Commands\r\n\r\n```bash\r\nnpx @aisounds/cli install <slug>                   # install a pack (auto-detect tool)\r\nnpx @aisounds/cli install <slug> --tool cursor     # target a specific tool\r\nnpx @aisounds/cli install <slug> --tool claude-code\r\nnpx @aisounds/cli install <slug> --tool vscode\r\nnpx @aisounds/cli install <slug> --global          # install into $HOME (default: project)\r\nnpx @aisounds/cli activate <slug>                  # set the active pack (hooks play from this pack)\r\nnpx @aisounds/cli remove  <slug>                   # revert the installer, keep user hooks\r\nnpx @aisounds/cli list                             # installed packs (project + global); * = active\r\nnpx @aisounds/cli info    <slug>                   # metadata from aisounds.dev\r\nnpx @aisounds/cli sounds  <slug>                   # enable/disable individual events (interactive)\r\nnpx @aisounds/cli update                           # re-install packs whose upstream changed\r\nnpx @aisounds/cli preview <slug>                   # play every sound of a pack\r\n```\r\n\r\n## How install works\r\n\r\nEvery command pulls a zipped bundle from\r\n`${AISOUNDS_API_URL}/api/packs/<slug>/bundle`\r\n(default base URL `https://aisounds.dev`). The bundle contains an\r\n`aisounds.json` manifest validated against `@aisounds/core`\r\n`PackManifestSchema` plus every sound as `sounds/<event>.mp3`.\r\n\r\nFiles are extracted to:\r\n\r\n- `<cwd>/.aisounds/packs/<slug>` by default (per-project install)\r\n- `~/.aisounds/packs/<slug>` when `--global` is passed\r\n\r\nAfter extraction the installer for the chosen tool merges hook entries\r\ninto the tool's config file, tagging every entry it writes with an\r\n`_aisounds` marker so `aisounds remove` can revert cleanly without\r\ntouching hand-authored hooks:\r\n\r\n| Tool          | Config file                                             | Event mapping                                                                   |\r\n| ------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------- |\r\n| `cursor`      | `.cursor/hooks.json` (global: `~/.cursor/hooks.json`)   | Uses `CURSOR_EVENT_MAP` from `@aisounds/core`                                   |\r\n| `claude-code` | `.claude/settings.json` (global: `~/.claude/settings.json`) | Uses `CLAUDE_EVENT_MAP`                                                       |\r\n| `vscode`      | `.vscode/aisounds.json` + `.vscode/aisounds/*.sh`       | Uses `VSCODE_EVENT_MAP`; scripts ready for tasks/extension (see note below)    |\r\n| `windsurf`    | —                                                       | Coming soon                                                                     |\r\n| `aider`       | —                                                       | Coming soon                                                                     |\r\n\r\n**VS Code note:** GitHub Copilot does not expose stable public lifecycle hooks\r\nequivalent to Cursor's `hooks.json`. The VS Code installer writes\r\n`.vscode/aisounds.json` and play scripts you can bind to tasks or a future\r\nAI Sounds extension. Use `aisounds preview` to hear the pack immediately.\r\n\r\nThe locally installed state lives at `<scope>/.aisounds/installed.json`.\r\nThat's what powers `aisounds list`, `aisounds update`, and `aisounds activate`.\r\n\r\n## Environment\r\n\r\n| Variable           | Default               | Description                                   |\r\n| ------------------ | --------------------- | --------------------------------------------- |\r\n| `AISOUNDS_API_URL` | `https://aisounds.dev` | Base URL used to fetch bundles and metadata. |\r\n\r\n## Linux, macOS, and WSL\r\n\r\nThe CLI detects the OS (`mac`, `windows`, or `linux` for bundles on Linux—including **WSL**). Downloads and installs are the same Unix flow as on a bare-metal Linux laptop.\r\n\r\nFor **audio playback on Linux**, hooks try (in order) **PulseAudio** `paplay`, **FFmpeg** `ffplay`, then **mpv** `mpv`.\r\nThis is best-effort (no hard dependency), but you need at least one of these binaries installed.\r\nOn Debian/Ubuntu you usually want:\r\n\r\n```bash\r\nsudo apt update && sudo apt install -y pulseaudio-utils ffmpeg mpv\r\n```\r\n\r\nOn **macOS**, hooks use **`afplay`**.\r\n\r\nIf Linux audio sounds distorted/noisy, your system is likely missing `paplay`, `ffplay`, and `mpv` and is falling back to an incompatible player path. Install at least one of them, then re-run `aisounds preview <slug>`.\r\n\r\nUnder **WSL2**, audio is usually forwarded to Windows speakers (or you run a PulseAudio server in WSL). If you hear nothing, run `aisounds preview <slug>` and separately test one backend (for example `paplay /usr/share/sounds/alsa/Front_Center.wav`) — if that fails too, fix WSL/Linux audio before debugging the CLI.\r\n\r\n## Development\r\n\r\n```bash\r\npnpm --filter @aisounds/cli build       # tsup → dist/index.js\r\npnpm --filter @aisounds/cli test        # vitest run (installers + unzip)\r\npnpm --filter @aisounds/cli type-check\r\n```\r\n\r\nRun the local build directly against a dev server:\r\n\r\n```bash\r\nAISOUNDS_API_URL=http://localhost:3000 node apps/cli/dist/index.js install universfield\r\n```\r\n\r\nPublish to npm (from `apps/cli` after tests pass):\r\n\r\n```bash\r\npnpm test && npm publish\r\n```\r\n","readmeFilename":"README.md","homepage":"https://aisounds.dev/docs/cli","repository":{"type":"git","url":"git+https://github.com/luisreysan/aisounds.git","directory":"apps/cli"},"bugs":{"url":"https://github.com/luisreysan/aisounds/issues"}}