Efren Yevale Varela cb05dce80b Added assistant layer 1 月之前
..
README.md cb05dce80b Added assistant layer 1 月之前
sxhkdrc.example cb05dce80b Added assistant layer 1 月之前
xbindkeysrc.example cb05dce80b Added assistant layer 1 月之前

README.md

Hotkeys

Example bindings that drive the assistant through stt-ctl. Pick your WM's tool:

  • sxhkdrc.example — copy the lines into ~/.config/sxhkd/sxhkdrc, reload sxhkd.
  • xbindkeysrc.example — append to ~/.xbindkeysrc, run xbindkeys.

Both need a running stt-assistant (and stt-daemon feeding it transcriptions).

What the bindings do

Binding intent Command
Arm a command (next complete turn becomes an action) stt-ctl command-start
Execute the armed command stt-ctl command-execute
Cancel the armed command stt-ctl command-cancel
Toggle chat mode stt-ctl chat-toggle
Show the TUI stt-tui

Each stt-ctl call connects to the assistant's control socket, sends one message, prints the reply, and exits — so it is safe to bind to a global hotkey.

Why arm-then-execute

Arming is the strongest possible intent signal, and executing is a second, explicit press. Nothing runs on a guess:

  1. Press the arm hotkey — the TUI shows command_armed.
  2. Speak. The transcript fills the command buffer live.
  3. Optionally press e in the TUI to correct the text (fixes ASR mistakes before the model sees them).
  4. Press execute — or cancel with Esc.

Command mode and chat mode are mutually exclusive, and require_viewer = true means command-execute is refused unless a TUI is attached (so a stray hotkey cannot fire an action with nobody watching).