- AddedSend failing checks to a session. When a worktree session's pull request has failing checks, "Send Failing Checks to Session" in the pull request chip and the session menu fetches the failed steps' logs of each GitHub Actions check through gh, trims them to the last lines and pastes them into the session without submitting, so you can read them before the agent acts on them. Other checks are listed with their links. (#6)
- AddedLine counts in the sidebar. Worktree sessions show their added and removed lines next to the branch. The selected session updates as its files change, the others about once a minute and when you come back to omux.
- AddedTerminal font size from the keyboard. ⌘+ (or ⌘=), ⌘− and ⌘0 in the View menu. (#17)
- ChangedErrors and results of Git actions appear in a banner over the terminal instead of an alert, so they no longer stop what you're doing. Errors stay until dismissed and their text can be selected; results go away on their own. Questions that need an answer are still alerts.
- FixedThe Changes tab missed commits and resets in worktree sessions and in sessions in a subfolder of a repository, because Git's files are outside the session's folder there. It also now notices when
git initruns in a session's folder. - FixedFour more Changes tab bugs: sessions in a subfolder of a repository got a blank diff, file names that look like patterns (
a*,:x) were read as patterns, staged files before a repository's first commit didn't show, and an untracked symlink to a big file was read in full on every refresh. (#19) - FixedA worktree setup command ending in
;or&was a shell parse error, so neither the setup nor the session ran. (#20) - FixedClosing a worktree session whose base branch had been deleted or renamed said the worktree had nothing new, right above the Delete button. It now says the commits couldn't be compared. (#21)
- FixedText pasted into a session can no longer end the paste early: escape characters are removed inside a bracketed paste, so a file name from a cloned repository can't submit lines after it as commands. (#22)
- FixedThe browser's Try Again now loads the address that failed, so it works once a dev server comes up. (#23)
- FixedA missing or crashing
codexshowed a bare CancellationError instead of the message saying to install Codex CLI. (#24) - FixedA Codex rate limit update with a null field cleared the known 5-hour window and its reset time until the next full read. (#25)
- FixedOpening a folder whose project was saved as
~/code/appor with a trailing slash created a second project instead of reusing the first. (#13) - FixedA dropped or pasted file whose name contains
!failed in the shell with "event not found". (#15) - Fixed
build.shkept going after a failedswift buildand reinstalled the previous binary. It now stops, and a macOS CI workflow builds and tests every pull request. (#16)
Changelog
What changed in each release, newest first. Versions follow semantic versioning; the source is CHANGELOG.md.
- AddedDrop images into a session from any app. Dropping image data, or a file promise as Photos and browsers send, saves the image and pastes its path, which Claude Code and Codex read as an attachment. Until now only files could be dropped. (#8)
- FixedA value from a newer version in
workspace.json, such as an unknown session provider or color, made the whole workspace fail to load and get overwritten with an empty one. Unknown values now decode as unset. Recent conversations with non-ASCII text near the 128 KB read limit no longer go missing from the list. (#12) - FixedA commit hook that printed more than 64 KB to stderr froze omux for good. Diffs for a file that changed between a symlink and a regular file showed a second file header as content. Session names with
..or//produced branch names git rejects. (#9) - FixedOption typed the Meta prefix instead of the keyboard layout's character, so ⌥Q on a Turkish layout didn't give "@". Option now composes the layout's character and stays Meta only on keys without one: arrows, ⌥⏎, ⌥⌫, Escape and Tab. (#11)
- AddedUpdates. omux checks for new versions about once a day with Sparkle and offers to install them; Help › Check for Updates… checks now. Updates are signed and must pass notarization before they're installed.
- ChangedNotarized, and a disk image. Releases are signed with a Developer ID certificate, use the hardened runtime and are notarized by Apple, so the download opens without the right-click › Open step. Each release ships
omux-<version>.dmg(drag omux to Applications) and the same build as a zip../build.sh --distmakes both.
- AddedWorktree setup. A project can have a setup command that runs in each new worktree before the session starts, such as
cp "$OMUX_REPO/.env" . && npm install, so the files Git ignores and the dependencies are in place before Claude begins. The session's command only starts if setup succeeds. Set it in the New Session in Worktree sheet or in Edit Project.$OMUX_REPOpoints to the main checkout in every worktree session. (#5) - AddedWelcome sheet on first launch, and under Help › Welcome to omux: checks that Claude Code and Codex are installed, turns on notifications, checks the usage limits with an explanation of what they need, and opens a first project.
- AddedPaste images and drop files into a session. ⌘V with an image on the clipboard saves it and pastes its path, which Claude Code and Codex read as an attachment; ⌘V with files, or dropping files on the terminal, pastes their paths.
- AddedNotification style and sound. Settings › Notifications can play a sound without a banner, and pick which macOS sound.
- ChangedThe usage bar says what's wrong when it can't show limits (no Claude login, API key login, Keychain access denied, login expired) and clicking it retries. The old text was "Not signed in to Claude Code" for all of them.
- AddedCodex sessions. A project or session can run Codex instead of Claude Code: pick the agent in the project or session settings, in the worktree sheet, or with File › New Codex Session. omux starts a private Codex app-server per session, so a Codex session keeps its conversation across relaunches, shows its status, Allow/Deny for command and file-change approvals, its subagents and their transcripts, recent Codex conversations (⇧⌘O) and Codex usage limits. Needs Codex CLI 0.165 or later as
codex. (#7) - AddedBeta builds.
./build.sh --betainstalls "omux Beta" next to the release app, with its own preferences and workspace, for trying a branch. It starts with the release app's settings. - ChangedPressing ▶ on a Claude session that has no conversation yet starts one pinned to the session's id, instead of continuing the folder's most recent conversation.
- FixedThe sidebar's new session, open folder, recent conversations and settings buttons didn't respond to clicks: the session list extended up under them.
- FixedThe session header and the right panel's tabs sat below the title bar instead of level with the sidebar's buttons.
- Fixed0.3.0 kept an invisible window toolbar so the window buttons show on every macOS version, which pushed the content down. The toolbar is hidden again and the buttons are kept visible directly.
- AddedPull request status for worktree sessions, through the GitHub CLI. The sidebar and header show the pull request's number and state (checks running or failing, changes requested, approved, merged), the header chip lists each check, and the session asks for your attention when checks fail, a review arrives or the pull request is merged. Without
gh, nothing changes. (#2) - AddedClean up merged worktrees. When a worktree session's pull request is merged, the sidebar, the session menu and the pull request chip offer to close the session and delete its worktree and branch. Closing a merged session says so instead of listing commits that a squash merge leaves behind. (#3)
- AddedNotifications. A macOS notification when a session you aren't looking at needs you, such as a tool permission. Clicking it opens the session. Optional notifications when a session finishes, and for notifications programs send with OSC 9 or OSC 777, such as Claude Code's (and its plugins') when its notification channel is
ghosttyoriterm2. Each kind can be turned off in Settings › Notifications. (#4) - FixedThe window's close, minimize and full screen buttons were missing on some macOS versions.
- FixedScanning a session's output for file paths and local URLs read the terminal from a background thread (#1).
- AddedWorktree sessions (⌥⌘T). A session can get its own Git branch and folder, next to the repo in
<repo>.worktrees/<branch>, so parallel sessions don't touch each other's files. A project setting makes it the default for new sessions. Right-click a worktree session to create a pull request, merge it into its base branch or open its folder. Closing one asks whether to keep or delete the worktree. - AddedTabs in the right panel: Files (⌥⌘1), Changes (⌥⌘2) and Browser (⌥⌘3).
- AddedChanges tab. Shows the session's diff: against the base branch for worktree sessions, uncommitted changes otherwise. Click a line to leave a note, then send all notes to Claude in one message.
- AddedBrowser tab. A web view per session that opens the local server the session prints, such as
localhost:3000. The pick button adds an element's HTML, styles and a screenshot to the prompt. - AddedAllow and Deny in the sidebar and the session header when Claude asks for a tool permission, so you can answer without switching sessions.
- AddedSubagents. The selected session lists its running subagents and what each one is doing. Other sessions show a count. The header's agents button lists them all, and clicking one opens its live transcript.
- FixedRestarting a session could mark it as stopped when the old terminal's exit arrived after the new one started.
First public release.
- AddedProjects and sessions in a sidebar, with drag to reorder, rename and colors.
- AddedClaude conversations that resume after you quit and reopen omux.
- AddedLive status for each session (working, needs you, done) and a Dock badge for sessions waiting on you.
- AddedFiles panel that previews Markdown, code and text, images, PDFs, audio, video and anything Quick Look can show.
- AddedRecent Claude conversations (⇧⌘O), Claude plan usage limits in the sidebar, themes, terminal font settings and a quick switcher (⌘K).
- AddedOpen folders from Finder's "Open in omux" service, the Dock icon or
open -a omux <folder>.