Changelog

What's new in Waycar

New features, changes, and fixes in every update, newest first.

Unreleased

Coming in the next update.

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.