Repository navigation
Releases
Octomux 0.5.1
- Scenes in Low Power Mode: Settings → Appearance → Scene → In Low Power Mode: Pause (as before) or Keep playing.
The scene's note says what it does right now and why (paused: Low Power Mode, the window is hidden…). - Menu bar icon: an orange dot while an agent waits for your input (also while the octopus swims for another
agent). The blue dot for unread notifications shows when none waits. - An agent's browser pages close when the agent is removed (unless another agent works in one or a tab shows
it). Before, each stayed open with its web process until closed by hand, and came back after every launch.
Pages you opened stay. - Finished reviews no longer keep an agent running: a review's agent that is still up with nobody in it (brought
back as a conversation after a restart, or one you asked something and left) is stopped after 30 quiet minutes.
Go to session → Resume brings the conversation back. - Less CPU after closing Settings: a closed Settings window stayed alive and kept rendering its pages (the
breathing previews in Appearance at 30 fps, and every page on each change): about half a core until Octomux was
restarted. Closing it now lets it go; it reopens where it was. - Breathing workspace marks run in Core Animation: the "Bar, breathing" and "Glow, breathing" marks (and their
previews in Settings → Appearance) re-rendered the whole window, or the whole Settings page, 30 times a second. - Keep Mac awake can keep the display on too: Settings → Sessions → Keep Mac awake → Keep the display on too
(also in the cup's panel). Off by default, as before: the display turns off after its usual idle time while the
Mac keeps working behind it. - Agents panel shows each agent's current state: an agent that moved to another group (needs input → working,
working → finished) could keep the old group's mark (an "input" badge, a spinning ring) until you selected
another session.
Install
Download Octomux-0.5.1.dmg, open it and drag Octomux into Applications. macOS 14+, Apple Silicon or Intel. Signed and
notarized. Or with Homebrew: brew install --cask anilsenay/tap/octomux. Already installed?
Octomux offers the update itself.
Octomux 0.5.0
Highlights:
- Layouts: arrange the whole window for the way you work: Terminal (as before, the default), Agents (a
rail of agents by what they need from you, beside a Home) or Tasks (your tasks on a rail). ⌃⌘1…3 switches;
each layout can be changed in Settings → Layout, saved under a name, exported and imported. - Home: one page made of sections (greeting, composer, waiting agents, stats, pull requests, the Board, the
Aquarium…) in four presets, customized in place: drag, hide, add, narrow/wide/full. - Tasks and the workspace assistant: Octomux's own work items; the assistant splits what you ask into tasks
and starts agents on them. - Aquarium: every agent as a pixel octopus, swimming while it works.
- Browser for agents: far less of an agent's context per page, a question before a session first uses it, and
Claude in Chrome as an option for Claude sessions. - Fixes: much less CPU while agents work, Octomux opens where you left it, Option+Backspace deletes a word in
Claude Code, no quit when a browser call is cancelled, no unread dot on the agent you are watching.
All changes:
-
Octomux opens where you left it: after quitting (or an update) it opened the first project's first tab,
because reading back the saved workspace saved the project and tab before they were read. -
Menu bar panel opens centered under the Octomux icon (it hung to the right of it).
-
Less CPU while agents work. The spinning ring that marks a working agent (sidebar, tabs) re-rendered the
whole window every frame — over half a core on a 120 Hz screen for as long as any agent worked. It now spins in
Core Animation and looks the same, as do the browser's "agent at work" dot and the Inbox refresh icon. -
The browser tools take far less of an agent's context. Opening a long page returns an outline (landmarks,
headings, links, buttons and fields, with their refs) instead of the whole page: about a quarter of the tokens;
browser_snapshotstill reads all of it. Changing the screen size returns only the new size (it returned the whole
page each time, thousands of tokens, usually right before a screenshot). -
Agents ask before they first use the Octomux browser (Settings → MCP → Octomux browser: Ask is now the
default; a choice you made there before stays). Claude sessions browse with picks Claude in Chrome instead:
Claude sessions then don't get the Octomux browser tools (they keep the task tools), Codex sessions do. -
Fixed: Octomux quit when an agent's browser tool call was cancelled (or timed out) before its answer: writing
the answer to the closed connection raised an exception the app couldn't catch. Such a call now just ends. -
Option+Backspace deletes a word in Claude Code (and Option with Delete, Return, Tab, Esc or an arrow reaches
programs as Alt in the kitty keyboard mode they ask for). Option still types its characters (Option+Q is "@" on a
Turkish keyboard): it counts as Alt only on keys where it doesn't change the character. -
No dot on the agent you are watching: a turn that ends (or a question, an error) while that agent is on screen in
front of you is read at once — also with notifications off, for that project or that kind. Before, the green dot
stayed until you switched away and back. A Home or file tab over it still leaves it unread. -
Window: the traffic lights are the size other current Mac apps have and sit on one line with the sidebar
button, the bell and the tabs (the app is now built for the current macOS design, which also refreshes the
system's own controls: switches, pop-ups and segments in Settings). Pop-up values in Settings are no longer in the
accent color. -
Layouts: pick how the window is arranged for the way you work, for the whole app: Terminal (the window as
it always was, still the default), Agents (the agents' window below; new Claude and Codex sessions open as
chats) or Tasks (a window of its own, below). Switch with ⌃⌘1…3, the
command palette (View → … Layout), or the Layout button the other layouts show in the status bar. -
The Agents layout is a window of its own: a rail of agents on the left by what they need from you (Waiting
for you, Working, Done, Idle) with their last words and a project control (one project or all), a breadcrumb instead of tabs
("Home · Personal", "agent · project · branch" with a Chat / Terminal switch), and Home in the middle: a greeting,
a big composer (project, checkout or a new worktree, agent), the agents waiting for you answered in place, recent
sessions and usage (your Home, below). Home isn't a tab here: ⌘0 or ⌘T comes back to it. ⌘1…8 and ⌘[ / ⌘] move
over the rail (⌘9: the last); after a click on the rail (or ⌥⌘A) ↑ ↓ ↩ do too. -
Home, one page made of sections: the same Home in the Agents layout and, as a tab, in the Terminal window
(View → Home; one tab per project). Its ⌄ (after "Home", or on the tab) offers four presets — Agents (greeting,
composer, waiting, recent, usage), Workday (your day: stats, waiting, while you were away, your pull requests,
reviews and issues), Board (every agent in a column by state) and Aquarium (every agent as an octopus; ⌘T
starts an agent) — and Customize this Home…: drag a section by its handle across the top row and the main and
side columns, hide one with its eye, add one with + Add section, pick the page's width (Narrow · Wide · Full) and
drag the line between the columns; each change is saved at once, Reset goes back to
the preset. The agents waiting for you are rows in one card: the first is open with its answers, a click opens
another, and answering opens the one that takes its place; ↑ ↓ move between them, 1 2 3 answer the open one and ↩
opens it (while no field, terminal or the rail has the keys). Esc or leaving Home ends Customize. An opt-in Home row at the top of the sidebar (Settings
→ Layout → Sidebar) shows how many agents wait for you. Agents and Workday tabs from earlier builds open as Home. -
The Tasks layout is a window of its own: your tasks on a rail on the left by what they need from you (with
status filters and a New task field, ⌘T), the assistant — or the picked task's agent — in the middle, and the
picked task in detail on the right: its state, where it works, its agents and what they last said or ask, its pull
request and source, subtasks and the next step. A project control above the rail shows one project's tasks (with
icons, counts and a search field when there are many), New task has a project picker, and the sessions without a
task are folded at the bottom of the rail. ⌘1…8 and ⌘[ / ⌘] go through the tasks (⌘9: the last), ⌘0 opens
the assistant (and starts it when there is none). -
Layouts as data: every layout is a tree of rows, columns and stacks over Octomux's own blocks
(agent rail, tasks rail, project tree, tabs, breadcrumb, work area, Home, side panel, task
detail, agent column, aquarium, status bar), read from a JSON file; a tree that doesn't read or breaks a block's
rules falls back to the built-in one. Terminal's tree draws the window it always was, to the pixel. -
Your own layouts, as files: Settings → Layout → Your layouts. Save the layout you arranged under a name, then
switch to it from the View menu (⌃⌘8 and ⌃⌘9 for the first two by name) or the status bar's Layout panel. Export it as a small
.octomux-layout.json(your theme and shortcuts too, if you tick them) and import someone else's: a sheet shows
its window, name, author and base, and what this Mac can't use; its theme and shortcuts apply only if you tick
them; the sheet lists each shortcut, and one on a key another command already has is left out. A file can't turn a
command off or take ⌘Q, ⌘W, ⌘H, ⌘M or ⌘,. A layout file is data only — it arranges Octomux's own parts and can't
run anything; a broken one (or one too big, too deep, or with a picture over 4096 px a side) is refused with the
reason. Duplicate, delete, and use the window as a layout's picture. -
Agent cards (Home's Board): the agent's last words, the steps and files of its turn, and what it waits for:
allow or deny a tool, or pick an answer, right on the card. -
Workday (a Home preset): your day on one page. Who
needs you, answered right there; what happened while you were away (agents that finished, with the files they
changed since you last looked, and automations that started work); your pull requests with their next step
(fix the checks with an agent, mark ready, merge), reviews waiting for you, and your issues ("Work on it"). -
Work chips: an agent's pull request (with its checks) and issue show next to it on cards, and in the pane
header in the Agents layout (Settings → Layout → Pane header elsewhere). -
Since you looked: an agent card says how many files changed after you last looked at the agent, and lists
them with their diffs. -
Working on code with an agent (the Editor layout has all of them; Settings → Layout turns them on anywhere):
changed lines marked in the editor's gutter; a note on the selected lines ("Note to agent", ⌘⇧M) goes into the
agent's message with the file, the lines and the code, for you to send; the Files panel lists what the agent
touched in its current turn; and the project's agent can sit in a column beside the work area. -
Tasks: Octomux's own work items. Add one (or let the assistant split your request into several), start it,
and it gets its own worktree, branch and agent; its state follows the agent and its pull request. Also from the
command line (octomux task …) and for agents through the Octomux MCP tools (task_create,task_list,
task_start…). -
Workspace assistant: your default agent with its editing tools off, as a planner. It turns what you ask into
tasks and asks to start them; Autopilot decides how far it may g...
Octomux 0.4.0
Highlights:
- Chat view: full markdown, tool calls grouped per step, diffs, plans and questions as cards; answer a question
or allow a tool right on its card;/and@menus, the model and a context ring in the composer, Stop. - Browser for agents: Claude and Codex sessions get browser tools from Octomux's own MCP server; the page opens
beside the agent's tab and you watch it click and type. Send any element of a page to an agent. - New look for the window: a header on every pane, a git button that shows the next step (Commit, Push, Create
PR, the open PR), Octomux's own panels for workspaces, Keep Mac awake and branch pickers, a start screen for new
tabs and a ⌃Tab tab switcher with pictures. - Keep Mac awake while agents work (or always, or for a while), optionally with the lid closed, with limits.
- Permissions: sessions run under a small "Octomux Sessions" app, so macOS asks screen recording in its name.
All changes:
-
Start screen: a new tab (New Chat) shows what waits for you and what ran last in the project, with starter
chips; the composer stays at the bottom, in the same column as the chat, so nothing moves when it starts. -
Every pane has a header (also when a tab has one pane): which session and folder, with split, chat ↔
terminal, browser and dock buttons. The top bar keeps the tabs and project-wide actions: diff, Open in and a git
button that shows the next step: Commit (a panel with the changed files and a message the commit-message
agent writes, Commit or Commit & Push, Amend), Push ↑n, Create PR, or the branch's open PR #n (from
the Inbox, its checks' color). ▾ has all of them and Show Changes. -
Workspace switcher and Keep Mac awake open Octomux's own panels instead of system menus: each workspace with
its color, what waits there and its shortcut; the cup shows what it does now, the modes, "for a while" and the
closed-lid limits as chips. Arrow keys, ↩ and esc work as in a menu. The status bar's branch and Compare with pickers
open the same kind of panel (no more system popovers), and every picker shares one look. -
Readability: with a scene, art passing behind the sidebar is drawn faint there (it no longer sits as
bright as the rows' text); the Changes list keeps room for about five files when History is open; disabled Commit buttons
are neutral (they couldn't be read in light themes). Translucent terminals over a scene default to 85% opacity (was 82%):
the text reads better over the live scene. -
Sidebar: Search (⌘K) is the first row under the workspace, then Inbox and Projects.
-
⌃Tab tab switcher: hold ⌃ and press Tab to see the project's tabs, most recent first, each with a picture of
what it last showed, its activity and agent; ⌃⇧Tab goes back, letting go of ⌃ (or ↩) opens it, esc cancels. -
Command palette: without a query it is grouped (Waiting for you, Sessions, Commands); key hints and the
result count at the bottom. Esc, arrows and ↩ work right away, even before the search field has focus. -
Calmer window: one Split menu in the top bar instead of two buttons, wider tabs (inactive tabs without a
fill), usage limits as small rings in a slimmer status bar, segmented Files / Changes / Sessions tabs, open
sessions marked with a dot instead of an "Open" badge. -
New chat suggests a few starters above the composer (they fill it, nothing is sent). Your messages in the
chat view sit in a neutral bubble. -
Consistent sizes: one type scale and one corner-radius scale across the app (text that was half a point
smaller is now whole sizes). -
Chat view: the conversation is drawn with full markdown (lists, tables, code blocks with highlighting and
Copy), tool calls grouped per step ("Read 2 files · Ran 1 command") and folded once the turn ends, edit diffs,
command output, todo lists, plans and questions as cards, "worked for" time per turn, and a "Latest" button
when you scroll up (new messages no longer pull you down while you read). -
Chat composers grow with the text and scroll past 14 lines (wheel, trackpad); ↩ sends, ⇧↩ adds a line,
pasted screenshots and files become attachments. -
Chat composer shows the model the session runs (Claude: switch it from there, sent as
/model), a ring with
how full the context is (Claude's own reading; Codex from its log), and a Stop button while the agent works. -
/and@in the chat composers:/lists built-in commands, your and the project's commands and skills,
and enabled plugins' (Codex: built-ins and saved prompts), with descriptions;@finds files of the project
(git's list) by name. ↑↓ to move, ↩ or ⇥ to pick, esc to close. -
Answer from the chat: when the agent asks one single-choice question, pick the answer on its card; when it
waits for permission on a tool, Allow or Deny under that tool (sent to the terminal as the keys you would press).
Messages you send while the agent works show as queued until it reads them. -
Chat turns end with the files they changed (lines added and removed, from the agent's own edits); click one
to see it in Changes. Commands show the agent's own description ("Run tests") next to the command line. -
Permissions for programs in sessions: the daemon now runs from a small background app, “Octomux Sessions”,
so when an agent takes a screenshot (or drives other apps) macOS asks in that name and remembers it, instead of
blocking a nameless command line tool. Settings → Permissions shows screen recording and
accessibility, asks for the first and opens System Settings for both. -
Keep Mac awake (Settings → Sessions, and the cup in the status bar): Off, While agents work (and two minutes
after, so pauses between steps don't count) or Always. The display can still sleep. Optionally also with the lid
closed: a one-time administrator prompt installs a rule that lets Octomux run onlypmset -a disablesleep, set
only while it keeps the Mac awake, on the power adapter unless you allow battery, and put back after (also after
a crash).
"For a while" keeps it awake 1–8 hours, then goes back to the mode before; the cup can be hidden (Settings brings
it back).
Closed-lid safety: at most a time you choose per lid closing (12 hours on the power adapter, 4 on battery by
default; no limit possible on the adapter), never
below 20% battery or under heavy thermal pressure; a notification says when a limit let the Mac sleep. -
Changes panel has "Compare with" at the top: the same branch choice as the status bar's "→ branch".
-
Browser for agents: Claude and Codex sessions get browser tools (open a page, read it as an accessibility
snapshot, click, type, press keys, choose options, wait, run a script, read the console, take screenshots, switch
pages) from Octomux's own MCP server, added to each session as it starts; your MCP settings stay as they are
(Settings → MCP turns it off). The page opens beside the agent's tab, half the width (drag its edge), and you
watch the agent work: its cursor glides to the element, a band says who acts and what ("Claude · Fix login —
Clicking “Sign in”"), and the element is framed. The globe in the top bar shows or hides the browser of a tab;
you can browse yourself (address bar, back, forward) and hand a page to an agent. Each session works in its own
page; pages keep cookies apart from your other browsers and come back after a relaunch. -
Send an element to an agent: the browser's pick button (target) highlights what's under the pointer; click
one, add a note, and it goes to an agent's message box (the tab's, or one you choose; terminal or chat view) with
its selector, role and name, text, main styles, the page and a crop of it, for you to read and send. -
Links in terminals and the chat view to local addresses (localhost, 127.0.0.1, *.local…) open in the
browser beside the tab, or bring forward the page already showing them; others still open in your default
browser. Settings → MCP → Octomux browser picks which (local, all web links, none); ⇧-click does the other. -
Browser basics: find in page (⌘F, with the number of matches), zoom (⌘+ ⌘− ⌘0), ⌘L for the address bar,
⌘[ ⌘] back and forward, ⌘R reload, only while the page has the keyboard; address suggestions from the pages
you visited (↑↓ ↩); a page that can't load says why, with Try Again; downloads go to ~/Downloads, listed under
the browser's download button with Show in Finder; screen sizes (mobile, tablet, laptop, desktop) the page is
laid out at, scaled to fit. -
Agents hear what their actions changed: a new address or title, pages opened, downloads, new console errors
(each once). On long pages a result carries only the lines that changed (said so, with their parents), the whole
page when it is new or small; browser_snapshot takesdiff. New tool browser_resize for mobile/tablet layouts. -
Who may use the browser: Settings → MCP → Octomux browser: Off, Ask (a session asks the first time; your
answer holds for it, listed in Settings to forget) or On, and an optional list of allowed sites (wildcards):
agents can't open others, nor follow links to them. -
Fixed: two background services could start at once for the same data (the app and a command starting it at
the same moment); the extra one kept running unseen. Now only one starts, and a leftover one stops by itself. -
Fixed: the chat composer could freeze or close Octomux when a long text arrived in it (a pasted log, an element
from the browser).
Install
Download Octomux-0.4.0.dmg, open it and drag Octomux into Applications. macOS 14+, Apple Silicon or Intel. Signed and
notarized. Or with Homebrew: brew install --cask anilsenay/tap/octomux. Already installed?
Octomux offers the update itself.
Octomux 0.3.0
Highlights:
- Inbox in the sidebar: pull requests waiting for your review, your own pull requests with their checks, and
issues assigned to you, from GitHub, Jira Cloud and Bitbucket Cloud, with notifications, activity,
snooze, keyboard, and changes you can make from there (each asked first). - Agents on Inbox items: Work on it, Ask, Summarize, Fix with agent, and Review a pull request in the
background (read-only by default, a download when you have no clone), then post its findings as review comments. - Changes view: diffs by line like git, a resizable split, sticky file headers, scroll bars a mouse can reach,
wrapped lines on request, and the panel follows the branch you compare against. - Resume with Flags… to bring a stopped agent back with other flags (
--chrome, a model…). - Workspace paging with a two-finger swipe over the sidebar.
All changes:
- Changes panel follows the compare branch: with a branch picked next to the status bar's branch, the panel
lists every file since it (committed on this branch or not) under Since , with the same counts as
the status bar; a click opens that file's diff against the branch. Before, it showed only uncommitted files. - Diffs by line, like git: a file with many changes no longer shows untouched lines as removed and added
again; the Changes view now matches the +/− counts, with word marks inside the lines that did change. - Changes view: in split mode drag the bar between the sides to resize them (every file follows; double-click
for half and half), and each file's header stays at the top while you scroll through it. A file's horizontal
scroll bar stays at the bottom of the window while the file is on screen (one per side in split mode, over
the code, shown while the pointer is on that side), so a mouse can scroll long lines; ↩ wraps them instead (kept for next time); line numbers no longer show code through them when it scrolls sideways. - Resume with Flags… next to Resume on a stopped agent: add flags (
--chrome, a model…) by hand or with
checkboxes for common ones; the conversation goes on where it stopped and the flags stay for later resumes. - Closing a tab goes back to the tab you were on before it, not to the first one.
- Names cut short show in full on hover: a project's row (name, branch, folder) and the Changes panel's files.
- Workspace paging: a two-finger swipe over the sidebar pulls the next workspace's projects in beside the
current ones, and the window color blends toward the new workspace's as you pass the middle. Let go past
the point (or flick) and it switches; otherwise it springs back. ⌃⌘← →, ⌃1…⌃9 and the switcher dots page too. - Inbox (sidebar, above the projects): pull requests that wait for your review, your pull requests with their
checks, and issues assigned to you, from GitHub (through the GitHub CLI, so Octomux keeps no GitHub token)
and Jira Cloud (site, email and an API token, with or without scopes, kept in your Keychain).- Folders by why something is there and where it comes from (collapsible to icons); filters by source,
time and text; hide repos and projects; read and unread marks; comments to read and write. - Work on it opens a new tab with the item as the prompt, or starts the agent in a new worktree on the
item's branch; Review a pull request in the background or in a chat; Fix with agent when checks
failed. The session stays linked to the item (Go to session). - Notifications for review requests, failed checks, new assignments and changes to your things; ring the
bell on a Jira project to hear about every change there, by anyone: a sound only (no banner) unless you
choose banners. Checked every 1–10 minutes. Their sound is picked in Settings → Notifications (Sound: Inbox,
Blow unless you change it). - Activity: an item's comments, Jira changes (status, assignee, priority, sprint, title, description; who and
when) and GitHub events (commits, reviews, review requests, labels, assignees, merge/close, renames,
force-pushes) in one timeline, with a New line where you left off and a "Since you looked" summary on
top. Notifications say who did what ("DC-12: Ann moved it to Code Review"); changes you made yourself on the
website are no news. When the Jira token can't read the history, comments still show, with a note. - News in linked sessions: when someone comments, reviews, pushes or moves an item you sent to an agent, a
card in that session's pane says what changed; Tell the agent pastes it in (as reference data, for you
to send), Open in Inbox shows the item. - Fix with agent reads what the failed checks printed first (the failed steps of GitHub Actions jobs, or
another check's own summary), and hands it to the agent with the prompt (up to 12,000 characters). A line
under the checks follows the fix: prompt waiting, agent working or waiting for you, checks running again,
checks pass. - Merged, closed and done items stay a while: something that leaves the open searches because it was
merged, closed or finished stays in the list with that label for three days (a week when an agent worked on
it), with a notification and a note in its linked session. Items that only left a search (a review request
withdrawn) still go quietly. - Keyboard: ↑ ↓ (or k j) move through the list, Return opens the first item, Esc closes it, u marks it read or
unread, s sends it to an agent, o opens it on the website, r refreshes, / filters (Esc clears, Esc again
leaves the field). The keyboard button lists them. - Ask (button, or the a key): a chat about the item that only reads: the agent starts with the item as
reference data and your question at the end, in Claude's plan mode or Codex's read-only sandbox, apart from
any session working on the item. Continue asking goes back to it. - Images in descriptions and comments: GitHub's own images (loaded without any credentials) and Jira
attachments (from your Jira only). Images from other sites aren't loaded, since they could tell the sender you
opened the item; they show as a link. Jira requests no longer follow a redirect to another host. - Code tab on a pull request: its changed files with their counts, each one's changes with line numbers
(small files open, big ones closed; long ones show the first 400 lines until you ask for all). - Pull Request menu in the detail: merge (merge commit, squash or rebase, into the named base branch), mark
ready, convert to draft, close or reopen, through the GitHub CLI. Each one asks first, saying exactly what will
happen; the branch is never deleted. A merge or close made here is no news in your notifications. - Jira from the Inbox: change an issue's status through its workflow (the status chip is a menu), assign
it to yourself, or create a new issue (the pencil in the Inbox bar), each after a confirmation. Starred Jira
filters can bring their open issues in (Settings → Inbox → What shows up), under From your filters. What
the agent is asked for a Jira issue is a template in Settings ({key}, {title}, {status}, {project}, {url},
{assignee}). - Mute a bell for a while: right-click a project's bell (in the Inbox or in Settings) to quiet it for an
hour, until tomorrow 09:00, until a date you pick, or until you turn it back on; Settings can mute every bell
at once. A muted bell shows struck through; its changes still wait unread in the Inbox. - Automations (Settings → Inbox → Automations): rules that start an agent by themselves when a matching
item comes in (from, what, why, where), either reviewing a pull request read-only or working on the item in
a new worktree, in the item's own project and without switching to it. Rules are off until you turn them on
(and confirm); each item starts at most once per rule, at most three per check, and only new arrivals count. - Bitbucket Cloud: pull requests that wait for your review and your own ones, with their builds and how many
approved or asked for changes, next to GitHub's. Connect with an Atlassian API token with Bitbucket scopes
(read:user, read:workspace, read:repository, read:pullrequest); it is kept in your Keychain and sent only to
api.bitbucket.org. Bitbucket can't list your review requests across a workspace, so the repos updated in the
last two weeks (and those of your projects) are checked every 10 minutes, and repos holding one of your pull
requests on every check, within Bitbucket's hourly allowance (it slows down when Bitbucket asks). A review
request you approved leaves the list until new commits come. The detail has the description, Activity
(comments, inline comments with their file and line, approvals, changes asked for, pushes, merge/decline),
the Code tab and the builds; declined and superseded pull requests stay a while like merged ones. Settings →
Inbox picks the workspaces and repos, and can look in every repo instead. - Agents on Bitbucket pull requests: Work on it, Review, Fix with agent and Ask work on them
too; the branch comes through git with your own credentials (the token never goes to git), and Fix starts
from what the failed builds reported. Linked sessions hear about new comments, approvals and pushes,
notifications say who did what ("#7: Ann approved"), and automations can pick Bitbucket as their source. - Change Bitbucket pull requests from the Inbox (Pull Request menu, each asked first): approve or take it back,
request changes or withdraw it, merge (merge commit, squash or fast-forward; the branch stays), decline, and
comment. Needs write:pullrequest on the token. Fix with agent reads the failed steps' logs of a Pipelines
build (with read:pipeline); the log's sto...
- Folders by why something is there and where it comes from (collapsible to icons); filters by source,
Octomux 0.2.0
Highlights:
- Sessions outlive their tab. Closing a tab or pane leaves its sessions running in the sidebar; Stop and
Remove there end them (Stop asks first when something is still running). Settings → Sessions can make
terminals end with their tab again. - Create Pull Request from the Changes panel, ✨ commit messages and PR text written by your own agent CLI,
Discard changes, and Ask Agent about a change. - Quick composer over any app, Prompts you save once, an MCP page to see, check, add and remove servers.
- Worktrees with setup and teardown scripts, branch name patterns and a custom root.
- A rebuilt Settings with search, and pages for Terminal, Sessions (CPU and memory per session), Projects,
MCP, Prompts and more; interface size 90–120%. - Codex at the same level as Claude Code; Intel Macs; Homebrew.
All changes:
- Workspaces that want you in the sidebar's switcher: a mark in amber (something waits for your input there)
or green (finished while you were away), as a bar under the workspace, a glow behind it (each still or slowly
breathing), a corner dot or a count (Settings → Appearance → Sidebar). It replaces the small corner dot, which is still one of the choices. - Add MCP servers from Settings → MCP (Add Server… on each agent's group): a command or an HTTP/SSE URL,
environment variables or headers, and for Claude Code where it applies (all projects, one project, or the
project's shared .mcp.json). Runs the agent's ownmcp add. - Sessions outlive their tab: closing a tab or pane (×, ⌘W) leaves its sessions, agents and terminals alike, in
the sidebar and still running; clicking one opens it in a tab again. A session ends with Stop and Remove in the
sidebar, and Stop now asks first when a program (a dev server,sleep) or a busy agent would be stopped
(Settings → Terminal → Ask before stopping a running program). The first time a closed tab leaves something
running, a note says where it went. Settings → Sessions → Closing a terminal tab can make terminals end with
their tab instead, as in other terminal apps (asking first when a program runs). - Discard changes in the Changes panel: per file (hover, or right-click) and for a whole group, after a
confirmation. New files go to the Trash. - Preview tabs: a click in the Files panel opens the file in a preview tab (italic) that the next file
replaces; double-click the file or the tab, or edit it, to keep it. - Ask before stopping now sees programs behind shell wrappers that run your shell in a terminal of their own (it
saw nothing there). A program whose binary is named after its version (Claude Code) shows by its name. - Buttons now take clicks on their whole area, not only on their text or icon (the − / + in Settings → Terminal,
bordered buttons across Settings). - The Settings sidebar no longer jumps when you switch pages (the previous page's sections showed for a moment);
the MCP page, whose sections load after it opens, no longer lists them there. - MCP Check also lists the servers Claude Code gets from your claude.ai account and plugins, with their status.
- With Codex as the commit-message agent, its model is picked from the models your Codex offers.
- Recording the quick composer shortcut no longer opens the composer when you press the current one.
- Agent events (Settings → Advanced, or a tab's right-click → Show Agent Events): the last 500 hooks,
agents' own status reports and state changes, with time and session; also in the diagnostics zip. - Close stopped agent tabs after 1 hour to 1 week (Settings → Sessions, off by default); pinned tabs stay and
the session stays in the sidebar, where Resume opens it again. - MCP page: Check shows whether each Claude Code server connects (
claude mcp list), and Remove takes a
server out with the agent's ownmcp remove. - Create Pull Request (Changes panel ▾, ⌘K): base branch, title, description and Draft; ✨ writes the title and
description from the branch's commits and diff. Pushes the branch and runsgh pr create, or opens GitHub's
compare page filled in whenghisn't available. - Interface size: 90–120% for the window's text and rows (Settings → Appearance), separate from the terminal
font size. - Worktree branch names: a pattern fills the name in (
{user}/{date}-{n}, Settings → Projects), and ✨ in the
New Worktree window names the branch from the task you give the agent (the task is its first message). - Tab titles from your first message: Settings → Sessions can name agent tabs after the first message you
sent instead of the agent's own conversation title. Works for Claude Code and Codex. - Diff colors: blue and orange instead of green and red (Settings → Appearance → Diffs), everywhere added and
removed lines or counts show. - Status bar limits: show all, only the 5-hour or only the weekly limit (Settings → Agents → Usage limits).
- Default app for files: files open in their macOS default app or an editor you pick (Settings → General →
Open in); "Open in …" on files in the Files panel and Changes. - The added-line marker in diffs now takes the theme's color (it was always the default green).
- ✨ Commit messages: the sparkles in the Changes panel's message box ask an agent for a commit message from
the staged changes (or all of them) and the repository's recent commit style. Your ownclaudeorcodexCLI
runs once in the background (no tools, nothing saved, hooks and MCP off); the agent, model (Claude: Haiku) and
a style are set in Settings → Projects. Click again to stop. - Ask Agent in the Changes panel: prompts marked for it show in a menu on the panel and on each changed
file ({file},{base}), and go to the focused agent when it is free there, else to a new one. - Prompts: save prompts you send often (Settings → Prompts) for every project, a workspace or one project,
and pick them in a new chat, the quick composer or ⌘K.{project},{path},{branch},{clipboard}and
{date}are filled in. - Quick composer: a small window over any app to start an agent: project, agent, prompt, Return. You stay
in the app you were in (⌘Return brings Octomux forward instead). Set a shortcut that works everywhere in
Settings → Keyboard → Anywhere; it is also in the File menu and the menu bar icon's menu. - Settings → MCP: the MCP servers Claude Code and Codex start with, per agent config (agents that share a
config share a list): all projects or only one, shared.mcp.jsonservers and whether they are approved,
servers turned off, and the command or URL. Read only; values of environment variables and headers are not
shown. - Settings → Projects: a project's name, folder, color and icon in one place (also from its right-click
menu, Project Settings…), where its worktrees go, and setup / teardown scripts for its worktrees (setup runs in
the dock after a worktree is created, teardown before it is removed; both get the project, worktree and
branch as variables). A worktree folder can also be set for all projects. - Remove Worktree can delete the branch as well ("Also delete the branch", default per project); a branch
that isn't merged asks before it goes. - Settings → Sessions: every running session with the CPU and memory of its processes (shell or agent plus
what it started), with Open and Stop. "Stop idle agents" (off by default: 15 min to 4 hours) stops agents
that finished and sat without output; Resume continues them. Terminals are never stopped for being idle. - Save diagnostics (Settings → Advanced): a zip with versions, state, settings, terminal.conf and the end of
the logs, tokens, keys, passwords and email addresses removed. - Agent start options: editing an agent in Settings → Agents sets its model, effort and permission mode
(Claude Code) or model, effort, approvals and sandbox (Codex) from lists. They become flags in its Arguments. - Open in: Settings → General lists the apps for every Open in menu: reorder them, hide some, add any other
app, and pick the default for ⌘O. The menus have an "Edit This List…" item. - Notifications: Send Test in Settings → Notifications, and a sound for each kind (agent finished, needs
input, error, commands and programs), picked from the macOS alert sounds; picking one plays it. Sound and
other notification settings now follow the project the notification is about, not the one on screen. - Usage meters can show what is left instead of what is used (Used / Left in their popover, or Settings →
Agents → Usage limits). The color still warns at 70% and 90% used. - Settings → Terminal: font (installed monospaced fonts or the built-in JetBrains Mono), size, line height,
cursor style and blink, and scrollback lines, with a preview; terminals change as you pick. The terminal.conf
editor moved here from Appearance and keeps working for everything else. - Settings → Keyboard: Find by Keys (press a combination to see what it does), an "Acts on" column (focused
pane, current project, …) and Reset All Shortcuts. Shortcuts with Return show ↩. - Agents panel filter: its menu can show only the current workspace's agents.
- Settings, rearranged: pages in groups (App, Work, Advanced), a search field that jumps to the setting,
every setting with a line on what it does and its control on the right, and the Global / Workspace switch at
the top of the pages a workspace can override (a dot marks what it overrides, Reset goes back to Global). The
current page's sections are listed under it in the sidebar. Choices you can see are picked from previews: window
mode, terminal colors, split tabs, what shows behind terminals, workspace color, and the Dock and menu bar icons.
A new General page has the version and Check for Updates. - App icon: Settings → Appearance → Icons, Color or Monochrome (a white an...
Octomux 0.1.2
- While Octomux connects to its background service at launch (a few seconds right after an update), the window
shows "Starting Octomux…" instead of an empty sidebar. - The Claude Code integration's hook only answers in its own app's tabs, so Octomux and Octomux Dev can both
have it on. - For contributors: Octomux Dev (
tools/build-app.sh release dev), a separate app with its own data and
background service that runs next to an installed Octomux. - Updated SQLite bindings (rusqlite 0.41) and signal-hook 0.4.
Install
Download Octomux-0.1.2.dmg, open it and drag Octomux into Applications. macOS 14+, Apple Silicon. Signed and
notarized. Already installed? Octomux offers the update itself.
Octomux 0.1.1
- Only one copy of Octomux runs at a time: opening a second copy (say, one in Downloads and one in
Applications) asks which one to keep, instead of both taking over the background service. - The background service follows the copy you open, once at launch; a copy that was left open no longer takes
it back when it reconnects.
Install
Download Octomux-0.1.1.dmg, open it and drag Octomux into Applications. macOS 14+, Apple Silicon. Signed and
notarized. Already installed? Octomux offers the update itself.
Octomux 0.1.0
- Sessions in a background daemon (launchd agent, one holder per session): they survive app quits, crashes,
updates and daemon restarts; Claude Code and Codex resume their conversation after a reboot. - Workspaces, projects, tabs, splits, dock; git worktrees; the right panel (Files, Changes with History, Sessions).
- Claude Code status (working / needs input / done), notifications, menu bar panel, chat view.
- Usage limits for Claude Code and Codex.
- Remote hosts over SSH.
- Themes, dark by default, and animated scenes (Octo Deep, Kraken, Tide Pool and more).
- Signed, notarized, and updates itself (Sparkle) without stopping your sessions.
Install
Download Octomux-0.1.0.dmg, open it and drag Octomux into Applications. macOS 14+, Apple Silicon. Signed and
notarized. Already installed? Octomux offers the update itself.