New features
- Deep links: the address names the PC, workspace, pane and view, and opens there.
- A Claude Code or Codex plan shows as progress in the header and opens as a flow or list.
- Chat reads Grok, Antigravity (experimental), Hermes and OpenCode 1.x natively.
- Mermaid blocks in chat are drawn as diagrams, and the file viewer renders Markdown.
- New workspace offers your three most recent folders.
- Turkish joins the languages, and Colors gains the Forest palette.
Improvements
- On a phone, sheets, the drawer and the chat move like a native app's.
- A split pane under 80 columns shrinks its font so programs like btop still fit.
- Chat follows the agent's transcript as it is written, not on a timer.
- Terminal: pick the cursor shape, pinch to resize the font, hold an arrow to repeat it.
- Anonymous counts also name the appearance settings you changed; the notice shows again.
- Usage meters can show each limit's pace and when it runs out (turn it on in Settings).
Bug fixes
- A phone shows a split tab one pane at a time again, at full width.
- Markdown opened in a new tab stays rendered.
- A message stopped right after sending returns to the message box instead of sticking.
- Push alerts stay quiet while you are using the app on any device.
- Back and Forward follow a pane after it is moved.
Full changelog
Added
-
Settings → Subscription usage → Show pace (off by default) makes the usage meters show each
limit's pace: a mark on its bar where an even pace would be by now,
how fast it is being used (15%/hfor a session,18%/dayfor a week), and Runs out in 2d 1h
when that pace reaches the limit before it resets. A chip whose limit runs out before its reset
turns its hairline red while its share is still low, and says when in its label; once that
time has gone by, both stay until the reset as Runs out before reset. The pace is
measured when the numbers were read, and shown only where the provider states the window's
start or length (Claude, Codex, Grok), from 5% of the window on.
(#513 by @kilhyeonjun, #834) -
Turkish (Türkçe) UI translation: a full
i18n.tr.tsdictionary, the language in the Settings menu with browser detection, and a Turkish README. (#815 by @fitzgpt) -
Native conversation transcripts for Hermes Agent: turns, thinking blocks, and tool calls are read directly from its SQLite session store. (#604 by @RikiSanjayaa)
A remote PC reads them once its bridge is updated to this release's runtime. -
Deep links. The address now says where you are, and opens there: the PC, the workspace (by id and a short slug of its name, so
?ws=w2K-herdr-web-ui&pane=w2K:p1&view=chatreads like the place), the pane and its lens, an open file, a Settings page and group (&settings=about§ion=updates), the New workspace dialog with its fields filled (?new=workspace&cwd=…&name=…&agent=…; a link never creates anything), and a collapsed sidebar (&sidebar=hidden). Opening another pane is a history entry, so Back returns to the last one. A link to a pane that has closed opens its workspace, a link to nothing open says so, and Copy link in the header's More menu copies the address on a phone.
(#675 by @phirschybar, #762) -
Chat:
SendUserFilecalls show their caption and the files they name as openable links,
the same way any other tool's file path already opens, instead of the call's raw JSON.
(#730 by @bluzername, #757) -
Settings → Terminal sets the cursor shape (block, bar or underline) and whether it blinks, for
every terminal pane. A program in the pane that sets its own cursor style (DECSCUSR) can still
change it, as before this setting existed.
(#731 by @bluzername, #758) -
Holding an arrow in the touch key bar repeats it until release, including held modifiers and
saved arrow combinations. A tap still sends one key, and swiping sideways scrolls the row
without sending a key.
(#719 by @zerodice0, #758) -
On a phone, a two-finger pinch on the terminal changes its font size live (10–22 px), with a
badge showing the size; the shared pty resizes once, when a finger lifts.
(#713 by @zerodice0, #758) -
Grok chat reads native messages and tool activity, respects logical rewinds and
refreshes expanded tool output. For now it works only with the native Grok build
grok-1.0.50-linux-x86_64on Linux; other builds, macOS and Windows show the terminal view.
See setup and limits.
(#777 by @infowolfe) -
Experimental Antigravity chat reads native messages and tool activity, follows the
running process’s active conversation, and honors saved rewind boundaries. macOS is untested.
See compatibility and validation.
(#789 by @infowolfe) -
Hermes's clarify questions get an answer card, as Claude Code's and Codex's do: one tap per
choice, a typed answer for its "Other" row and for an open question, and ticks for a question
that takes several answers. Text already on its answer line is cleared first, so it does not
join the answer.
(#750 by @DarkoKuzmanovic, #764) -
Settings → Appearance → Colors offers Forest, a low-saturation green-grey palette for long
sessions, in dark and light, with matching terminal and title-bar colors.
(#775 by @vibewriter-hand) -
A Claude Code or Codex pane's plan appears as progress in the header and sidebar. Open it
from the header in Chat or Terminal to see its steps as a flow or a list, with the current
step and elapsed times. It is read from the agent's transcript. Settings → Appearance can
take the count out of the header (Plan count in the header) and open the plan as the
list alone (Plan flow); both are on by default.
(#531 by @kilhyeonjun, #820) -
A
mermaidcode block in the chat is drawn as a diagram, with a full-screen lightbox to zoom and
pan it, and the file viewer renders markdown files with local images; larger images are offered
as downloads. (#616 by @lyonbot) -
Settings → Appearance → Pin agents (off by default) shows a star beside each row of the Agents list that pins the agent to the top; pins keep their order across reloads. (#778 by @vibewriter-hand, #820)
-
An OpenCode pane on a 1.x store (
session/message/part) reads as a conversation again, where
the chat used to keep the terminal's text: prompts with the pictures pasted in them, each answer's
steps with their tool calls and outputs, and the turns an/undotook back.
(#690 by @okcedric)
Changed
-
The anonymous install and update counts also name the appearance settings changed from their
defaults (theme, density, colors, sidebar rows, Agents order, workspace cards, pin agents and the
two plan settings): the names only, never a value, and never a setting you type. The notice is
shown once more before anything is sent, and the same switch and environment variables turn it off.
(Anonymous usage counts, #820) -
A split pane narrower than 80 columns draws its terminal in a smaller font, down to 10px, so
it still has the 80 columns programs such as btop need; widened or zoomed, it returns to your
font size. A pane too narrow to reach 80 columns even at 10px keeps your size, as does a pane this
browser only mirrors or watches. Settings → Terminal → Fit 80 columns in a split pane turns
it off. (#824) -
On a phone the app moves and responds like an iPhone app rather than a web page. Menus,
dialogs, the palette and Settings slide up from the bottom, follow your finger when you drag
them down, and slide away however they close; the workspace drawer follows your finger too.
Over the chat the header is frosted glass that the conversation scrolls under, and the message
box floats over the conversation's end. A tapped button dims at once instead of drawing an amber
box, a list row fills when pressed, a long press on the app's buttons and rows no longer selects
their text.
(#683 by @jiunshinn) -
Chat updates follow native transcript changes pushed through the existing WebSocket.
Only visible Chat views subscribe; Terminal views and hidden tabs release conversation
monitoring. Continuous pushes coalesce into at most one newest-page refresh every 2 seconds,
with a 10-second fallback; without pushes (an older remote PC, or a tab that let go of its pane)
Chat reads every 2 seconds as before. Initial display, sends, reconnect and returning to the tab refresh
immediately without overlapping reads or dropping held history. A Chat that shows the
terminal's text because no native transcript exists yet rereads on the pane's output instead.
A remote PC gets pushes once its bridge runs a bundle with this change. Approval-card polling
remains independent.
(#689 by @zerodice0, #757) -
Settings → Appearance → Workspace cards (off by default) puts each workspace's agents in
the sidebar's Agents list in a card under the workspace's name, so agents working in the same
workspace read as one group. Rows in a card do not repeat the workspace on their second line;
their tooltips still name it. A list in Activity order draws no cards, since it mixes workspaces.
(#673 by @WOULDU-pres, #820) -
New workspace offers the three most recent folders of the PC as chips on one row, kept after
workspaces close and the browser reloads. A chip puts its folder in Directory; a successful
start moves that folder to the front, ahead of folders a shell only passed through.
(#652 by @od-studio-webagency, #829)
Fixed
- Mod+Shift+↑/↓ switch panes from the chat's empty message box too, as they do from the terminal.
A box with a draft keeps them for selecting text.
(#827 by @sergiorademacher) - Reloading with Settings open closes Settings whenever the browser gets to its step back; it could
come back when the app had drawn itself first, as on a slow device. (#825) - A phone shows a split tab one pane at a time again, at the screen's whole width, instead of
every pane squeezed into herdr's grid (since 0.4.6). The tab's menu lists the tab's panes to
switch between them. Wider screens keep the split, and herdr's own layout is not changed.
(#819) - Markdown files opened in a new tab keep their rendered preview instead of showing source.
The link stays on the file's PC without requiring its original pane; Open raw file and Download
still provide the original contents. (#823) - Chat hides a rejected conversation immediately, even when reading its terminal fallback
is slow or fails, so removed history does not remain on screen.
(#789 by @infowolfe) - Grok and Antigravity Chat show native turn activity, open live tool rows even when Herdr reports ready or done, and explain when native chat is unavailable.
(#816 by @infowolfe) - When a chat message is not sent because Claude Code's input box in the terminal is not empty,
the note now says what the box holds, and a one-line draft there can be cleared from the chat
with Clear it and send. The chat did not show that text, so Send seemed to do nothing until the
text was found and deleted in the terminal. The cleared text comes back in the terminal with Ctrl+Y.
(#728 by @jiunshinn) - A Claude Code chat whose session continued in a new transcript file (the old file holds only
acontinued-inrecord) now shows the conversation from the file Claude writes to, instead of
an empty chat.
(#779 by @vibewriter-hand) - A pane in use keeps the lens it shows: with Panes open in → Chat, a shell split beside an
agent no longer turns into its chat when an agent starts in it, and an agent pane no longer
turns into its terminal when the agent exits. A lens picked by hand still wins, and a new
Settings choice applies again to every pane.
(#755) - A Claude pane that used an agent team no longer counts its teammates as running after they
shut down: a teammate that approved its lead's shutdown request reads as completed, so the
pane's running count and the agent list show only what still runs.
(#744 by @Haeminway1, #764) - A Claude Code multiple-choice question stays a multiple choice once a row is ticked in the
terminal (Claude Code 2.1.296 draws the tick as[✔]), its options no longer carry the box, and
the card stays up with the cursor on its Submit row. A pick there used to untick the row
instead of answering.
(#764) - An agent chat without a structured conversation no longer waits on hidden terminal output. Opening the terminal disclosure reads it independently; chat header/body reads have a 15-second deadline (30 seconds on a remote PC).
(#791 by @kilhyeonjun) - Keep text file previews within their byte budget when a peer ignores Range, reject HTTP error bodies, and cancel stalled or closed previews.
(#785 by @kilhyeonjun) - A Claude
/modellist whose hint a narrow pane wraps inside a word or over more than six lines
is still recognised, so a pending message waits instead of pressing Enter on it, and the same
words quoted in Claude's output no longer hold pending messages.
(#764) - Push alerts no longer reach every device while you are using the app: while any window of it
is visible and focused, on any device, no device gets an alert. Alerts resume once no window
is in use, and Send test still always sends.
(#759) - A click in the terminal while an arrow key is still on its way to herdr reaches the program as
a click, instead of being typed into it as the raw characters of a mouse report.
(#763) - OmO's side panel no longer draws a dotted line under its file, goal and memory rows in the
terminal: a link the app cannot open is no longer underlined.
(#763) - The Agents list no longer repeats an agent's kind beside the mark that already shows it, so
workspace and tab names keep the room on a narrow sidebar. The kind stays in the row's tooltip
and is still read out by screen readers; an agent without a mark of its own keeps the word.
(#761) - A chat message stopped right after sending, before Claude Code answered, is no longer stuck: the
message goes back into the message box to edit and send again, as Claude Code puts it back in its
own input box, instead of staying in the chat as sent and the next send failing with "Claude
Code's input box in the terminal is not empty". The new send replaces that copy in the terminal
and stays in the same conversation, and the cancelled message is not shown beside it. A draft you
typed or changed in the terminal is still never replaced.
(#741 by @Haeminway1,
#760) - Send now on a Claude Code pane that is working sends the message at once, as Ctrl+Enter in
the terminal does, instead of leaving it in Claude Code's own queue until the turn ends.
(#760) - A pending chat message is no longer typed, or committed, after its connection lost the right to
send it while herdr was being reached: refused before the paste it stays unsent, after it the
message is marked for a check in the terminal. (#760) - A folded PC/workspace section no longer leaves a large empty gap below it: a visible Agents list
takes the unused height, and an empty one follows the folded section directly. The Agents height
cap, independent scrolling and fixed footer stay unchanged.
(#780 by @vibewriter-hand) - Back and Forward after a pane is moved: the move no longer adds a history entry, and Back to an
entry from before the move opens the pane under its new id instead of its old workspace. Back to
an entry for a PC removed since stays on the pane shown and says the PC is not set up here,
instead of selecting the missing PC and leaving the pane blank. Back or Forward that lands
elsewhere than its entry named no longer drops the entries after it.
(#804 by @phirschybar) - An agent herdr names with an icon-font glyph (a private-use character) no longer shows that glyph as
a stray character beside the session's name: its fallback mark takes the first real letter.
(#817 by @foxion37)
Maintenance
- CI runs the browser scripts in parallel and the unit tests in parallel processes, and caches its
setup. (#795, #805) - Browser checks that failed by timing no longer do: a route's handlers finish before it is
removed, the pending-input recorder polls its screen, the page clock is paused at a time the
page has not passed, and the IME check waits for the whole commit.
(#756, #767, #813, #831) - Grok chat reads each transcript with one stat, so an append between two reads cannot split it.
(#810) - The guide names Settings → Phone & devices as the app does. Contributing: changes that need
each other may share a pull request, and a UI change no longer has to attach a screenshot.
(#743 by @rabbitson87, #821, #826) - The remote-PC runtime is now version 26: every saved PC asks for Update bridge… once.