Skip to main content

What it does

Terminal Commands execute shell commands on your Mac. Run scripts, manage files, control system settings, or automate development tasks—all with your voice.
Terminal commands run with your user permissions. Be careful with destructive commands like rm -rf.

Configuration

SettingDefaultDescription
CommandsRequiredList of shell commands to run
Execution ModeBackgroundBackground (silent) or Visual (shows terminal)
Terminal AppSystem DefaultWhich terminal to use
Working DirectoryNoneDirectory to run commands in
Close Tab When CompleteOffAuto-close terminal tab after running
Close Tab Delay2000msWait before closing

Execution modes

Background (silent)

Commands run without opening a terminal window. Output is captured but not displayed. Use cases:
  • Quick file operations
  • System commands
  • Scripts that don’t need interaction
  • Automation that should be invisible

Visual

Commands run in a terminal window you can see. Use cases:
  • Interactive commands
  • Long-running processes
  • Debugging scripts
  • Commands where you want to see output

Supported terminals

TerminalNotes
Terminal.appmacOS built-in, full support
iTermFull support
WarpKeystroke fallback
HyperKeystroke fallback
AlacrittyKeystroke fallback
kittyKeystroke fallback

Environment variables

Your commands have access to special variables:
VariableDescription
$HERMES_INPUTYour transcription (the remainder after trigger)
$HERMES_SCREENSHOTPath to screenshot (if captured)

Example: Use transcription in command

Trigger: “create file” Command: touch ~/Desktop/"$HERMES_INPUT".txt Say: “create file meeting notes” Result: Creates ~/Desktop/meeting notes.txt

Examples

Open project in VS Code

Trigger: “open project” Command: cd ~/projects/myapp && code .

Git status

Trigger: “git status” Command: git status Mode: Visual

Create and open file

Trigger: “new note” Command:
touch ~/Desktop/note-$(date +%Y%m%d).txt && open ~/Desktop/note-$(date +%Y%m%d).txt

Kill process by name

Trigger: “kill” Command: pkill -f "$HERMES_INPUT" Say: “kill chrome” Result: Kills Chrome processes

Copy text to clipboard

Trigger: “clip” Command: echo "$HERMES_INPUT" | pbcopy Say: “clip hello world” Result: “hello world” copied to clipboard

Command sequences

You can run multiple commands in sequence:
CommandDelay After
cd ~/projects0ms
git pull0ms
npm install0ms
npm run dev0ms
Each command runs after the previous one completes.

Security warnings

Hermes warns about potentially dangerous commands:
PatternRisk
rm -rfRecursive deletion
sudoElevated privileges
mkfsFilesystem formatting
dd if=Disk operations
curl | shRemote script execution
wget | bashRemote script execution
shutdownSystem shutdown
rebootSystem restart
You can still run these commands, but Hermes will ask for confirmation.

Creating a terminal trigger

1

Open Triggers

Go to Settings → Triggers.
2

Create new trigger

Click + or New Trigger.
3

Set the phrase

Enter your trigger phrase (e.g., “git status”).
4

Choose matching mode

Exact for simple commands, Prefix if you need input.
5

Select Terminal

Choose Terminal Commands as the action type.
6

Add commands

Enter your shell commands. Add delays if needed.
7

Set execution mode

Choose Background (silent) or Visual.
8

Save

Click Save.

Tips

  • Use background mode for quick, non-interactive commands
  • Use visual mode for long-running or interactive commands
  • Set working directory to avoid cd commands
  • Use $HERMES_INPUT to pass voice input to scripts
  • Test commands manually first before creating triggers