██╗██╗ ██╗██╗ ██╗███████╗██████╗ ██████╗ ██╗ ██╗
██║██║ ██║██║ ██╔╝██╔════╝██╔══██╗██╔═══██╗╚██╗██╔╝
██║██║ ██║█████╔╝ █████╗ ██████╔╝██║ ██║ ╚███╔╝
██ ██║██║ ██║██╔═██╗ ██╔══╝ ██╔══██╗██║ ██║ ██╔██╗
╚█████╔╝╚██████╔╝██║ ██╗███████╗██████╔╝╚██████╔╝██╔╝ ██╗
╚════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═════╝ ╚═════╝ ╚═╝ ╚═╝
The open-source track library for Jukebox — the agent-native component registry.
Each directory is a track — a reusable, composable piece of an app that any agent or developer can pull into their project.
| Track | Description |
|---|---|
| DATABASE | Universal DB connector. Postgres, MySQL, SQLite, Mongo. One interface, swap via env. |
| AUTH | Sign up, login, sessions, JWT, OAuth. Frontend + backend + data layer. |
| Transactional email. Templates, providers (Resend/SES/Postmark), delivery tracking. | |
| USER | Profile CRUD, preferences, avatar upload, settings page. |
| Track | Description |
|---|---|
| SHELL | App shell. Sidebar, topbar, content area. Responsive. Any framework. |
| DASHBOARD | Stat cards, charts, activity feed. Data-driven. Drops into any shell. |
| TABLE | Data table. Sort, filter, paginate, export. Schema-driven. |
| Track | Description |
|---|---|
| BILLING | Stripe checkout, subscriptions, usage metering, customer portal. |
| TEAM | Multi-tenancy, invites, roles, seat limits. Org-scoped auth. |
| FILES | S3/R2 upload, presigned URLs, progress UI, file management. |
# Install the CLI
npm install -g jukebox-cli
# Add tracks to your project — dependencies auto-resolve
jukebox add auth billing email
# Or browse the registry
jukebox list
jukebox info AUTHBrowse and search tracks at jukebox-nu.vercel.app.
Every track is a directory with a template.json manifest and source files.
MY_TRACK/
template.json # manifest (required)
service.ts # your source files
routes.ts
Component.tsx
{
"track_id": "MY_TRACK",
"version": "1.0.0",
"description": "What this track does in one line",
"type": "track",
"layer": "backend",
"tier": 1,
"needs": {
"env": { "API_KEY": "required" },
"tracks": ["DATABASE"]
},
"gives": {
"backend": ["myService", "myRouter"],
"routes": ["GET /my-thing", "POST /my-thing"]
},
"plays_with": ["AUTH", "EMAIL"],
"adapters": ["postgres"],
"files": [
{ "path": "service.ts", "role": "backend", "description": "Core service logic" },
{ "path": "routes.ts", "role": "backend", "description": "Express routes" }
],
"install_instructions": "Wire the router into your Express app."
}# Fork this repo, add your track directory, and open a PR
# Or use the CLI:
jukebox submit ./MY_TRACK- Each source file should be 25-60 lines of real, working TypeScript
- Export names must match the
givesfield exactly - Use
process.envfor env vars matchingneeds.env - Backend files use Express patterns (Router, Request, Response)
- Frontend files use React/TSX with proper TypeScript types
- No placeholder TODOs — write actual working logic
- Include an
install_instructionsfield explaining how to wire it up
This repo is the source of truth for track code. The Jukebox registry reads directly from this repo via the GitHub API. When you merge a PR here, the track becomes available to every agent and developer using Jukebox.
This repo (source of truth)
→ Jukebox API reads track files via GitHub API
→ CLI: jukebox add auth
→ MCP: jukebox_pull("AUTH")
→ Web: jukebox-nu.vercel.app
- Registry: jukebox-nu.vercel.app
- CLI: npmjs.com/package/jukebox-cli
- Docs: jukebox-nu.vercel.app → Docs tab
MIT