Running on its own β no agent needed
Lesson
Nobody has asked you to play anything yet.
Ask your agent to teach you something β try βIβve never played piano before, where do I start?β Or open the and run a lesson on your own.
Lesson library
Lessons stay here after the agent has gone. Run one whenever you like β the page demonstrates, listens and marks it on its own.
Ask your agent for a new one: βsave that as a lesson I can redoβ
Progress
Kept on this device, so your agent can open with what you were working on last time instead of meeting you cold.
Why it is called Dust Off
I bought a MIDI keyboard intending to learn the piano. It spent most of a year in a cupboard. The problem was never finding middle C β it was that nothing told me what to practise, nothing noticed when I got better, and nothing met me where I was on a Tuesday night with ten minutes and no energy.
So this is the thing I wanted: a teacher that shares the instrument with me. It hears what I actually play, plays back so I can hear what I am aiming for, and shows me where to put my fingers β with note names and finger numbers, which is more than the lights on a hardware keyboard can tell you.
An agent cannot hear you. The page can.
The browser has Web MIDI and Web Audio. It can catch every note, time it to the millisecond, name the chord and measure how evenly you played it. WebMCP is what turns that into something an AI agent can ask for. A server cannot do this: the notes are happening on a device attached to this machine, in this tab, right now.
The agent is never in the realtime loop. A language model round trip takes seconds; musical timing is tens of milliseconds. So the agent hands over a whole phrase and the page performs it. It decides what to work on; the page decides when every note sounds.
What the page will not let an agent do
The tools available change with what is happening. While you are playing, the tool for playing sound is not registered β an agent structurally cannot talk over the person it is teaching. While the page is running a saved lesson by itself, nothing that makes a noise is available at all.
Lessons outlast the conversation
A lesson here is not a chat message. It is saved, with real notes and real fingering, and the page can perform every step of it with no agent involved. The agent writes the lesson once; the page teaches it as often as you want.
Everything β your practice history and your lessons β is stored in this browser, on this device. There is no account and no server. The button really does.