Share a device
Export to a .msh-device bundle, and install one someone sent you.A device you're building is a live draft: an editable folder that recompiles when you
save. To hand it to someone else you export it to a .msh-device bundle, a single
file that runs anywhere with no toolchain. For the bigger picture, see Distributing
devices.
Export
Right-click the device on the canvas and pick Export. The Export Device
dialog opens.
Fill in the Name, a short Description, and a Category (Effect,
Generator, Analyzer, or Other). The category is how the device files itself
under the Shelf's Devices filter.
Leave Include source code on to ship your index.ts / ui.ts /
paint.ts inside the bundle, so a recipient can read and fork it. Turn it
off to ship the compiled device only.
Click Export. Msh writes the .msh-device into your device library
off-thread and confirms with a toast.
The bundle holds the compiled DSP wasm, the compiled UI, a screenshot of the tile, the
device's assets/, and (if you opted in) the source. Its wasm bytes are hashed, so a
recipient verifies they're running exactly what you shipped.
Install
A .msh-device someone sent you installs two ways:
- Drag and drop the file onto the Msh window.
- Or open the Shelf, find the device under the Devices filter, and add it.
Either way it lands in your library and shows up in the Shelf alongside the factory devices and your own.
Note
An installed device is immutable: it runs from its compiled wasm and never hot-reloads. Your own drafts stay editable. To change someone else's device, export it with source, then start a new draft from that source.
Ship presets
A device can carry named presets (a saved snapshot of its params, curves, and state) so a recipient starts with useful sounds. Save the node's current state as a preset from the CLI, and it embeds in the bundle on export:
msh-helper instance <id> save-device-preset --node <node> --name "Warm"
msh-helper instance <id> load-device-preset --node <node> --name "Warm"See CLI and MCP for the full command surface.