Advanced
Configuration files
The JSON files Dictato reads and writes, for hand-editing, syncing, or scripting
Dictato stores every setting in plain JSON inside your config folder. Hand-edit them, commit them to a dotfiles repo, or script them — the app reads the files on launch and writes them back atomically when you change settings in the UI.
Tip
Quit Dictato before hand-editing. The app overwrites its own files when you change settings in the UI, so edits made while it's running can be lost.
preferences.json
Every UI setting except shortcuts. Examples:
{
"languages": ["en", "da"],
"pauseMediaWhileRecording": true,
"useScreenContext": true,
"customVocabulary": "Dictato, WhisperKit, Parakeet",
"saveAudioRecordings": true,
"microphoneMode": "onDevice",
"selectedModel": "parakeetV3",
"soundProfile": "systemTink",
"postProcessingEnabled": false,
"postProcessingMethod": "onDevice",
"middleMouseEnabled": false,
"gesturesEnabled": true,
"captureTextSelection": false,
"captureCopy": false,
"capturePaste": false
}Unknown keys are ignored. Missing keys fall back to defaults, so you can ship a minimal file with only the knobs you care about.
shortcuts.json
One entry per shortcut action. Each action maps to an array of shortcuts — multiple bindings means any of them fires the action.
{
"pushToTalk": [
{ "keyCode": null, "modifierFlags": 8388608 },
{ "keyCode": 15, "modifierFlags": 1310720 }
],
"lockRecording": [
{ "keyCode": 49, "modifierFlags": 0 }
],
"stopLockedRecording": [
{ "keyCode": 53, "modifierFlags": 1048576 }
],
"regionScreenshot": [
{ "keyCode": 21, "modifierFlags": 1179648 }
],
"drawOnScreen": [
{ "keyCode": null, "modifierFlags": 1572864 }
],
"addTextQuote": [
{ "keyCode": 17, "modifierFlags": 524288 }
],
"exitActiveTool": [
{ "keyCode": 53, "modifierFlags": 0 }
]
}Shortcut fields
keyCode— virtual key code (UInt16) ornullfor a modifier-only shortcut. These are standard macOS virtual key codes (kVK_ANSI_A = 0,kVK_Space = 49,kVK_Escape = 53,kVK_ANSI_R = 15, etc. — seeCarbon/HIToolbox/Events.h).modifierFlags— decimalNSEvent.ModifierFlagsraw value. Sum the bits you want:
| Modifier | Bit | Decimal |
|---|---|---|
| Shift | 1 << 17 | 131072 |
| Control | 1 << 18 | 262144 |
| Option | 1 << 19 | 524288 |
| Command | 1 << 20 | 1048576 |
| Function (Fn / Globe) | 1 << 23 | 8388608 |
So ⇧ ⌘ 4 is 131072 + 1048576 = 1179648. Fn alone is 8388608.
Action names
pushToTalk, lockRecording, stopLockedRecording, regionScreenshot, drawOnScreen, addTextQuote, exitActiveTool.
history.json
The index of your past dictations. Written by the app, not meant for hand-editing — deletions and renames are handled through the UI. Safe to back up or inspect.
hooks.json
Shell commands, Claude prompts, and webhooks to run on Dictato events. See Hooks for the full reference.
Syncing
Point Settings → Folders → Config folder at an iCloud Drive, Dropbox, or Syncthing folder to keep preferences, shortcuts, history, and hooks in sync across Macs. Dictato re-reads the files when the folder path changes.