Backends & agents
The bridge serves one kind of terminal at a time, its backend: Herdr, Orca, or plain shells it runs itself. Choose with --backend herdr|orca|plain; the choice is saved, and the console can change it.
Herdr (default)
Herdr is a terminal workspace manager for coding agents. With this backend, Herdr owns the workspaces, tabs, panes and agent sessions; the bridge shows them to your phone and passes your input through. Watching uses a read-only helper, so it never takes over the desktop’s view.
herdr-remote up # finds herdr on the PATHherdr-remote up --herdr "$(which herdr)" # or say where it isherdr-remote serve --session work # pick a Herdr session (default: the main one)The easiest setup is to run the bridge in a Herdr tab. Pairing codes also appear as Herdr notifications. Terminal history reaches back up to Herdr’s 1,000 most recent lines; agent conversations go further (see below).
Orca
The bridge can attach to a local Orca runtime instead. Orca’s own runtime access link stays in a private file on the computer; the phone pairs with the bridge’s usual invitation. Use a separate state directory and port if you also run a Herdr bridge.
herdr-remote init --backend orca --orca-connection ~/private/orca-access.txt \ --url https://192.168.1.20:8444 --listen 0.0.0.0 --port 8444 --state ~/.local/share/herdr-remote-orcaherdr-remote serve --state ~/.local/share/herdr-remote-orca- Orca’s desktop and its own clients can still type into the same terminal; control leases coordinate only the phones paired with the bridge.
- Import repository registers an existing local Git repository. Starting an agent inside an existing pane is not available; start it from Orca or by typing the command.
Plain terminals
No Herdr or Orca? The bridge runs its own login shells, as you:
herdr-remote up --backend plainherdr-remote up --backend plain --folder ~/code/api --folder ~/code/web- Each folder becomes a workspace with one shell (your home folder if you give none). Add more from the phone with New workspace; they are remembered for the next start.
- The terminals themselves end when the bridge stops.
- One device controls a terminal at a time, and the terminal’s size follows it. History keeps 500, 1,000 or 2,000 lines.
- Agents you start in these shells are recognised and shown as agents.
Agents
The bridge recognises an agent from the program running in a pane, and offers the ones installed on the computer under Start an agent. For agents marked below, the app reads the agent’s own session log to show its conversation, paged back to the start; for the others it shows the terminal output and says why.
| Agent | Command | Conversation history |
|---|---|---|
| Claude Code | claude | Yes |
| Codex | codex | Yes |
| OpenCode | opencode | Terminal output |
| Pi | pi | Yes |
| Gemini CLI | gemini | Terminal output |
| Qwen Code | qwen | Yes |
| Kimi Code | kimi | Terminal output |
| GitHub Copilot CLI | copilot | Terminal output |
| Cursor CLI | cursor-agent | Terminal output |
| Droid | droid | Terminal output |
| Amp | amp | Terminal output |
| Kiro CLI | kiro-cli | Terminal output |
| Cline | cline | Terminal output |
| Kilo Code | kilo | Terminal output |
| Qoder CLI | qodercli | Terminal output |
| Devin CLI | devin | Terminal output |
| Antigravity CLI | agy | Terminal output |
| Grok CLI | grok | Terminal output |
| Hermes Agent | hermes | Terminal output |
| Oh My Pi | omp | Terminal output |
| Mastra Code | mastracode | Terminal output |
| Letta Code | letta | Terminal output |
| Maki | maki | Terminal output |
| Muse | muse | Terminal output |
| Crush | crush | Terminal output |
| Goose | goose | Terminal output |
| Aider | aider | Terminal output |
| Auggie | auggie | Terminal output |
| CodeBuddy | codebuddy | Terminal output |
| ZCode (Z.ai) | zcode | Terminal output |
| DeepSeek Harness | dsh | Terminal output |
- Claude CodeCommand:
claudeConversation history: Yes - CodexCommand:
codexConversation history: Yes - OpenCodeCommand:
opencodeConversation history: Terminal output - PiCommand:
piConversation history: Yes - Gemini CLICommand:
geminiConversation history: Terminal output - Qwen CodeCommand:
qwenConversation history: Yes - Kimi CodeCommand:
kimiConversation history: Terminal output - GitHub Copilot CLICommand:
copilotConversation history: Terminal output - Cursor CLICommand:
cursor-agentConversation history: Terminal output - DroidCommand:
droidConversation history: Terminal output - AmpCommand:
ampConversation history: Terminal output - Kiro CLICommand:
kiro-cliConversation history: Terminal output - ClineCommand:
clineConversation history: Terminal output - Kilo CodeCommand:
kiloConversation history: Terminal output - Qoder CLICommand:
qodercliConversation history: Terminal output - Devin CLICommand:
devinConversation history: Terminal output - Antigravity CLICommand:
agyConversation history: Terminal output - Grok CLICommand:
grokConversation history: Terminal output - Hermes AgentCommand:
hermesConversation history: Terminal output - Oh My PiCommand:
ompConversation history: Terminal output - Mastra CodeCommand:
mastracodeConversation history: Terminal output - Letta CodeCommand:
lettaConversation history: Terminal output - MakiCommand:
makiConversation history: Terminal output - MuseCommand:
museConversation history: Terminal output - CrushCommand:
crushConversation history: Terminal output - GooseCommand:
gooseConversation history: Terminal output - AiderCommand:
aiderConversation history: Terminal output - AuggieCommand:
auggieConversation history: Terminal output - CodeBuddyCommand:
codebuddyConversation history: Terminal output - ZCode (Z.ai)Command:
zcodeConversation history: Terminal output - DeepSeek HarnessCommand:
dshConversation history: Terminal output
Agents keep running on your computer with your own accounts, settings and model providers; any usage charges are between you and them. The app doesn’t sign in to anything and never approves an agent’s request on its own: a waiting agent shows as Needs input until you answer it.