docs
Reference: config.json, command line, files and ports
Everything the program reads and writes, for when the settings window is not enough: the keys in config.json, the command-line flags, the files in the folder and the ports the engines listen on.
Updated · Vitalii Yemets
config.json
Plain text in the program's folder. Edit it by hand and press Re-read in the System section, or let the window write it.
dictation
hotkeyThe combination that starts a dictation.
"ctrl+win"
hotkey_modehold or toggle.
"hold"
languageThe language you speak. Decides which model is used.
"auto"
lang_modelsWhich model serves which language, as a map.
{}
min_record_msShorter presses are ignored as accidental.
300
max_record_secondsA hard stop, so a stuck key cannot record forever.
120
whisper_promptThe dictionary hint given to Whisper models.
a starter set
insertion
paste_modeclipboard, or type for character by character.
"clipboard"
restore_clipboardPut the clipboard back after pasting.
true
auto_enterPress Enter after inserting.
false
paste_delay_msExtra wait before the paste, for slow windows.
0
replacementsThe list of what to fix after recognition.
[]
commandsVoice commands and what each does.
[]
engines
stt_sourcelocal, or remote to send audio to server_url.
"local"
server_urlThe address of a recognition server on another machine.
""
server_exePath to whisper-server.
"whisper-server.exe"
server_portLoopback port for whisper-server.
8910
server_autostartStart it yourself, or let the program do it.
true
sherpa_portLoopback port for sherpa-server.
8912
stream_portLoopback port for the streaming server.
8913
llm_portLoopback port for llama-server.
8911
threadsCPU threads given to the recogniser.
4
engine_idle_minutesUnload an engine after this many idle minutes.
10
post-processing
post_enabledRun prompts after recognition.
false
post_sourcelocal or api.
"local"
post_api_urlYour endpoint, when the source is api.
""
post_api_keyStored encrypted with Windows DPAPI, never in the log.
""
profilesThe prompts themselves, in order.
two presets
active_profilesWhich of them run.
[]
llm_modelPath to the GGUF editor model.
""
history, interface, updates
historyKeep a history of dictations at all.
false
history_keep_minHow long an entry lives, in minutes.
10080
history_maxHow many entries at most.
200
history_skipPrograms never recorded from.
""
ui_languageInterface language, or auto.
"auto"
skineditor, fluent, studio, soft, paper, neon, terminal.
"editor"
themeColour inside the terminal design.
"green"
overlayShow the plate while recording.
true
overlay_positionbottom, caret, or a saved place.
"bottom"
check_updatesAsk GitHub for a newer version at start.
false
config_versionWritten by the program. Used for migrations.
5
Command line
All flags go to holdtotype.exe unless said otherwise. A second copy started with a flag talks to the running one and exits.
Everyday
-settings [tab]Open the settings window, optionally on a tab: state, system, mic, history, dictation, models, text, post, help, about, contacts.
-quitStop the running copy, engines included.
-wizardRun the first-run wizard again.
-uninstallRemove an installed copy. Add -silent for no questions.
Checks
-listmicsPrint every capture device with its index.
-miclevelPrint the input level, to see whether the microphone is heard at all.
-modelcheckVerify every downloaded model against its reference hash.
-routecheckPrint which model would serve which language, and whether it can translate.
-replcheck "phrase"Run the replacement rules over a phrase and show the result.
-transcribe file.wavRecognise a file with the current settings and print the text.
-postcheck "text"Send a sample through the prompt chain.
-testpaste "text"Insert a string the way a dictation would, to test insertion alone.
-dpiPrint how Windows is scaling each monitor.
The installer, holdtotype-setup.exe
-silentInstall without a window.
-dir "path"Where to install.
-model nameDownload a model during the install: base, small, medium, turbo, gigaam, or none.
-lang xxInterface language of the installer itself.
-uninstallRemove, with -silent if wanted.
Files and folders
Everything lives in the program's folder. The last column says what an update does with each.
holdtotype.exeThe program. Sits in the tray, owns the shortcut.
replaced
whisper-server.exe, sherpa-server.exe, sherpa-online-server.exe, llama-server.exeThe engines.
replaced
config.jsonEvery setting.
kept
config.json.vN.bakA copy made once before each migration.
kept
models\Everything downloaded, several gigabytes typically.
kept
holdtotype.log, holdtotype.log.oldOne megabyte each, then it rolls over.
kept
holdtotype-history.jsonOnly if history is switched on. Text, never audio.
kept
%TEMP%\holdtotype-webview-*Scratch for the settings window, removed on exit.
temporary
Ports and engines
The engines are ordinary HTTP and websocket servers bound to 127.0.0.1. They are not reachable from the network, and the program refuses to start one on a port another process already holds.
8910whisper-server
HTTP
a Whisper model serves the language
8911llama-server
HTTP, session key
post-processing is on
8912sherpa-server
HTTP
a sherpa model serves the language
8913sherpa-online-server
websocket
a streaming model is chosen