Open source community platform where developers upload, share, vote, remix and install sound packs for AI coding tools (Cursor, VS Code + Copilot, Claude Code, Windsurf, Aider, etc.).
When doing agentic programming your AI tool runs in the background. Different sounds for different events (task complete, error, thinking, etc.) let you know what's happening without watching the screen.
aisounds/
├── apps/
│ ├── web/ → Next.js 15 website (deployed to Vercel)
│ └── cli/ → npm package `@aisounds/cli` (the `npx @aisounds/cli ...` CLI, binary `aisounds`)
├── packages/
│ └── core/ → Shared AISE event vocabulary, manifest schema, rules
├── supabase/
│ ├── migrations/ → Versioned SQL migrations (apply in order)
│ └── seed.sql → Seed data (Welcome Pack)
└── seed-pack/ → Audio assets shipped as the seed pack
- Node.js 20 or newer (tested with 22)
- pnpm 10 (installed via
npm install -g pnpmor Corepack) - A Supabase cloud project (free tier is fine) with the GitHub provider enabled — see docs/auth-setup.md
- A GitHub OAuth App whose callback points at Supabase, not at the app
pnpm install- Sign in at supabase.com and create a new project.
- From the project dashboard collect:
- Project URL (
https://<ref>.supabase.co) anonpublic keyservice_rolesecret key- Database connection string (
Project Settings → Database → Connection string)
Pick one:
Option A — SQL editor (simplest). Open Supabase dashboard → SQL Editor and paste each file in order:
supabase/migrations/0001_init_schema.sqlsupabase/migrations/0002_triggers.sqlsupabase/migrations/0003_storage_buckets.sqlsupabase/migrations/0004_auth_user_trigger.sqlsupabase/migrations/0005_pack_helpers.sql
Option B — psql. Set SUPABASE_DB_URL in your environment, then:
psql "$SUPABASE_DB_URL" -f supabase/migrations/0001_init_schema.sql
psql "$SUPABASE_DB_URL" -f supabase/migrations/0002_triggers.sql
psql "$SUPABASE_DB_URL" -f supabase/migrations/0003_storage_buckets.sql
psql "$SUPABASE_DB_URL" -f supabase/migrations/0004_auth_user_trigger.sql
psql "$SUPABASE_DB_URL" -f supabase/migrations/0005_pack_helpers.sqlOnce you've uploaded the audio files from [seed-pack/](./seed-pack/) to
Supabase Storage under sounds/packs/welcome-pack/sounds/ (see the
seed-pack/README.md), run:
psql "$SUPABASE_DB_URL" \
-v SUPABASE_URL="https://<project-ref>.supabase.co" \
-f supabase/seed.sqlFollow docs/auth-setup.md. Summary:
- Create a GitHub OAuth App with the callback URL pointing at
https://<project-ref>.supabase.co/auth/v1/callback. - Paste its Client ID + Client Secret into Supabase dashboard → Authentication → OAuth Apps → GitHub.
- Add
http://localhost:3000/** and your deployed URL to Authentication → URL Configuration → Redirect URLs.
No GITHUB_CLIENT_ID or NEXTAUTH_SECRET is needed in the app env — Supabase
handles the OAuth flow end-to-end.
cp .env.template apps/web/.env.local
# then edit apps/web/.env.local with the values from step 2pnpm devOpen http://localhost:3000.
pnpm dev # run apps/web in dev mode (with Turbopack)
pnpm build # build every workspace package
pnpm lint # lint every workspace package
pnpm type-check # type-check every workspace package
pnpm format # prettier --write across the monorepoThis is an in-progress scaffolding.
- Phase 1 ✅ monorepo structure, shared event vocabulary, web/CLI skeletons, Supabase schema.
- Phase 2 ✅ Supabase Auth with GitHub OAuth, session refresh middleware,
avatar dropdown, auto-provisioned
public.usersrow on first login. - Phase 3 ✅
/packsbrowse with filters,/packs/[slug]detail with waveform player, optimistic voting,/profile/[username], and the full/uploadwizard that transcodes to OGG + MP3 server-side. See docs/upload-flow.md for the architecture. - Phase 4 🚧 downloadable
.zipbundles via/api/packs/[slug]/bundle, lightweight metadata at/api/packs/[slug]/meta, and a realaisoundsCLI (npx @aisounds/cli) with workinginstall/remove/list/info/update/preview/activate/soundsfor Cursor and Claude Code, plus a VS Code installer that writes.vscode/aisounds.jsonand play scripts (Windsurf and Aider remain "coming soon" stubs). - Phase 5 ⏳ Remix UI, remaining tool installers, cached bundles in Storage.
Apache-2.0 for the code in this repository. Individual sound packs carry their own license declared in the upload flow (CC0, CC-BY, CC-BY-SA or MIT).