Herdr OS · for the Rabbit R1

Your agents,a herd inyour hand.

Herdr OS turns a Rabbit R1 into a pocket companion for every Claude Code, Codex, Pi and OpenCode coding agent on your machines. Glance at the herd, answer what's waiting, and talk back, without opening a laptop.

Scroll

The herd

One sheep per agent. Wool in its maker's colors.

Opus, Sonnet, HaikuClaude Code sheepClaude Code
GPT, any effortCodex sheepCodex
Any providerPi sheepPi
Read from its own storeOpenCode sheepOpenCode

The plain sheep is the companion. It speaks for the herd; the branded ones speak for themselves. A sleeping sheep is idle, and the words always say so too.

Four rules

Orange is you.Your voice, your attention, anything waiting on you. Nothing else is ever orange.
Wheel moves. Button talks. Touch approves.Three controls, three jobs, no overlap, so muscle memory never sends the wrong thing.
A spoken yes never approves.Voice drafts, a finger decides. The side button can't answer a question by accident.
No invented numbers.Every model, token count and subagent comes from the agent's own session files. If nothing records it, the R1 doesn't show it.
23:48
THU · OCT 29 · 71%
z zz
All quiet. 3 still working.
I’ll wake you if anyone needs you.
3 HOSTS
HOLD TO WAKE
SPEAKING
TAP TO HUSH
Morning. Two done, one failed. Claude is waiting on you.
Show me Claude
Later
3 HOSTS · 5 SHEEP
Claude Code is asking for you. The rest are grazing.
CODEX · 62%
PI · IDLE
z z
!
NEEDS YOU
Can I install the new build on the R1?
Claude Code
OPUS 5.5 · CEREBRO
WHEEL · NEXT SHEEP
HOLD · TALK
Claude Code
OPUS 5.5 · CEREBRO · ~/herdr-os
Switched the terminal to Ghostty.
All 417 tests passed. ✓
Can I install the new build on the R1?
$ adb install -r app-release.apk
Yes, once
Ask me why
No
HOLD · ANSWER IN YOUR WORDS
TOUCH APPROVES
TRANSMITTING
CH 1 · CLAUDE CODE
Did the fix land? Run the QR test on the device
RELEASE · OVER
CH 1 · RECEIVING
OPUS 5.5 · CEREBRO
Yes. All six QR tests pass on the R1. Want me to ship it?
1 CLAUDE
2 CODEX
3 PI
WHEEL · CHANGE CHANNEL
PRESS · CUT IN
SAYING “YES” NEVER APPROVES. A TOUCH DOES.
Show Claude Code
OPUS 5.5 · SEES IMAGES
‹ ›
TAP · SNAP
HOLD · SNAP AND SAY WHY
Claude Code
OPUS 5.5 · CEREBRO
PHOTO + SPOKEN · 0:03
This shows on the R1 right after the install.
I can read it: the QR screen crashes when the camera is busy. Fixing it now.
SENT VIA CEREBRO TO ANTHROPIC
HOLD · REPLY
Claude Code
OPUS 5.5
CEREBRO
TODAY · 09:12
ran ./gradlew test · 417 passed · 2m
vt-porter finished · JNI snapshot in 1 ms
Ghostty renders the pane at 48×18 now. Switch the terminal to it, or keep plain lines as a fallback?
SPOKEN · 0:04
Switch it. Keep plain lines behind a setting.
editing TerminalActivity.kt
Hold to message Claude
Subagents
OF CLAUDE CODE · CEREBRO
Claude Code
Wire libghostty into the terminal view
LEAD
vt-porter
Port JNI glue · done 4m ago
test-runner
Run GhosttyVtTest on R1 · 38s
WORKING
› 4 of 6 tests · bench parse 21 MB/s
doc-writer
Asks: overwrite TERMINAL_ENGINE.md?
NEEDS YOU
WHEEL
PICK A SUBAGENT
HOLD
MESSAGE TEST-RUNNER
Running
4 TASKS · 3 HOSTS
CLAUDE CODE · CEREBRO
2:14
./gradlew testDebugUnitTest
291 / 417 passed · 0 failed
pnpm dev
CODEX · MBP · serving :5173
1h 02
zig build -Demit-lib-vt
PI · NAMEK · compiling 212/340
4:51
npm run lint
CODEX · MBP · exit 1 · 3 errors
0:09
Watch output
Stop…
Claude Code
GHOSTTY · 48×22
212 LINES ABOVE
> Switch it. Keep plain lines behind a
setting.
● I'll stream raw pane bytes into GhosttyVt
and draw its snapshot with VtView.
⏺ Update(app/…/TerminalActivity.kt)
⎿ Updated with 6 additions, 2 removals
41 - val lines = client.terminal(id)
42 - render(lines)
41 + val vt = GhosttyVt(cols, rows)
42 + stream.collect { vt.write(it) }
43 + view.screen = vt.snapshot()
⏺ Bash(./gradlew :app:testDebugUnitTest)
⎿ BUILD SUCCESSFUL in 2m 14s
Keep plain lines behind a setting?
❯ 1. Yes, add Settings → Terminal
2. No, Ghostty only
⏵⏵ auto-accept edits on · 41% context
LIVE · READ-ONLY
WHEEL · SCROLLBACK
Type
Model
CLAUDE CODE · CEREBRO
Fable 5.1
NEWEST
Opus 5.5
IN USE
Sonnet 5.5
BALANCED · SAME CONTEXT, NEXT TURN
Haiku 5.5
FASTEST
EFFORT
Low
Medium
High
Max
Switch to Sonnet 5.5
WHEEL · CHOOSE
THIS SESSION ONLY
NEW TASK · YOU SAID
“Add a battery card to the quick controls and test it on the R1.”
WHEEL · CHANGE WHO TAKES IT
Claude Code
Codex
Pi
CEREBRO · ~/herdr-os
OPUS 5.5
Claude knows this repo. Send it there?
Send to the herd

01 · Glance

It sleeps until someone needs you.

The R1 rests on the lock screen with a quiet count of who is working. Wake it and the companion tells you, in one breath, what happened while you were away.

  • Asleep
  • Spoken briefing
  • Pasture

02 · Answer

Every question arrives as the sheep that asked it.

Approvals float above the agent in its own colors. Your choice glows orange, and the R1 names exactly where the answer goes before anything is sent.

  • Sheep asks
  • Bound to the question
  • Touch approves

03 · Talk

Hold the button. It answers out loud.

Walkie-talkie mode gives each agent a channel on the wheel. Your voice goes out in orange; its reply fills the screen in its brand color and is spoken back to you.

  • Push to talk
  • Channels on the wheel
  • Spoken replies

04 · Show it

Point at the whiteboard. The agent sees it.

Snap a photo with the R1's camera. It lands on the agent's own machine, next to the code, and the agent reads it like any file.

  • Camera
  • Saved where the code is
  • Thread

05 · Supervise

Subagents, tasks and a live terminal.

See every subagent's latest step, every background command's last lines, and the terminal itself, sanitized, scrollable on the wheel.

  • Subagents
  • Background tasks
  • Ghostty terminal

06 · Steer

Change models from your palm.

Pick Opus, Sonnet or GPT and the effort to match. Herdr OS types the harness's own command, so nothing is faked. Or say a new task and choose who takes it.

  • Model picker
  • Effort
  • New task

Every machine

Every agent. Every machine. One glance.

Past six agents the pasture folds into a flock per host. Tap one and it opens as its own field; turn the wheel and walk the whole flock.

cerebromacbooknamek

Keeps time

The sky follows your clock.

Dawn, day, dusk and night. The sheep's colors and your orange never change with it; only the field does.

Dawn06:12
Day11:40
Dusk19:05
Night23:48

The bad days too

Designed for when things go sideways.

Out of usageWait for the reset, or finish on Sonnet with one confirmed tap.
Context fullCompact and keep going, before the agent forgets.
A host goes quietLast known, never pretend-live. Everyone else is fine.
Already answeredSomeone got there first. Nothing is sent twice.

How it works

Your tailnet. Your bridge. No cloud in between.

Rabbit R1HERDR OSTAILSCALEHerdr bridgeON YOUR COMPUTERSSHcerebroHERDR · 2 AGENTSmacbookHERDR · 14 AGENTSnamekHERDR · 1 AGENT
Reads the sourceEach harness's own files.

Model, effort, context, subagents, background commands and the conversation come from the session files and stores the agents already write.

Answers are boundTo the exact question.

Every decision carries a fingerprint of what you were shown. If the agent moved on, a stale answer is refused, not delivered.

Private by defaultNothing leaves your network.

The R1 pairs with a bridge you run, over your own Tailscale tailnet, with a one-time code and scoped tokens you can revoke.

From stock to herd

Your R1, from the box to Herdr OS.

Six steps, about forty minutes. Chrome does the flashing for you over USB: plug the R1 in and follow the installer. It erases the R1 and voids Rabbit's warranty, so it says so before every step that does.

  1. On the R1 and rabbit hole10 min
    Turn on developer mode and ask Rabbit to unlock

    In rabbit hole, under settings, r1, void the warranty to enable developer mode, then choose device modification, unlock. Rabbit's servers allow the unlock; nothing changes on the R1 yet.

  2. Chrome does it2 min
    Unlock the bootloader

    Plug in the powered-off R1. The installer catches its preloader, puts it in fastboot and unlocks it. This wipes the R1.

  3. Chrome does it10 min
    Flash LineageOS

    Turns verified boot off, wipes data the way Rabbit's restore does, removes Rabbit's launcher partition and writes the LineageOS GSI to the active slot.

  4. Chrome does it3 min
    Root with Magisk

    Patches the R1's own boot image with Magisk, on the R1, and flashes it back. You get the unpatched image as a download, to undo it.

  5. Chrome does it3 min
    Install Herdr OS

    Installs the Magisk module and the app, makes Herdr OS the home screen, sets the R1's defaults and reboots into the asleep screen.

  6. On your computer5 min
    Run the bridge, scan the code

    Install the bridge where Herdr runs and start it; `herdr-bridge enroll --tailscale --qr` prints a code the R1 scans. Your speech key goes in on the R1, never through the website.

    npm i -g @herdr-os/bridge && herdr-bridge serve --tailscale

Downloads · preview-20261029

Everything the installer sends.

The installer checks every file against these SHA-256 sums before it sends anything to your R1. Preview builds are signed with the developer's key; signed releases will update themselves.