dhoom-dj
The library and its API. Sets are built in a conversation and played
wherever you are — this host stores the music, the analysis and the plans.
The API
/docs — every route, live.
Getting here proved who you are to the proxy, but not to the library.
Every /v1 route needs an API key and answers 401 without one.
Account & API keys — get yours.
Getting set up
Get a key from your account page and the client
bundle from Ramana. Then, once:
uv tool install --find-links wheels dhoom-dj
dhoom-library setup --url https://dhoom-dj.rasowshi.us --key dhoom_...
uv is the only prerequisite. It brings its own Python and installs
nothing system-wide.
Building a set
That same setup installs the dhoom-set skill. Open Claude and describe
the night — the room, the crowd, where it should peak.
The skill is served from this host, so it always matches the API it is
calling: one that described a command the server does not have would be worse than
no skill at all. There is also an MCP endpoint at /mcp.
Listening
Play a set here — nothing to install.
Your browser is handed the plan and the recordings and does the mixing itself, so
pause is instant and a review jump is heard where it was asked for.
A browser that cannot mix — no Web Audio, or a plan whose tempo
curve would move pitch — falls back to a stream made on this machine. That one
is buffered, so pause lands late.
On a phone, add it to the home screen: it opens as its own app and
keeps what it has downloaded for longer.
Listening on your own machine
The player runs on your machine and sends audio to your own speakers:
dhoom-player <plan> --sync # stage the audio first
dhoom-player <plan>
Stage before you listen. Without it every track is pulled mid-set,
and a slow fetch is heard as a gap.