Questa pagina non è ancora tradotta. La home è già tradotta, il resto arriva.
docs
Reference
Everything the interface exposes is also a line in a text file, a command-line flag, or a port on localhost. This page is the list, for anyone who would rather script it than click it.
config.json
One file next to the executable, plain JSON, written atomically whenever a setting changes. Edit it by hand and pick Re-read config.json from the tray menu; the program applies what it can without a restart. An unreadable file is renamed to config.json.broken and replaced with defaults, so a typo never loses more than the typo.
dictation
| Key | Meaning | Default |
|---|
| hotkey | The combination that starts a dictation. | "ctrl+win" |
| hotkey_mode | hold or toggle. | "hold" |
| language | The language you speak. Decides which model is used. | "auto" |
| lang_models | Which model serves which language, as a map. | {} |
| min_record_ms | Shorter presses are ignored as accidental. | 300 |
| max_record_seconds | A hard stop, so a stuck key cannot record forever. | 120 |
| whisper_prompt | The dictionary hint given to Whisper models. | a starter set |
insertion
| Key | Meaning | Default |
|---|
| paste_mode | clipboard, or type for character by character. | "clipboard" |
| restore_clipboard | Put the clipboard back after pasting. | true |
| auto_enter | Press Enter after inserting. | false |
| paste_delay_ms | Extra wait before the paste, for slow windows. | 0 |
| replacements | The list of what to fix after recognition. | [] |
| commands | Voice commands and what each does. | [] |
engines
| Key | Meaning | Default |
|---|
| stt_source | local, or remote to send audio to server_url. | "local" |
| server_url | The address of a recognition server on another machine. | "" |
| server_exe | Path to whisper-server. | "whisper-server.exe" |
| server_port | Loopback port for whisper-server. | 8910 |
| server_autostart | Start it yourself, or let the program do it. | true |
| sherpa_port | Loopback port for sherpa-server. | 8912 |
| stream_port | Loopback port for the streaming server. | 8913 |
| llm_port | Loopback port for llama-server. | 8911 |
| threads | CPU threads given to the recogniser. | 4 |
| engine_idle_minutes | Unload an engine after this many idle minutes. | 10 |
post-processing
| Key | Meaning | Default |
|---|
| post_enabled | Run prompts after recognition. | false |
| post_source | local or api. | "local" |
| post_api_url | Your endpoint, when the source is api. | "" |
| post_api_key | Stored encrypted with Windows DPAPI, never in the log. | "" |
| profiles | The prompts themselves, in order. | two presets |
| active_profiles | Which of them run. | [] |
| llm_model | Path to the GGUF editor model. | "" |
history, interface, updates
| Key | Meaning | Default |
|---|
| history | Keep a history of dictations at all. | false |
| history_keep_min | How long an entry lives, in minutes. | 10080 |
| history_max | How many entries at most. | 200 |
| history_skip | Programs never recorded from. | "" |
| ui_language | Interface language, or auto. | "auto" |
| skin | terminal, editor, neon, soft, paper. | "terminal" |
| theme | Colour inside the terminal design. | "green" |
| overlay | Show the plate while recording. | true |
| overlay_position | bottom, caret, or a saved place. | "bottom" |
| check_updates | Ask GitHub for a newer version at start. | false |
| config_version | Written by the program. Used for migrations. | 5 |
Before a migration the program copies the file to config.json.vN.bak, once per version, and never overwrites that copy. Downgrading is a matter of putting it back.
Command line
The program is one executable. Passing a flag to a running copy makes that copy act; there is never a second instance.
everyday
| Flag | What it does |
|---|
| -settings [tab] | Open the settings window, optionally on a tab: state, system, mic, history, dictation, models, text, post, help, about, contacts. |
| -quit | Stop the running copy, engines included. |
| -wizard | Run the first-run wizard again. |
| -uninstall | Remove an installed copy. Add -silent for no questions. |
checking things
| Flag | What it does |
|---|
| -listmics | Print every capture device with its index. |
| -miclevel | Print the input level, to see whether the microphone is heard at all. |
| -modelcheck | Verify every downloaded model against its reference hash. |
| -routecheck | Print 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.wav | Recognise 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. |
| -dpi | Print how Windows is scaling each monitor. |
installer
| Flag | What it does |
|---|
| -silent | Install without a window. |
| -dir "path" | Where to install. |
| -model name | Download a model during the install: base, small, medium, turbo, gigaam, or none. |
| -lang xx | Interface language of the installer itself. |
| -uninstall | Remove, with -silent if wanted. |
Files and folders
| Path | What it is | Survives an update |
|---|
| holdtotype.exe | The program. Sits in the tray, owns the shortcut. | replaced |
| whisper-server.exe
sherpa-server.exe
sherpa-online-server.exe
llama-server.exe | The engines. | replaced |
| config.json | Every setting. | kept |
| config.json.vN.bak | A copy made once before each migration. | kept |
| models\ | Everything downloaded, several gigabytes typically. | kept |
| holdtotype.log
holdtotype.log.old | One megabyte each, then it rolls over. | kept |
| holdtotype-history.json | Only if history is switched on. Text, never audio. | kept |
| %TEMP%\holdtotype-webview-* | Scratch for the settings window, removed on exit. | temporary |
Ports and engines
Every engine is an ordinary local server bound to 127.0.0.1. Nothing listens on any other interface, and since 0.75.4 the program refuses to start an engine on a port another process already holds rather than talking to whatever is there.
| Port | Engine | Protocol | Started when |
|---|
| 8910 | whisper-server | HTTP | a Whisper model serves the language |
| 8911 | llama-server | HTTP, session key | post-processing is on |
| 8912 | sherpa-server | HTTP | a sherpa model serves the language |
| 8913 | sherpa-online-server | websocket | a streaming model is chosen |
netstat -ano | findstr LISTENING | findstr 891
TCP 127.0.0.1:8910 0.0.0.0:0 LISTENING 9132
TCP 127.0.0.1:8912 0.0.0.0:0 LISTENING 9188
Engines are attached to a Windows job object, so they die with the program even if it is killed. After engine_idle_minutes without work, the one not in use unloads itself and gives the memory back.