Changelog

What changed in each release, newest first. Versions follow semantic versioning; the source is CHANGELOG.md.

0.7.0

Latest

Release on GitHub

  • Added
    Send 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)
  • Added
    Line 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.
  • Added
    Terminal font size from the keyboard. ⌘+ (or ⌘=), ⌘− and ⌘0 in the View menu. (#17)
  • Changed
    Errors 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.
  • Fixed
    The 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 init runs in a session's folder.
  • Fixed
    Four 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)
  • Fixed
    A worktree setup command ending in ; or & was a shell parse error, so neither the setup nor the session ran. (#20)
  • Fixed
    Closing 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)
  • Fixed
    Text 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)
  • Fixed
    The browser's Try Again now loads the address that failed, so it works once a dev server comes up. (#23)
  • Fixed
    A missing or crashing codex showed a bare CancellationError instead of the message saying to install Codex CLI. (#24)
  • Fixed
    A Codex rate limit update with a null field cleared the known 5-hour window and its reset time until the next full read. (#25)
  • Fixed
    Opening a folder whose project was saved as ~/code/app or with a trailing slash created a second project instead of reusing the first. (#13)
  • Fixed
    A dropped or pasted file whose name contains ! failed in the shell with "event not found". (#15)
  • Fixed
    build.sh kept going after a failed swift build and reinstalled the previous binary. It now stops, and a macOS CI workflow builds and tests every pull request. (#16)

0.6.1

Release on GitHub

  • Added
    Drop 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)
  • Fixed
    A 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)
  • Fixed
    A 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)
  • Fixed
    Option 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)

0.6.0

Release on GitHub

  • Added
    Updates. 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.

0.5.1

Release on GitHub

  • Changed
    Notarized, 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 --dist makes both.

0.5.0

Release on GitHub

  • Added
    Worktree 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_REPO points to the main checkout in every worktree session. (#5)
  • Added
    Welcome 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.
  • Added
    Paste 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.
  • Added
    Notification style and sound. Settings › Notifications can play a sound without a banner, and pick which macOS sound.
  • Changed
    The 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.

0.4.0

Release on GitHub

  • Added
    Codex 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)
  • Added
    Beta builds. ./build.sh --beta installs "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.
  • Changed
    Pressing ▶ 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.
  • Fixed
    The sidebar's new session, open folder, recent conversations and settings buttons didn't respond to clicks: the session list extended up under them.
  • Fixed
    The session header and the right panel's tabs sat below the title bar instead of level with the sidebar's buttons.
  • Fixed
    0.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.

0.3.0

Release on GitHub

  • Added
    Pull 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)
  • Added
    Clean 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)
  • Added
    Notifications. 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 ghostty or iterm2. Each kind can be turned off in Settings › Notifications. (#4)
  • Fixed
    The window's close, minimize and full screen buttons were missing on some macOS versions.
  • Fixed
    Scanning a session's output for file paths and local URLs read the terminal from a background thread (#1).

0.2.0

Release on GitHub

  • Added
    Worktree 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.
  • Added
    Tabs in the right panel: Files (⌥⌘1), Changes (⌥⌘2) and Browser (⌥⌘3).
  • Added
    Changes 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.
  • Added
    Browser 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.
  • Added
    Allow and Deny in the sidebar and the session header when Claude asks for a tool permission, so you can answer without switching sessions.
  • Added
    Subagents. 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.
  • Fixed
    Restarting a session could mark it as stopped when the old terminal's exit arrived after the new one started.

0.1.0

Release on GitHub

First public release.

  • Added
    Projects and sessions in a sidebar, with drag to reorder, rename and colors.
  • Added
    Claude conversations that resume after you quit and reopen omux.
  • Added
    Live status for each session (working, needs you, done) and a Dock badge for sessions waiting on you.
  • Added
    Files panel that previews Markdown, code and text, images, PDFs, audio, video and anything Quick Look can show.
  • Added
    Recent Claude conversations (⇧⌘O), Claude plan usage limits in the sidebar, themes, terminal font settings and a quick switcher (⌘K).
  • Added
    Open folders from Finder's "Open in omux" service, the Dock icon or open -a omux <folder>.