AbletonOSC supports hot-reloading its own handler code by sending /live/api/reload, avoiding a full Live restart during development
During development of AbletonOSC-based tools, modifying the Python handler files normally requires restarting Ableton Live to pick up the changes. AbletonOSC avoids this with a /live/api/reload OSC message that calls importlib.reload() on all handler modules, then clears and rebuilds the full API handler registry (clear_api + init_api). Active handlers/listeners are cleared before the reload so stale callbacks don’t call deleted code. This makes the iterative loop much faster: edit a file, send /live/api/reload, test — no Live restart required. (Note: the CONTRIBUTING doc still references the old address /live/reload; the live handler is registered at /live/api/reload.)
Examples
In a terminal: ./run-console.py, then: /live/api/reload (no params). AbletonOSC logs ‘Reloaded code’ and all handlers are fresh. Unit tests also use this endpoint to reset state between test runs.
Assessment
When developing a custom AbletonOSC handler, what do you send to pick up code changes without restarting Live? What is cleared before the new handlers are registered, and why is clearing listeners important?