ChangelogWhat's new in Waycar
New features, changes, and fixes in every update, newest first.
Added
- CarPlay speaking speed: Settings › CarPlay Voice › Speaking Speed
(0.75× to 1.5×) speeds up or slows down both the Apple voice and the
Natural Voice, and Play Sample lets you hear it. The CarPlay Voice row
shows only the name of the voice in use, such as Heart or Ava.
- CarPlay waiting dots: while an Agent works on a reply, CarPlay’s
Waiting for reply screen bounces three dots in turn, like a typing
indicator, instead of showing a still ellipsis.
- Help inside the app: the waycar.dev help pages now ship with the app,
so they work offline. Settings › Help lists them by topic with a search
field that filters as you type; a page opens natively, with links to other
help pages, its sections and Related pages, plus Open on waycar.dev and
Share. On iPad with a keyboard, the Help menu has a Waycar Help item (⌘?
searches that menu) that opens it from the Console. Settings screens, a
Host’s page, the Host form, New Agent, Scan to Pair and the first-Host
setup guide each have a question-mark Learn More button for their topic.
- Ask an Agent from Help: once you have a Host, every help page in the
app has an Ask an Agent button. It closes Help and opens the New Agent
sheet titled Ask an Agent, prefilled with the page attached (shown as
Help: and the page title). Host, folder, agent and name stay editable,
and nothing starts until you tap Start; the agent reads the page, then
asks what you want to do.
The first 10 help pages you open with a Host on a device also show a
labelled Ask an Agent button at the top of the page, so you learn the
speech bubble with a plus at the top of the screen.
- Agent Footer: the empty band below the Toolbar on an Agent’s
terminal now shows the Agent’s name and directory. Settings › Agent
Footer picks the fields (the Agent List Fields plus branch, model,
context, cost, tokens/s, backend and connection) for up to three lines,
and a text size; the layout is per device type and synced through iCloud.
Model, context, cost and tokens/s shown there leave the strip at the top.
- AI Usage works for Claude over SSH: over SSH, CodexBar can’t open the
Mac’s keychain, so Claude (and any provider whose sign-in lives there)
showed an error even though the Mac’s menu bar had fresh numbers. AI Usage
now reads a local
codexbar serve helper on the Host first, when one is
running, and falls back to codexbar usage as before. A row blocked by the
keychain now says “Claude can’t be read over SSH” with a “Fix it for me…”
button: after you confirm, Waycar opens New Agent titled Fix AI Usage,
locked to that Host with the fix instructions attached. Pick the agent,
its name and folder; once you tap Start, the agent explains the change,
asks before touching the Mac, then sets up the helper as a LaunchAgent (a
Terminal window opens on the Mac to load it). The fix Agent doesn’t
change the sheet’s Last Used choices.
- Rename a herdr tab from the Console: touch and hold an Agent card and
pick Rename Tab… to rename its herdr tab.
- Duplicate a Host: swipe left on a Host card, or touch and hold it, and
pick Duplicate (Delete is there too). A Duplicate Host form opens with the
Host’s connection settings copied (address, port, user, authentication
with any saved password, herdr session, Jump Host) and a named Host’s name
marked “Copy”, so reaching the same machine on another network is just a
new address. Saving opens the new Host’s page.
- Waycar in CarPlay: on iOS 26.4 and later, Waycar shows your Agents on
the car’s screen, attention first (Blocked, then Done, Working, Idle),
with a “Talk to Waycar” row on top. Each Agent reads as it does on the
phone, Workspace and tab name (“web · Fix login”). Tap an Agent and ask it anything out
loud, hands-free: Waycar sends your question as soon as you pause, speaks
the Agent’s answer in a sentence or two, then listens for your next
question to the same Agent, until you go back, say “stop” or “that’s
all”, or say nothing for two minutes. Replies keep the car’s audio until
they’re spoken, so an answer is never dropped while the Agent works.
Waycar speaks with the best voice installed on your iPhone; Settings ›
CarPlay Voice shows it and lets you pick another (download Enhanced or
Premium voices in iOS Settings › Accessibility › Read & Speak › Voices).
A claude or codex Agent waiting on a plain Yes/No command approval can be
allowed or denied by voice; risky or long commands are held, and
folder-trust and other questions are only
read out. Nothing an Agent writes is shown on the car’s screen, speech is
transcribed on the iPhone, and CarPlay works with the iPhone locked.
Agent Notifications still reach the Lock Screen and Apple Watch while
Waycar is open only in the car.
- Natural Voice (Beta) in CarPlay: Settings › CarPlay Voice › Natural
Voice speaks the car’s lines with a neural voice model that runs on
your iPhone. Compare three models: Kokoro (most natural, about
230 MB), Pocket TTS by Kyutai (fastest to start, most speakers, about
530 MB) and Paradee Lite (about 13 MB, lowest battery). Download any of
them, switch between them, pick a Speaker, and delete one to free
space. Models download only from Settings, at a pinned version checked
against Hugging Face’s published hashes. Nothing leaves your phone after
the download, and whenever it can’t speak, Waycar uses the CarPlay Voice
chosen above.
- Settings › Support: Email Support opens a message to support@waycar.dev,
and Community on Reddit opens r/waycar for discussion, bugs, and feature
requests.
- Files and links in the terminal: when an Agent prints the path of an
image, a PDF, or a Markdown file on its Host, Waycar keeps the newest 25 in
a small strip in the status row under the terminal. Images (absolute,
~/,
or relative with a folder) are fetched in the background and show as
thumbnails; an image whose file is missing shows nothing until the Agent
prints it again. PDFs and Markdown files, a bare README.md included,
show as icons and are only fetched when you open one. Web links the
terminal shows join the same strip as one link tile after the files. The
strip always shows one of each kind there is, then the newest of the
rest; on a narrow screen or at large text sizes it shrinks to one tile.
Tap it for Files & Links, a list of every file, newest first, with its
folder, then every link, newest first, with its host and full address: a
Markdown file opens rendered, an image or PDF full screen, and a link in
the browser (Copy Link if it can’t open; touch and hold a link to copy
it). This replaces the floating link button over the terminal and the
link chip in Message Agent. The terminal never changes size for the
strip.
- Markdown files in the terminal: tap the path of a Markdown file an
Agent printed (
docs/plan.md, or a bare README.md) and Waycar shows it
rendered in a sheet — headings, lists and checklists, tables, code blocks,
and quotes — instead of as plain text. A button at the top flips to the raw
text, which you can select, and Waycar remembers which you picked. A web
link in the file asks first, then opens in the browser; a link to another
file on the Host asks first, then opens another Markdown file in the same
sheet and anything else in Quick Look; a link to a heading scrolls to it.
Images are never loaded; each shows as a placeholder with its
description. A file over 1 MB still opens as plain text.
- Queued messages: a message you send to an Agent while its Host is not
connected, or one that fails before it left the phone, now waits on the
phone as Queued instead of failing. Queued messages keep their images and
files (copied onto the phone), survive closing Waycar, and go out on their
own, oldest first, as soon as the Host is back: after a reconnect, a network
change, a return to Waycar, or a launch. Attachments upload before the
message is sent. Each shows “Queued” and its age under the Composer and in
Chat Mode, with Cancel and Edit, and the Agent’s row shows how many are
waiting. If a different Agent now runs in that pane, or none was listed when
you sent it, the message is held and asks you to send it anyway, edit it, or
delete it. Changing a Host’s address or user deletes its queued messages.
Queued text is stored with complete file protection. A send that may have
reached the Host before the link dropped still fails with Retry, so nothing
is sent twice. A queued message springs in with a dashed outline and a
softly pulsing clock; going out, its clock turns into an arrow and then a
check in place, and the row badge’s count rolls over. With Reduce Motion
on, every change is a plain crossfade.
- Busy shells: a Shell card shows Running and the command, for example
sudo apt update, while one runs.
- Chat Mode for nine more agents: GitHub Copilot CLI, Qwen Code, Gemini
CLI, Grok Build, Antigravity, Hermes Agent, Kilo Code, Cline and Muse now open as
a chat, each with its own Chat Prompt route, model and Quick thinking flags,
first message and transcript reader. Cline chats start without the Chat
Prompt (Cline can only replace its own); Grok Build and Hermes Agent chats
show text only. On herdr, Antigravity chats need herdr’s Antigravity
integration.
- tmux status for twelve more agents: the Status Hooks now cover GitHub
Copilot CLI, Qwen Code, Gemini CLI, Grok Build, Antigravity, Hermes Agent,
Kilo Code, Cline, Cursor Agent, Devin CLI, Kiro CLI and Muse, alongside
Claude Code, Codex, omp, pi and opencode. Antigravity and Cline have no
approval hook, so Blocked comes from their screen; for both the Host reads
it too, so their Blocked also sends a notification. Kiro CLI runs the
hooks only with
--v3.
- Supported agents help page with what each agent supports on herdr and
tmux: status, Chat Mode, resume, scrolling and Skills.
- AI Summaries through more agents: a Host can now write summaries through
pi, Qwen Code, Gemini CLI, GitHub Copilot CLI, opencode, Kilo Code, Hermes
Agent or Muse, with the agent’s tools turned off.
- Sign-in screens: Waycar no longer types a message into Cursor Agent,
Devin CLI, Kiro CLI, Antigravity or Muse while it shows its sign-in screen, where
it would start the sign-in. The Composer says “Sign in to … on the Host
first.”
- Changelog: Settings › About › Changelog lists each release since
1.0.1, newest first, with what’s coming in the next update at the top. The
same changelog is at waycar.dev/changelog.
Changed
- Appearance setting is gray: Settings › Appearance shows System, Light
or Dark in gray like the row icons, not purple.
- Chat Mode images: an image path written as inline code (
`/path/shot.png`)
or inside a table cell now shows its thumbnail too, and an image the reply
only mentions that cannot be loaded no longer leaves a “Can’t load” tile.
- Launch status at the top of New Agent: after Start, the sheet shows
what the launch is doing in one line pinned under its title, where the
keyboard can’t cover it. Each step softly blurs into the next, with the
seconds spent on a slow one, and a failure shows there with its reason.
Switching to another Host clears a failure from the previous one.
- Resume falls back per agent: a Closed Session whose agent reported no
session now opens that agent’s own picker or latest session where it has
one (GitHub Copilot CLI, Qwen Code, Grok Build, Hermes Agent, Kilo Code,
Antigravity, Gemini CLI, Kiro CLI, Devin CLI, Muse), and uses the right
resume form for Gemini CLI, Kiro CLI, Cline, Antigravity, Muse and Hermes
Agent (its latest session in the folder, not the last one run in that
terminal). Close Agent still asks first when only the latest session
would come back, since that may be another Agent’s.
- Agents that drop early typing: Waycar waits for Kilo Code’s input box
and Cline’s prompt row, and a few seconds after GitHub Copilot CLI, Qwen
Code and Gemini CLI start, before it sends a message. On tmux, a message
to a just-started GitHub Copilot CLI, Codex, Antigravity, Kiro CLI, Muse,
Grok Build, Gemini CLI or Qwen Code also waits while a choice box it
recognizes (a folder-trust prompt, “Session in use”, a tool approval)
is on screen, instead of its Return answering the box. GitHub Copilot CLI
shows Blocked on tmux while such a box is up, even before its first hook.
- Scrolling on tmux: inline agents (omp, Gemini CLI, Antigravity, the
Hermes Agent REPL, Kiro CLI, Muse) and plain shells on tmux now scroll, and get
the jump buttons, through tmux’s copy mode. Scrolling back to the bottom,
typing or sending leaves it; desk windows on that pane see the scrolled view
meanwhile. A drag no longer sends arrow keys, which recalled Codex’s and the
shell’s input history; Codex on tmux still doesn’t scroll. On herdr 0.9.3 or
later every agent scrolls.
- Exact resume on herdr without integrations: Claude Code, pi, GitHub
Copilot CLI, Qwen Code and Grok Build launches get a session id from
Waycar, so their Closed Sessions reopen that exact session even without
herdr’s integration.
- More Skills: omp, GitHub Copilot CLI, Qwen Code, Kilo Code, Cline, Grok
Build and Devin CLI list skills from more of their folders, Cline’s
workflows show too, and Muse’s skills are listed.
- opencode chats on herdr without herdr’s integration: Waycar now finds
opencode, Kilo Code and Hermes Agent chats by their folder and start time,
so
herdr integration install opencode is no longer needed for Chat Mode.
- Ask an Agent with any agent: Ask an Agent and AI Usage’s Fix it for
me… offer every installed agent. One that can’t take a first message
when it starts (GitHub Copilot CLI, Amp, Droid, Kimi CLI and others) gets
it as a queued message in its Composer, sent once, as soon as it takes
input.
- One tap back to typing on a portrait iPad: with the Agent list open,
tapping the part of the Agent still showing closes the list and puts the
keyboard in the terminal, so you can type or use the arrow keys right
away. Landscape is unchanged: the list stays open beside the Agent.
- Close Agent closes right away: Close Agent in an open Agent’s More
menu no longer asks for confirmation first; resume a mistaken close from
Closed Sessions. It still asks for a Shell, or an Agent whose
conversation Closed Sessions can’t bring back.
Fixed
- Claude Code status on tmux: Claude Code 2.1.296 runs its hooks without
a terminal, so tmux status, sessions and notifications for Claude Code had
stopped. They work again.
- Other agents posing as Claude Code on tmux: Cursor Agent, Grok Build,
Devin CLI and GitHub Copilot CLI also run Claude Code’s hooks, which could
show them as Claude Code with the wrong status. Waycar’s Claude Code hooks
now ignore them.
- Hermes Agent, Gemini CLI and Cline on tmux: a message sent from Waycar
could sit typed but unsent. Waycar now sends its Return separately, and
only while the message still shows in the agent’s input and no tool
approval has opened meanwhile, so the Return never approves a tool.
- Folder-trust questions: Grok Build, Gemini CLI, Qwen Code and Muse can
open by asking whether to trust the folder, and herdr shows Grok Build and
Gemini CLI as ready meanwhile. A message from Waycar could answer that
question: Grok Build trusts the folder on a typed “y”, Muse on Return,
which loads the folder’s own hooks. Waycar now sends nothing while the
question shows. The Composer says to answer it in the terminal first, the
car keeps a spoken question as a draft (as for a sign-in screen), and on
tmux Grok Build and Gemini CLI show as Blocked until it is answered.
- Paste screenshots and files into Message Agent: pasting a copied
screenshot, photo or file into the Composer (or Chat Mode’s message
field) now adds it to the attachment chips, like Add Image and Add File.
Before, Paste did nothing unless the clipboard held text.
- CarPlay replies aren’t cut by their own notification: while you talk
to an Agent in CarPlay, that Agent’s notifications stay silent, and while
Waycar is speaking or listening, no Agent Notification plays a sound or
shows a banner. Other Agents’ notifications still arrive between turns.
- CarPlay replies survive notifications: a notification or call over a
spoken Agent reply now pauses it, and the reply carries on from where it
stopped once the interruption ends. A reply that can’t resume within 8
seconds is spoken again from the start of the sentence it stopped in,
instead of going silent.
- Long Chat Prompts no longer hang the launch: a Chat Mode or New Chat
Agent could sit at a half-typed command line when its Chat Prompt (or first
message) was long. Waycar now writes the prompt to a private file on the
Host and points the Agent at it: claude and pi read it as an appended
system prompt, omp too, codex through a temporary Waycar profile, and each
kind is asked to read the first message’s file; opencode keeps getting the
Chat Prompt from the Waycar plugin.
- Tapping an Agent’s terminal raises the keyboard wherever you tap. With
omp or pi over mosh, only a tap on the row the cursor sat on did, so most
taps did nothing and arrow keys on an iPad keyboard didn’t reach the
Agent until the keyboard button was pressed. Over SSH, and for Claude Code
and Codex, any tap already worked.
- Opening the Agent list on a portrait iPad puts the keyboard away: the
terminal’s keyboard could stay up under the list, so typing or the arrow
keys still went to the Agent you couldn’t see.
- A locked Agent takes no typing: its terminal no longer keeps or takes
the keyboard under the lock card, whether it gets locked with the keyboard
up or you switch to it with the keyboard up. ⌘Return no longer sends a
Message Agent draft under the lock, and a paste waiting for review is
dropped when the lock lands.
- Clicking a link with a trackpad or mouse on iPad now opens it, as a tap
does. In an Agent’s terminal the click went to the Agent instead, so a link
Claude Code printed did nothing. Dragging from a link, right-clicking, and
⌘-clicking work as before.
- Links from Claude Code: a link Claude Code printed, such as a
claude.ai/code address, now shows in an Agent’s links. Characters Claude
Code draws (its banner, the
❯ prompt, box lines) were read as hidden
terminal commands that swallowed the text after them, link included. The
same went for Codex’s spinner and any emoji an Agent printed.
- Swipe back with text selected: swiping from the left edge now goes back
while text is selected, instead of doing nothing until you tap to clear the
selection. Only a selection handle sitting right at the left edge still
takes the drag there, so it stays grabbable.
- Stray characters over mosh: Agent terminals over mosh no longer leave
stray characters from earlier output on slow or lossy connections, and
returning to the app redraws the screen from its last known state.
- Toolbar Paste key: the Toolbar’s Paste key could show as a blank space,
once iOS’s paste service had stopped while Waycar kept running (until the
app was relaunched), or with text size set to Extra Large or larger. It now
always draws and pastes: if the system paste key can’t draw, a plain Paste
key takes its place (iOS may ask to allow each paste from it), and at large
text sizes its glyph grows no further than at the default size.
- Jumping between your messages: the message-jump buttons now stop at
your earlier messages in OpenCode, Pi and oh-my-pi (read from the Agent’s
own transcript), and in Kimi, Maki, Hermes and Mastra Code, including ones
typed on the Host, instead of only messages sent from this app. They no
longer stop at OpenCode’s error panel or “message reverted” banner, at an
input box’s placeholder or draft, or at a selection menu (Copilot, Droid,
Antigravity, Qoder).
- Tapping a link split across lines: tapping or clicking a web link that
carried on onto the next line now opens the whole link, from either line,
instead of the part on the line you tapped. That includes links OpenCode
and Kilo wrap short of the edge, and Kilo’s hyperlinks.
- Links from wrapped and streamed text: an Agent’s links now show each
URL whole, without cut-off copies, when the URL wrapped onto the next line
or was still being typed out as the reply streamed. A link that ends a line
no longer picks up the next line’s first word (
README.md, follow-up,
10:30), and an earlier link stays listed after it scrolls away. A link
next to an ellipsis, arrow, bullet, box line or Markdown **/` no
longer picks those up.
- Files from wrapped text: a file path no longer picks up the word before
it on the line above (
and/tmp/shot.png), and the cut-off end of a
wrapped path is no longer listed on its own.
- Hermes and Muse on tmux Hosts are recognised as Agents.
Older releases