Skip to content

[hook]

When an agentic harness (Claude Code, Cursor, spec-kit) invokes ingrain hook, Ingrain needs to spawn a new terminal window to run the interactive TUI — the hook process’s stdin belongs to the harness, not your keyboard. By default it auto-detects the first available terminal on your machine. Use [hook].terminal to pin a specific one.

KeyTypeDefaultDescription
terminalstringauto-detectName of the terminal emulator to use.

If detection fails (no supported terminal found on PATH), the hook exits with an error pointing you here. Setting terminal explicitly skips detection entirely.

Linux:

  • alacritty
  • kitty
  • wezterm
  • ghostty
  • gnome-terminal
  • konsole
  • foot
  • xfce4-terminal
  • x-terminal-emulator
  • xterm

macOS:

  • iterm
  • terminal (the built-in Terminal.app)

Windows:

  • windows-terminal
  • powershell
[hook]
terminal = "windows-terminal"
[hook]
terminal = "alacritty"
  • init — register the hook in your harness.
  • hook — what the harness actually calls.