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) or null for 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. — see Carbon/HIToolbox/Events.h).
  • modifierFlags — decimal NSEvent.ModifierFlags raw value. Sum the bits you want:
ModifierBitDecimal
Shift1 << 17131072
Control1 << 18262144
Option1 << 19524288
Command1 << 201048576
Function (Fn / Globe)1 << 238388608

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.