K

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.