Custom commands

This guide describes the current build.

For an ordinary shortcut, use the in-app editor first. It avoids JSON syntax and makes the change available immediately.

  1. Open the Command library: tray menu → Tools → Command library, or Settings → Tools → Command library. In v0.30.0-beta.2 and v0.22.1 it is the Commands tab in Settings.
  2. Under Voice Commands, select Add Command.
  3. Choose the action and speakable phrase, then use Test on the selected row.
  4. Reload re-reads commands.json after you edit it outside the app. It does not load plugin files: restart Samsara after changing a Python command plugin, and after switching a command pack.

What the editor supports

The Add Command dialog supports hotkeys, launching an application or file, typing fixed text, and individual key press, hold and release actions, and mouse clicks. Multi-step macros appear in the list but are not created from the dialog; the Custom Macros pack is off by default. Plugin commands are defined in source and cannot be edited or deleted in the dialog.

Command packs

The Command library also holds the pack switches. Disabling packs you do not use improves recognition accuracy. Core and Session are always on. Pack changes need a restart. Each pack has an anchor in the settings reference.

Things you can create by voice

Advanced paths

Advanced users can edit commands.json in the app folder. Back it up first: an app upgrade can replace it, although the updater backs up and migrates customised commands and drop-in plugins. Close Samsara while you edit, or use Reload afterward.

Python plugins live in plugins/commands/, are loaded once at startup, and run with the same permissions as Samsara. A file ending .disabled is not loaded. A plugin declares each command with @command("phrase", aliases=[...], pack=..., risk_class=...); the risk class decides whether the command asks before running, so declare it honestly. Only use code you trust. Give each command a distinct phrase, test potentially destructive shortcuts in a disposable window, and avoid phrases that sound like ordinary dictation.

The command reference is the place to check for a phrase collision before adding one.