Skip to content

Releases: onurozcan/omux

omux 0.8.0

Choose a tag to compare

@onurozcan onurozcan released this 31 Oct 18:37

Added

  • Sessions named after their conversation. A session that still has a made-up name ("Session 3") takes the topic Claude Code gives the conversation, the way iTerm shows it in the tab. Renaming a session, in the sidebar or the Edit Session sheet, keeps your name from then on. (#41)
  • Close a session from the sidebar. Hovering a session row turns its status dot into a close button. Worktree sessions still ask before closing. (#42)
  • ⌘-click on Foo.swift:12:4 opens the file in the preview, the way plain paths do, instead of handing it to the default editor. (#39)

Changed

  • Closing the main window quits omux, with the usual confirmation, instead of leaving every session running with no window. The close, minimize and zoom buttons also stay visible on newer macOS, where hiding the toolbar hid them too. (#43)
  • Claude Code and Codex no longer start on their own in the home folder. An agent started in ~ treats all of it as its project and reads Downloads, Documents, Pictures and Music, so macOS asked for access to each in omux's name. A session without a project folder now opens a shell and shows a banner pointing to Edit Session; starting the agent by hand still works. (#45)
  • Allow picks Claude Code's "Yes" wherever the highlight is in the prompt. It used to press Return, which took the highlighted row, so a moved highlight could switch the session to "accept edits" or deny the tool. Allow and Deny now appear only for tool prompts, not for plan approval or peer messages, whose first option isn't a plain yes. (#36)
  • Review notes that couldn't be sent because the session isn't running are kept, with a banner, instead of dropped. (#28)
  • A ⌘-clicked folder or app bundle is shown in Finder instead of opened. (#39)

Fixed

  • A worktree branch name starting with -, such as -D, made git run git branch -D <base> and delete the base branch. Names git rejects are refused before anything runs, and a branch whose folder is already in use (feat/x and feat-x share one) no longer leaves a stray branch behind. (#26)
  • The browser's element picker accepted messages from any page or frame at any time and typed them into the session. It now takes a pick only while you're picking, from the page itself, with control characters removed. (#34)
  • A file name with a newline in it could end the typed line and run what followed: in review notes, where the name comes from git, and in files dropped or pasted into a session. Both are escaped now. (#35, #38)
  • Invisible Unicode (tag characters, bidi overrides, zero-width spaces, variation selectors) is removed from pasted check logs, so what you read before sending is what the agent gets. (#40)
  • A double-click on Codex's Allow also accepted the next pending approval, which you hadn't seen. The buttons now answer only the request they showed. (#37)
  • Recent Conversations titled a session started with a skill's slash command after the skill's instructions ("Base directory for this skill: …") instead of what you typed. (#27)
  • A pull request result arriving for a session closed while gh ran left a Dock badge nothing could clear. (#29)
  • Saving the Edit Session sheet put a Codex session's thread back to the one from when the sheet opened, so a restart resumed the wrong conversation. The ids are written only when "Start a fresh conversation" was pressed. (#30)
  • Pressing Start right after New Session or Restart typed the startup command twice, and the second copy became the agent's first prompt. (#31)
  • Subagent transcripts showed Claude Code's own reminders as agent text, and forks had no task line. (#32)
  • The byte order mark gh puts before a failed log's first line kept that line's timestamp and ##[group] marker in the pasted log. (#33)

omux 0.7.0

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 17:57

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)
  • 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.
  • 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.
  • 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)
  • A worktree setup command ending in ; or & was a shell parse error, so neither the setup nor the session ran. (#20)
  • 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)
  • 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)
  • The browser's Try Again now loads the address that failed, so it works once a dev server comes up. (#23)
  • A missing or crashing codex showed a bare CancellationError instead of the message saying to install Codex CLI. (#24)
  • 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)
  • 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)
  • A dropped or pasted file whose name contains ! failed in the shell with "event not found". (#15)
  • 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)

Download omux-0.7.0.dmg, open it and drag omux to Applications. Signed and notarized. Existing installs get this update through Help › Check for Updates… or automatically within a day.

omux 0.6.1

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 11:24

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)
  • 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)
  • 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)

Thanks to @tahakanar, @ersinkoc and @osmantufekci for the pull requests.

Install

Open omux-0.6.1.dmg and drag omux to Applications. omux 0.6.0 offers this update by itself; Help › Check for Updates… fetches it now.

Full changelog: v0.6.0...v0.6.1

omux 0.6.0

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 10:13

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.

Install

Open omux-0.6.0.dmg and drag omux to Applications. The app is notarized, so it opens without a warning. From this version on, omux tells you when a newer version is out and installs it for you.

Full changelog: v0.5.1...v0.6.0

omux 0.5.1

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 09:59

Same app as 0.5.0, now notarized and shipped as a disk image.

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.

Install

Open omux-0.5.1.dmg and drag omux to Applications. If you built or installed an earlier version, the first launch asks for the notification and Keychain permissions again, because the release is signed with a different certificate than development builds.

Full changelog: v0.5.0...v0.5.1

omux 0.5.0

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 08:09

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)
  • 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.
  • 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.
  • 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.

Install

Download omux-0.5.0.zip, unzip it and move omux.app to Applications. The app is signed with a development certificate, not notarized, so the first launch needs a right-click › Open. Building from source with ./build.sh works as before.

Full changelog: v0.4.0...v0.5.0

omux 0.4.0

Choose a tag to compare

@onurozcan onurozcan released this 30 Oct 00:36

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. Thanks @tahakanar (#7).
  • 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.
  • The session header and the right panel's tabs sat below the title bar instead of level with the sidebar's buttons.
  • 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.

Install

Download omux-0.4.0.zip, unzip it and move omux.app to Applications. The app is signed with a development certificate, not notarized, so the first launch needs a right-click › Open, or xattr -d com.apple.quarantine /Applications/omux.app. Building from source with ./build.sh works as before.

Full changelog: v0.3.0...v0.4.0

omux 0.3.0

Choose a tag to compare

@onurozcan onurozcan released this 28 Oct 22:53

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)
  • 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)
  • 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)

Fixed

  • The window's close, minimize and full screen buttons were missing on some macOS versions.
  • Scanning a session's output for file paths and local URLs read the terminal from a background thread. (#1)

Thanks to @theilgaz and @orhankurulan for the first contributions, and to @cryptooth for the report in #1.

Full changes: v0.2.0...v0.3.0

Install

Build from source with ./build.sh (macOS 14 or later, Swift 5.9 or later). See the README.

omux 0.2.0

Choose a tag to compare

@onurozcan onurozcan released this 28 Oct 05:40

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.
  • Tabs in the right panel: Files (⌥⌘1), Changes (⌥⌘2) and Browser (⌥⌘3).
  • 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.
  • 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.
  • Allow and Deny in the sidebar and the session header when Claude asks for a tool permission, so you can answer without switching sessions.
  • 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.

Full changes: v0.1.0...v0.2.0

Install

Build from source with ./build.sh (macOS 14 or later, Swift 5.9 or later). See the README.

omux 0.1.0

Choose a tag to compare

@onurozcan onurozcan released this 28 Oct 05:40

First public release.

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

Install

Build from source with ./build.sh (macOS 14 or later, Swift 5.9 or later). See the README.