AI Agents

Run Claude Code, Codex, Gemini, OpenCode, Copilot and pi in panes, with session resume and voice input.

Highwind runs AI coding agents as terminal panes inside your views, next to the services and browsers they work on.

Supported agents

  • Claude Code (claude)
  • Codex (codex)
  • Gemini (gemini)
  • OpenCode (opencode)
  • Copilot (copilot)
  • pi (pi)
  • Terminal: a plain shell

If an agent CLI is not installed, the agent picker and the empty pane list it with an Install button. It runs the agent's install command (for example brew install --cask claude-code) and shows its progress.

Add your own agent

Each agent is defined by a JSON harness file: binary, install command, color, icon, session arguments, MCP registration and quick actions. To add an agent, or replace a built-in one, put a file in ~/.highwind/harnesses or use Import… in Settings → Harnesses. Before adding it, the import shows every command the harness will run. Settings → Harnesses also lists each agent, whether it is installed, and how its sessions are restored.

Open an agent

  • In an empty pane, pick the agent and then the folder to run it in.
  • Click the agent button in a service pane header to open an agent in that service's folder.
  • In the command palette (⌘P), type the agent name and choose New <agent>.

A new agent opens on the right of the view. If the view already has a column of agents, it goes below them.

Session resume

When Highwind launches, each agent pane resumes its own session, including the conversation. There is no setting to turn this off. Highwind learns the session ID by passing it at launch, watching the agent's session files, or reading the resume hint the agent prints. If the session no longer exists on disk, a new one starts. Settings → General → "Projects resumed at once" sets how many start at the same time (1 to 8, default 3).

The pane header shows the session name: a name you set (double-click the title to rename), else the name the agent gave the session.

Agent pane controls

  • Quick Actions (bolt menu): types a saved prompt or slash command into the agent, such as /compact. Each agent has its own defaults, and "Add Quick Action…" adds your own.
  • Fork Session (Claude Code and Codex): opens a new pane below that branches from the current session.
  • New Session, Restart and Stop. After the agent exits, Start resumes the session.
  • Detach to floating window.
  • Drag files or images onto the pane to paste their paths.

Launch settings

Settings → Agents sets launch defaults for Claude Code, Gemini and Codex: model, safety, tools, context, UI, telemetry and advanced options, with a preview of the resulting command. A service can override single values in the Agents tab of Edit Service. OpenCode, Copilot and pi have no launch settings.

Idle notifications (Claude Code only)

When a Claude Code session finishes and waits for input, Highwind sends a macOS notification. It is not sent if you are already looking at that view, at most once per minute per pane, and it is removed after 10 seconds. Clicking it opens the agent pane. This needs MCP turned on, because it uses a Claude Code hook that Highwind installs. Turn it off in Settings → Notifications → "When an agent is idle". Other agents do not send idle notifications.

Voice input

Click the microphone in the status bar to set up voice input the first time. Transcription uses OpenAI Whisper, through the OpenAI API (the key is stored in the Keychain) or a local whisper binary. Settings → Voice has the method, key, binary path, retries, timeout and storage options.

  • ⌥. starts recording. Press it again to stop and transcribe.
  • The text goes to the focused terminal, else a focused text field in a browser pane, else the active agent pane.
  • ⌥⇧. pastes the last transcription again.
  • Past transcriptions are on the Voice tab of the Dashboard drawer (⌘B).

Connecting agents to Highwind

With MCP turned on, agents can start and restart services, read logs, run quick commands, edit tasks and use the browser panes. See MCP Integration for setup.