Overview
Thevoxtype record command sends control signals to a running daemon via Unix signals and file triggers. This allows external programs (compositor keybindings, scripts, launchers) to control recording without using built-in hotkey detection.
The daemon must already be running (
voxtype daemon) for record commands to work.Subcommands
start
Start recording immediately.SIGUSR1 to the daemon process.
stop
Stop recording and begin transcription.SIGUSR2 to the daemon process.
toggle
Toggle recording state. If idle, start recording. If recording, stop and transcribe.SIGUSR1 (start) or SIGUSR2 (stop) accordingly.
Toggle requires
state_file = "auto" in your config to track state between commands.cancel
Cancel current recording or transcription without outputting any text.Output mode overrides
Override the default output mode for a single recording. These flags are mutually exclusive.Force type mode - simulate keyboard typing.Available on:
start, stop, toggleForce clipboard mode - copy text to clipboard only, don’t type.Available on:
start, stop, toggleForce paste mode - copy to clipboard and simulate Ctrl+V.Available on:
start, stop, toggleWrite transcription to a file. Use Available on:
--file alone to use file_path from config, or --file=path.txt for an explicit path.start, toggleModel selection
Use a specific model for this recording. Overrides default model configuration.Available on:
start, toggleProfile selection
Profiles are named configuration presets defined inconfig.toml under [profiles.name] that can apply post-processing, custom commands, or output settings.
Use a named profile for post-processing.Available on:
start, toggleExample profile in config.toml:Auto-submit overrides
Press Enter after this transcription.Available on:
start, toggleDisable auto-submit for this transcription (overrides config setting).Available on:
start, toggleShift+Enter newlines
Use Shift+Enter for newlines in this transcription. Useful for chat apps that send on Enter.Available on:
start, toggleDisable Shift+Enter newlines for this transcription (overrides config).Available on:
start, toggleCompositor integration examples
Hyprland
Add to~/.config/hypr/hyprland.conf:
Sway
Add to~/.config/sway/config:
River
Add to~/.config/river/init:
i3 / i3wm
Add to~/.config/i3/config:
Advanced usage patterns
Context-aware bindings
Use different profiles or models based on active window:Rofi launcher integration
Notification feedback
Show desktop notifications on recording state changes:Signal-based IPC mechanism
Under the hood,voxtype record uses Unix signals and file triggers for inter-process communication:
| Command | Mechanism | Signal/File |
|---|---|---|
start | Unix signal | SIGUSR1 to daemon PID |
stop | Unix signal | SIGUSR2 to daemon PID |
toggle | State check + signal | Read state file, send SIGUSR1 or SIGUSR2 |
cancel | File trigger | Write to $XDG_RUNTIME_DIR/voxtype/cancel |
output_mode_override- Containstype,clipboard,paste, orfile[:path]model_override- Contains model nameprofile_override- Contains profile nameauto_submit_override- Containstrueorfalseshift_enter_override- Containstrueorfalse
Troubleshooting
Daemon not running
Toggle requires state file
config.toml:
Profile not found
config.toml:
Stale PID file
See also
- voxtype daemon - Main daemon mode
- voxtype status - Monitor daemon state
- Compositor integration guide - Detailed setup for each compositor