Bellterm

Your Herdr agents, on your phone.

Bellterm is a native Android client for Herdr. Reach its workspaces, tabs, and panes over SSH, answer an agent when it rings, and put the phone away. Everything keeps running on the host.

Download the APK Android 10 or newer, arm64 and x86_64

The phone is a window. Herdr owns the session.

Bellterm doesn't run your terminals. It attaches to the Herdr daemon on your machine, the way the desktop client does, and draws what Herdr sends. Lose signal, lock the screen, or close the app: the panes and agents carry on, and you pick up where they are when you come back.

Bellterm

Draws Herdr's panes with libghostty-vt, sends your keys and touches, and turns the daemon's agent alerts into Android notifications.

SSH, through jump hosts if needed
herdr remote-client-bridge

Your machine

Runs the Herdr daemon with your workspaces, tabs, panes, and agents. Bellterm never installs, starts, or upgrades anything there.

Built for a small screen and a flaky connection.

Herdr's layout, as Herdr lays it out, with the controls a phone needs around it.

Agents

  • Working, Needs input, Done, Idle for every agent, in the drawer.
  • Notifications when an agent needs you or finishes while the app is in the background.
  • Tap an agent to jump straight to its pane.
  • Workspaces with branch, ahead and behind, and worktree.

Terminal

  • libghostty-vt for graphemes, wide characters, and colour.
  • An extra-keys row with Esc, Tab, latching Ctrl and Alt, and repeating arrows.
  • CJK input composes in place at the cursor. Hardware keyboards work too.
  • Nerd Font icons, ten colour schemes, pinch to zoom, long-press to copy.

SSH

  • Jump hosts chained like ssh -J, each hop's host key checked.
  • Keys and certificates: Ed25519 generated on the phone, or import RSA, ECDSA, and Ed25519 keys.
  • Import ~/.ssh/config: every Host becomes a node, ProxyJump included.
  • Secrets encrypted with a key held by the Android Keystore.

Get started

You need a machine you can reach over SSH with Herdr 0.9.0 or later on it.

  1. Install Bellterm

    Download the APK and open it on your phone. On first launch Bellterm generates an Ed25519 key for this device.

  2. Authorise the phone's key

    In Keys & certificates, copy the public key and add it to the host. You can sign it with your SSH CA instead.

    echo 'ssh-ed25519 AAAA… bellterm@Pixel7' >> ~/.ssh/authorized_keys
  3. Add a node and attach

    Add the host as a node, or import your SSH config. Compare the host key fingerprint the first time you connect. If no Herdr server is running for the session, start one on the host with herdr.

Requirements

Phone
Android 10 (API 29) or newer, on arm64 or x86_64.
Host
Herdr 0.9.0 or later and /bin/sh. Windows hosts that only offer PowerShell aren't supported.
Jump hosts
SSH with TCP forwarding allowed. Nothing else.
Not yet
Inline images (Kitty graphics, Sixel), SSH agents, and security-key (sk-) keys.