conch now works with Codex as well as Claude Code. It runs sessions in the background with no Terminal window, and the review pane is where you check an agent's work: two versions side by side, and an Approve button when the agent asks for your go-ahead. A message shows as Sent only after the agent confirms it arrived, and the iPhone app gets the Mac app's controls.
Upgrading
brew upgrade conch
Then quit conch.app and open it again. The app now carries its own daemon, speech engine (whisper.cpp and SoX), tmux and uv, so only the whisper model downloads on first run. When the new daemon starts, it repairs any conch hooks the upgrade broke. If a Claude Code session that was already open stops announcing itself, type /hooks in it once or restart it.
Codex
- Codex accounts. Settings › Providers lists your ChatGPT accounts next to your Claude accounts, with each one's plan and usage. Codex sessions keep the account they were started with.
- Messages reach Codex wherever it runs: a Codex terminal session, a session on Codex's shared app-server, or an existing task in the Codex desktop app, from the Mac or the iPhone.
- Codex conversations read cleanly. You see what was said, not the context Codex injects. Tool rows show what a tool returned and whether it failed, and a failed or interrupted turn is shown and announced.
- Sends to Codex are confirmed, and conch never types into an open dialog.
Accounts
- Connect more than one Claude account, through Claude's own sign-in. Each account shows its plan, email and usage bars. You pick the account when you start a session, and it stays with that session through resume and restart.
- Continue a conversation under another account: New session › Resume › Continue with. The original conversation is left as it was.
- Sessions that have reached their usage limit are marked in the sidebar. Account capacity shows when you start a session.
- Turn an account's plugins and MCP servers on or off for its next session.
Background sessions
- Start or resume a session in the background, from the Mac or the iPhone. It runs with no Terminal window, and messages, approvals and Stop work as usual. Open Terminal attaches to it whenever you want to look.
- Background sessions run on conch's own tmux server, so a
tmux kill-servertyped somewhere else can't end them. If that server does go down, conch brings the sessions back. - A session started with no folder no longer hangs on Claude's "trust this folder" prompt.
The review pane
- Deliverables have types and versions. A session can publish a page, an image, a file, a folder (shown as a file tree) or a Figma design. Publishing again under the same name files it as the next version.
- Compare two versions with a before/after slider, side by side, or as a diff.
- Marks. An agent can mark the part of its work it wants you to look at, and the iPhone shows the marks.
- Page capture. An agent can ask conch to load a page, screenshot it, and mark one section in a single step.
- Login walls. When an agent publishes a link that needs a sign-in, conch notices and tells the agent. The iPhone gets the Mac's signed-in snapshot instead of a sign-in page.
- Approve when an agent asks. When an agent asks for your go-ahead ("Open the PR", "Deploy"), the result gets an Approve button on the Mac. Pressing it tells the agent, and you have 10 seconds to undo.
- Temporary files an agent publishes are kept, so a reboot or a temp-folder cleanup no longer leaves a broken result. Agents learn whether a publish was accepted and whether anyone can see it.
Messages you can trust
- Sent means the agent has it. A message to Claude Code shows as Sent only after the agent confirms it, through its own hook or its transcript. Typing the keys isn't enough. If conch can't confirm a message, it says so and keeps your words.
- Long messages are sent whole, as one paste. Before, a message of a few thousand characters could arrive as only its last few hundred.
- Dictations survive daemon restarts. A dictation could be skipped after a restart. Now every recent dictation is also kept, and
conch dictationsprints them so you can recover one that never reached a draft. - No false "not delivered". A message counts as sent when the session took it under a new conversation, or when a window on a finished background session started a new session for it. Before, conch put your words on the clipboard as if they had been lost.
- Dismiss works on a failed send. On the Mac, clicking Dismiss used to select the message's text instead. The iPhone now has Dismiss next to Retry. A dismissed message stays gone, and a failed send also clears itself once a later message lands.
- A send to a terminal the session has left is refused before any key is typed, and tells you to resume the session.
Seeing what agents are doing
- Live activity in the sidebar. Each working session shows one line under its row ("Running the test suite", "Editing src/voice-loop.ts"), on the Mac and the iPhone.
- An agent's running commentary appears in the conversation. A session's sub-agents show as a small group under it, and "waiting on its agents" replaces "working" when only they are running.
- Permission prompts and questions in conch. A pending permission prompt shows with Allow and Deny. Agents' questions can be answered from conch, every question at once, multi-select included. A spoken "always" no longer grants something conch can't name. conch asks for a yes or no instead, and "always" stays at the keyboard.
iPhone
The iPhone app is still built from source (mobile/conch-ios), and these features need conch 0.4.0 on the Mac.
- The Mac app's controls on the phone. Long-press a session to rename it, quiet it, open its terminal on the Mac or dismiss it. The phone also gets the Ready for you button, the command palette, the session inspector, Rename and Restart, Help with conch, and Settings for providers and voices.
- The phone sets itself up after pairing, and the Mac's setup follows it.
- Pages show with their images, every held deliverable is listed, and pages from a dev server on the Mac open through conch.
- Send a video from the phone. The session receives it as a contact sheet plus a timed transcript.
On the Mac
- The message box keeps what you type. Autocorrect no longer rewrites words as you type, text no longer turns invisible, and dictation adds to what's already in the box as you speak.
- New setup: each permission is granted once, to conch. Setup includes a practice turn, and conch opens at login from its first launch.
- Natural voices set themselves up with the uv the app carries, and repair themselves when something breaks.
- The conversation scrolls through a whole session with no "show more" buttons. It reads at a comfortable line length, and you can drag to select across messages and copy them.
- Model and effort can be changed per session. Restart a session in one step, and conch tells you when a newer Claude Code or Codex is installed.
- The Terminal button brings the session's real terminal forward.
- The app idles near 0% CPU while agents work, and the daemon's history indexing idles again.
- The floating control bar, conversation panel, on-screen drawing (Draw on Screen and Show) and the tour are off for now while their design settles. Debug › Overlays turns them back on.
Fixes
- Fixed a freeze in the sidebar. Dismissing or restoring a session, or a session filing a result while others worked, could hang the app. The sidebar now lays its rows out once and scrolls once per change.
- Closing a busy session works. conch waits up to 15 seconds for a session to finish shutting down instead of 4, messages to other sessions go through while it waits, and when a close really fails it says what happened.
- Hooks survive Homebrew upgrades. conch now writes Homebrew's stable path into hooks instead of a versioned folder that the next upgrade deletes, and repairs hooks that already broke.
conch versionreports the right version. The 0.3.0 binary reported 0.2.1, so it kept saying an upgrade you already had was available.- A frozen daemon is detected, stopped and replaced, and conch says where it froze.
- Handoffs of large Claude conversations work.