Docs

Coding agents

In a coding agent, blabe can press Return for you after it pastes. At a shell prompt, it never does.

Three ways to send

  • Automatically. Turn on Send automatically to coding agents in Settings. It’s off by default. blabe then presses Return after each paste into a coding agent.
  • Once. Hold Fn, speak, then press Return while you’re still holding Fn. blabe finishes the recording, pastes and sends, even with automatic sending off. The pill shows ↩ while the send is armed. With another hotkey, hold that key and press Return. This needs the Accessibility permission.
  • Never. Leave both alone and blabe only pastes. You press Return yourself.

Where blabe presses Return

blabe presses Return only in these places, and only when it can tell a coding agent is in front of you.

Desktop apps. The Claude app and the Codex app. Return sends the message there.

Terminal apps. Terminal, iTerm2, Ghostty, kitty, WezTerm, Warp, Alacritty, Hyper, Tabby and Rio.

Editor terminals. The terminals inside VS Code, Cursor, Windsurf, Zed and JetBrains IDEs. Editor chat panels and source buffers never auto-send.

Agents blabe recognizes in a terminal. claude, codex, gemini, opencode, aider, amp, cursor-agent, copilot, goose, crush, qwen and droid. Only the exact command name matches, so codex-helper does not. blabe also finds these agents when they run as a Node, Bun, Deno or Python script.

Everywhere else, blabe pastes and you decide when to send.

It never presses Return at a shell prompt

In a terminal, Return runs whatever is typed. So blabe presses it only when all of this is true:

  • The tab that received the paste is running one of the agents above in the foreground.
  • The terminal shows fresh input after the paste, which tells blabe the paste reached that agent and not a shell.
  • Only one agent could have received the paste.

If blabe can’t tell, it pastes and stops. That includes a shell prompt, a terminal it can’t identify, and an app that has a shell terminal open in another tab, even when the paste went to its desktop composer. In tmux, blabe looks up the selected pane without changing anything, and skips the send if it can’t identify it or the pane is in copy mode.

Typing cancels the send

Typing after you let go, or starting another dictation, cancels the send. The transcript still pastes. If you switch apps before the text arrives, blabe copies it instead of pasting or sending. A retry from the menu follows your automatic-send setting and doesn’t reuse a one-time send. When your trial or subscription ends, new dictation stops, so nothing new is pasted or sent.

Add your own agent

To let blabe send in another command-line agent, add its exact command name in Terminal. Shells and generic interpreters such as zsh, ssh, tmux, node and python are refused.

defaults write com.montalvo.blabe extraAgents -array my-agent another-agent

To remove your additions:

defaults delete com.montalvo.blabe extraAgents