OpenSolo
Een native macOS-werkplek die je coding agents, dev servers en terminals naast elkaar draait, gegroepeerd per project.
Claude Code, meteen aangesloten
Open een Claude-pane en OpenSolo voegt zelf hooks voor live activiteit toe, de opensolo MCP-server en een aanvulling op de system prompt. Geen config om over te nemen.
Vanuit de pane kan de agent naburige panes lezen, van projectscope wisselen, sub-agents starten en open poorten bekijken. Elf tools, meteen beschikbaar.
opensolo MCP tools
- current_pane
- current_project
- list_projects
- read_output
- get_ports
- spawn_agent
- send_keys
- set_active_pane
Wijzigingen en geschiedenis naast je werk
Een paneel naast elk project toont de diff van je working tree en de commitgeschiedenis van de branch. Klik op een commit om te zien welke bestanden en regels hij raakte.
De bestandenlijst en de diff kan je groter en kleiner maken; lange regels lopen door als je dat vraagt.
HStack(spacing: 8) {StatusDot(status: …)Spacer(minLength: 6)memoryReadoutSpacer()HStack(spacing: 3) { sparkle; memoryReadout }Stoppen is echt stoppen
Stop een pane en OpenSolo ruimt de hele geforkte boom op: zsh → pnpm → node → elke worker. Eerst SIGTERM, na een korte pauze SIGKILL.
Geen verweesde workers die tussen herstarts poorten bezet houden. Geen mysterieuze EADDRINUSE de volgende keer dat je wil developen.
Je projectbord, in de zijbalk
Koppel een GitHub-account, kies welke Projects v2-borden bij een project horen en open er een in een native Kanban-weergave. Verplaats een kaart met het toetsenbord of door te slepen, en de nieuwe kolom en positie gaan meteen terug naar GitHub.
Wijs mensen toe met A en labels met L via een doorzoekbare kiezer, filter het bord op de mensen en labels die er al op staan, of geef een kaart met C door aan een nieuwe Claude-agent.
Tree-kill leaves no orphan ports
Lockfile-aware script runner
Filter board by assignee & label
Write card moves back to GitHub
Keyboard column navigation
L · Labels
- feature
- bug
- enhancement
- good first issue
Onder de motorkap
De rest van de ijsberg: elke actie zit in een menu, elk menu heeft een sneltoets, en achter elke sneltoets zit iets echts.
Elke actie, twee toetsen ver
Druk op ⌘⇧K. Fuzzy zoeken. Draaiende panes komen bovenaan, inactieve zakken weg. Enter om uit te voeren, zonder muis.
Plan Claude in als een collega
Cron-stijl. Elke taak start op zijn schema een verse Claude-pane en ruimt die daarna netjes op. Logs komen in de zijbalk; mislukt er iets, dan springt het Dock-icoon op.
Kijk hoe Claude de vakjes afvinkt
Claudes TodoWrite-tool voedt een live takenpaneel naast de pane. Updates komen binnen via MCP, dus er verschijnt geen lijst in de terminal.
Spring overal naartoe
Je handen blijven op het toetsenbord.
npm-scripts, klaar om toe te voegen
Kijkt naar je lockfile: npm, pnpm, yarn of bun, afhankelijk van welke lockfile er staat. Composer-scripts ook.
Je stack draait al voor je erom vraagt
Start een dev server of watcher zodra OpenSolo opent, of de eerste keer dat je in het project aan de slag gaat. Enkel voor command-panes.
EdDSA + delta-updates
Via Sparkle. Je downloadt alleen de bytes die veranderd zijn. Elke release is ondertekend en wordt gecontroleerd voor hij landt.
Dock-badge + sprongetje
Vraagt aandacht zonder te roepen. Telt de agents die op je wachten. Eén sprongetje bij 0 → 1.
Sleep het waar je wil
Native fileURL-sleepbronnen, Finder-icoon inbegrepen.
Vragen die een antwoord verdienen
Stuurt OpenSolo gegevens naar jou?
Geen analytics, geen telemetrie, geen gebruiksstatistieken die naar huis gestuurd worden, en geen tracking-SDK in de app. Twee dingen verlaten je Mac wel. Sparkle vraagt aan de appcast of er een nieuwere versie is, en als OpenSolo crasht of vastloopt, stuurt het een crashrapport naar Sentry (gehost in de EU) zodat de bug opgelost kan worden.
Crashrapporten zijn bewust uitgekuist: een stacktrace en het buildnummer, meer niet. Geen IP, geen gebruikersnaam, geen breadcrumbs, en nooit de inhoud van je panes, command-output of bestandspaden. Ze tonen waar de code brak, niet wat jij aan het doen was.
Wat kost OpenSolo?
Niets. Geen betaalde versie, geen licentie om te valideren, geen limiet op projecten of processen, geen upgrade-melding die in de volgende release opduikt. Downloaden en gebruiken.
Wat heb ik nodig om het te draaien?
macOS 15 (Sequoia) of nieuwer, op een Mac met Apple Silicon.
Welke agents ondersteunt het?
Claude Code, Codex, Gemini CLI, OpenCode, Aider, Cursor Agent en Crush hebben elk een ingebouwde optie in het Add Agent-venster, dus er een kiezen is genoeg om hem met het juiste commando te starten. Voor al de rest laat de Custom-optie je naar eender welke CLI op je machine wijzen, of draai je hem als gewone Command-pane.
Heb ik een Claude-abonnement nodig?
OpenSolo heeft zelf geen AI aan boord. Het draait de agent-CLI's die je al lokaal geïnstalleerd hebt, dus de keys, abonnementen en logins die je voor die tools instelde, zijn ook degene die gebruikt worden.
Waar wordt mijn config bewaard?
Lokaal, in ~/Library/Application Support/com.brtdv.OpenSolo/config.json. Het is gewone JSON, dus je kan het back-uppen, met de hand aanpassen of via iCloud Drive of git synchroniseren zoals elke andere dotfile.
Wat is het verschil met Warp of iTerm?
Warp en iTerm zijn er vooral om je een betere terminal te geven. OpenSolo zit een niveau hoger: een werkplek die agents, dev servers en shells per project organiseert, hun status in de zijbalk bijhoudt en die status via MCP teruggeeft aan de agent. Je favoriete terminal-app kan gewoon ernaast open blijven.
Is het echt native, of weer een Electron-wrapper?
Volledig native. De app is geschreven in Swift en SwiftUI, en de terminal wordt gerenderd via GhosttyKit, dat rechtstreeks naar Metal tekent. Er zit geen ingebouwde browser-engine in de bundle. Daarom start hij snel en zit zijn geheugengebruik in rust dichter bij een Finder-venster dan bij een typische cross-platform IDE.
Ondersteuning voor Windows of Linux?
Nee, en dat staat ook niet op de planning. OpenSolo leunt op API's die alleen op macOS bestaan (AppKit, Metal, Sparkle, het Dock), zodat de app zich thuis voelt op een Mac in plaats van te eindigen als draagbare kleinste gemene deler.
Hoe werken updates?
Via Sparkle, met EdDSA-ondertekende delta-updates. OpenSolo kijkt ongeveer één keer per dag de appcast na, downloadt alleen de bytes die echt veranderd zijn tussen versies, en controleert de handtekening voor het iets installeert.
Changelog
Elke release, nieuwste eerst.
0.17.2Added
- Previous and Next Pane in the View menu, on ⇧⌘[ and ⇧⌘]. The two chords step to the pane above or below the one you are in, so moving one over no longer means knowing its number or reaching for the mouse. They walk every running pane in the space you are looking at, whichever type it is, and wrap around at both ends.
- A Remove button in the toolbar of task runs and sub-agents. It removes a finished pane in one click and asks first when the pane is still running or has sub-panes of its own.
Changed
- New Claude panes, task runs and sub-agents start with your own Claude permission settings instead of always accepting edits. To keep the old behaviour everywhere, set `"permissions": { "defaultMode": "acceptEdits" }` in `~/.claude/settings.json`. Existing panes keep the flags they were saved with.
Fixed
- Claude sub-agents that another agent spawns, and runs of tasks created or edited by an agent, start again. They used to stop at once with an empty pane, so the prompt never arrived. Tasks already saved this way are repaired the next time OpenSolo opens.
- Typing right after ⇧⌘K goes into the action palette's search field again, instead of into the pane behind it.
- A long working directory in the task form stays on one line and is shortened from the start, so the folder names that matter stay visible.
- OpenSolo no longer crashes when a build or agent rewrites files while the Changes panel is closed. The panel now loads its line counts when you open it.
0.17.1Added
- A new app icon, redrawn in Icon Composer for macOS 26. Tahoe renders it live instead of drawing one fixed image, so it follows the tinted, clear and dark icon appearances you pick in System Settings. macOS 15 gets a flattened version of the same mark.
Known issues
- Switching your icon from Alt or Foodie back to Default can keep showing the old one in the Dock until you relaunch OpenSolo. Letting the system render the default icon is what makes the new appearances work, and the Dock does not always redraw when the app hands control back.
0.17.0Added
- Preferences is rebuilt as a sidebar, the shape modern macOS System Settings uses: nine pages on the left, one scrolling page on the right, and a window you can resize. The old tabs collided with the window chrome on macOS 26, leaving the traffic lights on top of the Spaces tab's left column and the project list cut off at the bottom with no way to make the window bigger.
- Back and forward in Preferences, on ⌘[ and ⌘], so you can return to the page you came from. Preferences also reopens on whichever page you had open last.
- An About page showing your version, with a button to check for updates now and links to the repository and to filing an issue.
- Previous and Next Space in the View menu, on ⌥⌘← and ⌥⌘→. Stepping one space sideways used to mean knowing where you were going, either by picking the right proxy icon or by remembering the space's number.
Fixed
- The space switcher at the bottom of the Arc sidebar no longer drifts into the middle of the sidebar. As soon as the selected agent picked up a task list, the task pane pushed the switcher up. It owns the bottom edge now, because that is where you look to see which space you are in.
- Two pieces of sidebar chrome looked wrong on macOS 26. The fade at the bottom of the pager rendered as a flat grey band, and the darkening wash under the space icons read as a detached grey panel rather than as depth. Both are replaced on macOS 26; macOS 15 keeps the old look.
- A space's status dot stuck out past the switcher and read as a stray blob between the bar and the sidebar above it. It now badges the corner of the space's icon instead.
- The editor list in Preferences cut the last editor in half.
0.16.2Added
- Agents that drive OpenSolo over MCP can now tell a finished run from a crashed one. Every pane in the project snapshot carries its process id, its exit code, and the failure message alongside the status, so an agent that started your dev server can check afterwards how it ended instead of only seeing that it stopped.
Fixed
- The instructions OpenSolo hands its agents left out half the tools. Starting, stopping and restarting a pane, listing the ports it holds open, and creating or editing scheduled tasks were all available but never mentioned, so an agent asked to restart the dev server would answer that it could not. All of it is documented now.
0.16.1Fixed
- Preferences ▸ Terminal ▸ Font family now lists SF Mono and your installed Nerd Fonts. macOS reports whether a font is monospaced through a flag that SF Mono and most patched Nerd Fonts leave unset, so those families never reached the dropdown. OpenSolo now measures the letter widths itself and lists every family whose glyphs share one width. SF Mono is the font OpenSolo ships with, so until now the dropdown did not even list its own default.
0.16.0Added
- View ▸ Hide Sidebar collapses the sidebar so a pane gets the full window, on ⌃⌘S. The item flips to Show Sidebar once the sidebar is hidden, the way Finder and Mail label it.
Changed
- The Global Pane Switcher opens with ⌘T instead of a double tap of ⌘. A modifier tapped twice cannot be a real menu shortcut, so the trigger stayed hard to find, and it fired on ⌘ presses you meant as the start of another chord. Show Pane Switcher in the View menu now lists ⌘T next to it.
0.15.0Added
- Every pane type now has its own switch in Preferences for whether it gets a ⌘1–⌘9 slot: agents, commands, terminals, MCP sub-agents, and project boards. The old single "Agents-only quick switch" could only say agents or everything, so a combination like agents plus terminals without commands was impossible.
- ⌥⌘1–⌥⌘9 now reaches every running pane and board, whatever you switched off above. A type you exclude from ⌘N stays one chord away instead of dropping to mouse-only. With everything switched on there is nothing extra to reach, so the ⌥ variant stays unbound.
0.14.4Fixed
- The toolbar and sidebar no longer redraw on every two-second process poll. The CPU and RAM readouts refresh when the number they print changes, instead of on every sample, which takes a steady stream of work off the main thread in a session with several panes running.
- The sidebar RAM figure could sit a megabyte behind the value it meant to show, because the check that decided when to refresh rounded differently than the readout itself. Both now agree.
- Restarting a pane no longer leaves the toolbar reporting the previous run's CPU, or the process-tree popover listing processes that had already exited, for the first couple of seconds.
0.14.3Added
- Freshdesk ticket agents now show up as sub-rows under their provider in the sidebar SUPPORT section, the way spawned sub-agents nest under a pane. Click one to open its ticket and bring its agent up in the drawer; right-click to stop it.
- You can drop a file or screenshot straight onto the embedded agent terminal in a Freshdesk ticket drawer to hand it the path, the same as the main terminal panes.
- A project whose folder was deleted on disk now says so in the pane, showing the missing path and a Try again button, instead of leaving an empty terminal that reads as "nothing happened".
Fixed
- The embedded agent terminal in a Freshdesk pane no longer renders scrambled after you switch to another pane and back. It used to stay garbled until you resized the window; it now repaints correctly right away.
Changed
- The About panel credits Herdr as a second inspiration alongside Solo.
0.14.2Changed
- The hover start/stop control in the sidebar now appears only on command panes. On an agent row its main action is Stop, and one stray hover-click was enough to kill a running Claude or Codex session and the work in flight. Stopping an agent now stays in the right-click menu, where it is a deliberate choice. Commands still get the hover control.
0.14.1Fixed
- Freshdesk ticket numbers no longer show a separator. A ticket like 2878 was rendered "#2.878", which read like a decimal or thousands number; it now shows as "#2878" in the ticket list and the conversation.
Added
- The open ticket repeats its number in the top-right of the conversation, where it stays visible while you scroll a long thread. Click it to copy the bare number to the clipboard for pasting into search or notes.
0.14.0Added
- Command panes can now restart themselves when their process exits. The Edit Pane dialog has a new Auto-restart option next to Auto-start: Never (the default), On successful quit (relaunch only after a clean exit), or Always (relaunch after any exit, including a crash). A command that keeps failing right after launch backs off between attempts and stops after a few rapid failures instead of looping, so a broken command can not spin the CPU. Stopping a pane yourself never triggers a restart.
0.13.1Added
- Hover over a pane in the sidebar to start or stop it without opening the menu. A small control appears at the end of the row: a play button when the pane is stopped, a stop button when it is running. Hold ⌥ over a running pane to turn the stop button into restart. Task-run panes only show stop, since they are meant to be re-run from their task.
Changed
- The Support section now carries its add button as a small + in the section header, next to the count, matching the other sidebar sections. The separate "Add support pane" row at the bottom is gone.
0.13.0Changed
- The sidebar sections are a touch more compact. Each section used to carry a separate "Add agent", "Add task", "Add command" or "Add terminal" row at the bottom. That row is gone, and its add button now sits as a small + in the section header, next to the running count (for example 1/2). Clicking it still spawns a new pane the same way, and holding ⌥ while clicking still opens the full form.
0.12.14Added
- New Claude panes now start in auto-accept-edits mode, so Claude applies its file edits without pausing for confirmation on each one. Press shift+tab in the pane to cycle back to manual approval whenever you want it.
Fixed
- The Arc sidebar no longer leaves an empty grey strip at the bottom. Switching to a pane without a task list dropped the Tasks panel, but the project list above it did not grow back to fill the freed space. The list now stretches to the full height again.
- The terminal no longer mistakes agent log lines for clickable links. Some agent output was wrongly picked up by the URL detector, which cluttered the link overlay with noise. Only real URLs are detected now.
0.12.13Fixed
- A Freshdesk ticket with a long conversation now shows its latest message. Only the first part of a deep thread was ever loaded, so on a ticket with dozens of replies the newest message stayed out of reach with blank space below the thread. OpenSolo now fetches the full conversation, so the thread opens on the most recent reply like an email client.
- An agent running in a ticket's drawer keeps its history when you browse other tickets. Clicking a ticket without an agent used to tear the drawer down, so returning to the agent's ticket showed a blank terminal until you resized the window, with its scrollback gone. The agent now stays alive in the background while you read other tickets, and its full history is still there when you come back.
0.12.12Fixed
- A Freshdesk support pane keeps its place when you switch spaces. Swiping to another space and back used to reset the open ticket to the top of the list and wipe the scrollback of any agent running in the ticket's drawer, because the whole pane was rebuilt from scratch on each space switch. The pane now stays alive in the background, so your selected ticket and the agent's history are still there when you return.
0.12.11Fixed
- A Freshdesk ticket you leave open now picks up new replies. The ticket list refreshed on its own, but the conversation kept showing whatever was loaded when you first opened the ticket, so replies added afterwards stayed hidden until you closed and reopened the support pane. The open thread now reloads whenever the list reports new activity on that ticket, keeping the current conversation on screen until the fresh one arrives.
0.12.10Fixed
- Scrolling back through a terminal and selecting text with the mouse work on macOS 26. The four earlier attempts each cleared another helper layer out of the way, but the real cause was that macOS 26 stopped routing mouse events to the terminal surface at all, even though it was focused (which is why typing kept working and it looked scroll-only). OpenSolo now forwards scroll and click-drag events to the terminal directly, so scrollback and text selection respond right away. macOS 15 was never affected.
- The sidebar filter bar no longer shows up as a grey band on macOS 26. It blends into the sidebar like the list below it again, instead of stacking a second translucency layer that read as grey.
- The status dot next to the pane title no longer sits in a white pill with a shadow on macOS 26. It lies flat against the toolbar, next to the process metrics.
0.12.9Fixed
- Scrolling back through a terminal's history works on macOS 26. The 0.12.8 fix made the per-pane helper layers transparent to the mouse, but the invisible layer that carries the pane's toolbar and title sits above those and still swallowed the scroll wheel and trackpad on macOS 26. That layer now passes every mouse event straight through to the terminal, so scrollback responds right away. macOS 15 was never affected.
0.12.8Fixed
- Scrolling back through a terminal's history works again on macOS 26. The 0.12.7 rewrite of click-to-focus reintroduced the same problem 0.12.6 had fixed: a helper layer that sits in front of the terminal on macOS 26 and swallowed the scroll wheel and trackpad. That layer is transparent to the mouse again, so scrollback responds right away. This covers both regular panes and the embedded agent in a Freshdesk ticket drawer. macOS 15 was never affected.
0.12.7Fixed
- Scrolling back through an agent's output after you click away and back works again on macOS 26. The 0.12.5 fix for this relied on where the system placed the click in the view stack, and macOS 26 orders that stack differently, so the click never refocused the terminal and the pane stayed frozen. Refocusing no longer depends on that ordering, so the scroll wheel and trackpad scroll the history right away. The embedded agent in a Freshdesk ticket drawer now refocuses on click too.
- The sidebar filter field no longer renders as a lighter band with a seam toward the title bar. It now uses the same material as the rest of the sidebar, so it blends in while still hiding rows that scroll up behind it.
0.12.6Fixed
- The mouse works again in the terminal pane on macOS 26. Clicking, selecting text, and scrolling were all dead because an invisible helper layer added in 0.12.5 sat in front of the terminal on macOS 26 and absorbed every mouse event. The layer is now transparent to the mouse.
0.12.5Fixed
- Scrolling back through an agent's output works again after you click away and back. Clicking into a terminal pane now gives it focus, so the scroll wheel and trackpad scroll its history right away. Before this, once focus moved elsewhere (for example after a click in the sidebar), the pane stopped scrolling until you switched agents.
- Sidebar rows no longer slip under the filter field during a fast scroll. The filter bar now has a solid background that hides any row scrolling past behind it.
0.12.4Fixed
- A support ticket that gets resolved while its agent is still running no longer disappears from the ticket list. The ticket stays in the queue as long as its agent is live, so you keep a way back to that agent's drawer. Its status badge turns green to show why a resolved ticket is still listed.
0.12.3Fixed
- Collapsing a section in the sidebar no longer crashes the app. A background change, such as an agent spawning a sub-agent or a pane starting or stopping, could land in the middle of the collapse animation and trip a SwiftUI assertion. The sidebar now holds that refresh back until the collapse has finished.
- A support ticket's embedded agent no longer shows up as a separate row in the sidebar AGENTS section. It stays in its ticket drawer where you started it.
0.12.2Fixed
- Typing into a Freshdesk agent drawer no longer drops the C key. The support pane was claiming C (and the arrow keys) for its own shortcuts even while you typed in the embedded agent, so any input with a C went through incomplete. The agent now receives every keystroke once you click into it.
0.12.1Fixed
- Switching between two Freshdesk tickets that each have a running agent no longer scrambles or blanks the agent terminal in the bottom drawer, and no longer crashes the app. The drawer now keeps every running agent painted and shows the selected ticket's, so switching tickets never rebuilds a terminal.
0.12.0Added
- A new Support section per project, off by default, that you turn on in the project settings. Its first integration is Freshdesk: add a provider with your helpdesk domain and API key (checked on the spot and kept in the Keychain, never in the config file) and you get an Apple Mail style pane. The unresolved ticket queue sits on the left with the sender, ticket number and a preview; the selected ticket's full conversation is on the right, with replies, private notes, attachments and inline images. A blue dot marks tickets still waiting for your first reply, and an orange or red dot marks ones that have gone quiet for three or seven days.
- Filter and sort the ticket queue, and drive the whole pane from the keyboard: the arrow keys walk the list, left and right switch between the list and the conversation.
- Spawn a Claude agent to resolve a ticket straight from the pane, with the toolbar button, the C key, or a right-click. It opens in a resizable drawer at the bottom, one agent per ticket, and keeps running in the background while you read other tickets. A dot on the ticket row and on the sidebar Support row shows when an agent is working, has finished, or is waiting on you.
- Command panes can now start on their own. Pick "On app start" to bring a dev server or watcher up when OpenSolo launches, or "On first agent or task" to start it the first time you work in its project. The option is in the pane's form and applies to command panes only.
- "Restart running" in a section's menu restarts only the panes that are currently running, and leaves stopped ones alone.
Fixed
- Dragging the last card out of a board's "No Status" column no longer leaves an empty "No Status" column hanging until the next refresh.
0.11.2Added
- A new "Include focused pane" option under Sound preferences. Agent sounds normally stay silent for the pane you're looking at, since its terminal is already in view. Turn this on to hear the needs-input and finished cues for the focused pane too, handy when you keep an agent pane open while working elsewhere on screen.
0.11.1Fixed
- Opening a board and switching back to an agent pane no longer leaves the terminal blank until you resize the window. The 0.11.0 fix kept the surface mounted but did not repaint it on return; this release redraws it the moment the board closes.
0.11.0Added
- Board cards now show who is assigned (avatars), the issue or pull request labels (coloured pills), and a comment count. Press A on a focused card to set assignees, or L to set labels: pick one or more from a searchable list with the keyboard or the mouse, and the change saves to GitHub on its own. Assignees work on issues, pull requests and draft cards; labels apply to issues and pull requests.
- A filter button in the board toolbar narrows the board to one or more assignees and/or labels, drawn from the people and labels already on the board.
Fixed
- Returning to an agent pane after opening a board or switching spaces no longer shows a blank terminal until you resize the window.
- Swiping away from a board and back now returns to the board, and keeps its cards on screen without a reload spinner, instead of jumping to the last selected agent.
- The keychain sign-in check no longer runs on the main thread, so the app stays responsive at launch.
Changed
- The "spawn an agent for this card" shortcut moved from A to C, freeing A for the new assignee picker.
0.10.0Added
- GitHub Projects integration. Connect a GitHub account to a project and pick which of its Projects v2 boards show in the sidebar. Open a board in a native Kanban view inside OpenSolo: navigate columns and cards with the keyboard, move a card by keyboard or drag (the new status and position are written back to GitHub), and add or remove issues right from the board. Connecting uses GitHub's device login, and the board picker lives in the Edit Project sheet.
Fixed
- The background opensolo-mcp helper no longer spins using CPU after its connection closes. It now exits cleanly when the socket reaches end of file.
Changed
- The global pane switcher (double-tap Command) no longer plays a splash animation when it opens. It now appears instantly.
0.9.11Fixed
- Switching between projects no longer briefly freezes the app. Setting up the file-system watcher behind the git changes panel ran on the main thread, so a large project or a slow volume could stall the UI for a moment.
- Swiping between spaces in the sidebar is smoother and no longer freezes mid-swipe. The pager was rendering and laying out three copies of every space on every frame. Swiping past the first or last space now springs back at the edge instead of looping around to the other end.
0.9.10Fixed
- Alert sounds no longer cut each other off when two agents finish at the same moment. Before, the second sound silenced the first, so you saw two pulses in the sidebar but heard one ding. Each sound now plays to the end, the custom clips included.
0.9.9Fixed
- A running agent's row in the sidebar no longer flickers or drifts sideways. The pane's activity dot was animating the whole row along with its pulse, so the title and the "· Claude" label visibly slid and faded while the agent worked.
0.9.8Added
- Agents can now open a terminal for you over MCP: a new shell appears in the project's Terminals list, ready to use. You can type in it and close it like any other terminal, and the agent can run commands in it too, so you share one shell.
Changed
- The global pane switcher (double-tap Command) now shows each pane on two lines: the title on top, the agent and project below. Long titles no longer get cut off to make room for the project name.
0.9.7Fixed
- The sidebar stays responsive in long sessions instead of slowing down the longer the app runs. Scanning terminal output for links now happens off the main thread, the per-pane memory readout only refreshes when it actually changes, and clicking a pane no longer redraws every row.
- Memory no longer creeps up as finished agents and task runs pile up: a pane that has exited releases its terminal view when you are not looking at it, and reopens with its scrollback intact.
0.9.6Added
- Background agents can play an alert sound when they finish a turn or start waiting for you, so you don't have to keep watching the pane.
- ⌘N creates another pane of the same kind as the one you have focused: a fresh shell, a new agent of the same type, or a copy of the selected command. Hold ⌥ (⌥⌘N) to open the form and adjust it first.
- OpenSolo now reports crashes automatically so they can be found and fixed without you sending anything by hand. No personal data is included.
Changed
- The Pane Switcher shows the pane title before the project name, and the action palette and the switcher no longer open on top of each other.
- Raised the limit on concurrently spawned sub-agents to 10.
Fixed
- Fixed a crash when collapsing a project in the sidebar.
- A sub-agent's spawn slot is now freed whenever its pane closes by any route, so closing panes by hand can't leave you unable to spawn.
0.9.5Added
- Removing a space that still has running processes now asks you to confirm first, and spells out that its projects move to another space while the processes keep running.
Fixed
- Fixed a crash when adding or removing spaces in Preferences while the Arc-style sidebar was active.
0.9.4Added
- Switching between spaces now returns you to the pane you last had open in that space, instead of leaving you on the previous space's pane. A space you haven't opened yet shows an empty "no pane selected" state rather than jumping into a pane on its own.
Fixed
- Fixed a crash that could happen when editing a pane's settings restarted its session, where an in-flight terminal update reached the surface while it was being torn down.
- A restarted agent pane now boots at the correct terminal size, so tools like Codex and Claude no longer render one glyph per line until you resize the window.
0.9.3Changed
- The Pane Switcher now lists only the panes that plain ⌘1–⌘9 reaches, so commands and terminals no longer clutter it (hold ⌥ with the number keys to reach those, as before). If you've turned off the agents-only setting, the switcher keeps showing every pane to match.
0.9.2Fixed
- The Pane Switcher now keeps the keyboard while it's open. Escape and the number keys reliably close it or jump, instead of sometimes slipping through to the terminal underneath and interrupting the agent running there.
Changed
- Softened the ripple highlight so the wave reads more subtle, and added a second wavefront trailing the first for a fuller splash.
0.9.1Added
- Global Pane Switcher. Tap ⌘ twice (or View → Show Pane Switcher) to open a centered overlay listing every running pane across all your spaces, numbered 1–9 so you jump straight to one with a single key. It opens on the pane you're already in, works in both the Normal and Spaces layouts, and lets you hop to a pane in another space without first switching spaces. Arrow keys, Return, and click work too.
- The window behind the switcher ripples with a Metal splash as the card drops in, toolbar included. The whole effect is skipped when the system Reduce Motion setting is on.
- Per-space activity on the Spaces proxy-icon bar. A space holding an agent that needs your input pulses orange on its icon, one that has finished its turn pulses green, so a space you aren't looking at can still get your attention.
Fixed
- Fixed a crash that could occur when a section filter hid the project that owned the selected pane.
0.9.0Added
- New optional Spaces sidebar layout (General preferences → Sidebar → Layout). Toggle between the flat Normal sidebar and a Spaces layout where projects are grouped into user-defined spaces and one space is visible at a time. Existing projects land in an auto-created Default space on first activation, so nothing disappears.
- A dedicated Spaces tab in Preferences for managing spaces: name, SF Symbol icon (5 starter symbols with a Show more to reveal the full 70), and which projects belong where. A project lives in exactly one space; moving it elsewhere is one click.
- A proxy-icon bar at the bottom of the sidebar shows every space; the active one is highlighted, hover reveals its name, click jumps to it with a spring-physics animation. Swipe with two fingers on the trackpad to drag-and-snap between spaces; wrap is circular so swiping past the last space lands on the first.
- ⌃1–⌃9 activates Space N. The existing ⌘1–⌘9 pane shortcuts now scope to panes in the active space when Spaces is on, so the shortcuts always line up with what's visible.
0.8.3Added
- The sidebar's section-filter toggles (Agents, Tasks, Commands, Terminals, Inactive Projects) are now mirrored under the View menu, so they're reachable via the menu bar and the Help → search field. Inactive Projects has a ⌘⇧A shortcut.
0.8.2Added
- Per-project section visibility. The new Edit Project sheet (right-click a project, Edit Project…) lets you toggle Agents, Tasks, Commands, and Terminals on or off for that project alone, so a docs-only project stays clean of sections it never uses. The same toggles are in the New Project sheet. Both sheets follow the modern macOS Settings look — grouped rows with switch toggles, full-row click target.
- Hiding a section with running processes asks for confirmation first and lists the per-section count, so a tap can never silently kill agents or dev-servers. Definitions inside a hidden section are kept on disk: re-enable the section to bring them back.
- A Restart button on the MCP preferences pane. When the unix-socket gets wedged (stale fd, peer-closed connections that didn't clean up), one tap stops and re-starts the server in a single tick. Live clients reconnect on their next request; the button asks first when there are connected clients.
- A logfile for the `opensolo-mcp` helper at `~/Library/Logs/OpenSolo/opensolo-mcp.log`. Captures start-up, socket connect, and fatal errors with a 256 KB rotation, so a generic "-32000" from Claude Code has something to grep against when the host's UI stays silent.
Added
- Stopping or removing a pane that has sub-agents now asks first. Stop offers a choice between stopping the whole subtree or only the parent (leaving the sub-agents running); Remove confirms that every sub-pane underneath will be torn down too.
- The task schedule preview understands more shapes. Weekdays-only, weekend-only, and multi-time patterns now read as "Weekdays at 9h, 17h" instead of falling back to "Custom schedule".
Fixed
- Removing a pane with several sub-agents no longer freezes the sidebar for a beat per subtree. The process-tree teardown now happens off the main thread, so the UI stays responsive while children are signalled.
0.8.0Added
- A fourth sidebar group: Tasks. Define a prompt with an agent (Claude, Codex, Gemini, or a custom command) and trigger it manually with Run Now (⌘R) or on a schedule. The schedule editor offers presets (every minute, hourly, daily, weekly, monthly) plus a raw cron expression for power-users. Each task run is a regular agent pane parented to the task, so status dot, hooks, MCP server, the OpenSolo system prompt, and `opensolo_spawn_agent` all apply unchanged. The Quit dialog warns when active task runs would be lost.
- An OpenSolo MCP server. Claude (and other MCP clients) can now list and switch projects, find the active pane, read viewport output, scan a pane's open TCP ports, spawn or close sub-agent panes, send keystrokes, control pane lifecycle (start, stop, restart), and long-poll for sub-agent events. Setup snippets per client live under Settings, MCP.
- Tools to create, list, edit, and remove tasks via MCP, so an orchestrator can self-schedule recurring work in the project it's running in.
- A panel under each project tree mirrors Claude Code's task checklist live, so you can see what the agent is working on without switching to the pane.
- Show in Finder, Open in Terminal, and Open in editor toolbar buttons in the detail pane. The terminal and editor buttons honour your configured defaults from Settings.
Fixed
- The sidebar keeps its scroll position when projects or panes are added, removed, or reordered. Earlier versions reset it to the top on every structural change.
- Resizing the window or sliding the git inspector no longer makes terminal panes feel heavy. PTY resizes are now coalesced onto the trailing edge of a resize, so a TUI like Claude Code does one full repaint at the end of the drag instead of one per frame.
- Git diff line numbers no longer wrap onto two rows in very large files.
- Collapsing or moving a sub-agent under another pane no longer leaves an overlapping ghost row in the sidebar.
0.7.0Added
- A Git Changes inspector. Toggle it from the detail toolbar to see the files changed in the selected project's working tree, with a built-in diff view. Files show as a flat list or a folder tree, and the diff pane is resizable and can wrap long lines.
- Commit history in the inspector. The History panel lists the current branch's commits; click one to inspect the files it changed and their diffs, and hover a commit for a tooltip with its full message, author, date, file and line counts, and any pull-request number.
- An "Open in Terminal" action in a project's context menu, which opens the project folder in your preferred terminal.
- The CPU and memory graphs in the process popover are now iStat-style bar histograms with a peak label.
0.6.0Added
- A project's context menu now has "Open in" actions for the editors installed on your Mac, such as Cursor, Zed, VS Code, or Xcode. A new Editors tab in Settings lets you choose which ones appear and drag them into the order you want.
Fixed
- Fixed a rare crash at startup caused by a setting changing on a background thread.
- On macOS 26, the detail toolbar no longer draws empty rounded capsules around the status dot and the process metrics.
- Terminal panes now have a little padding, so the prompt and scrollback are no longer flush against the edge.
0.5.2Fixed
- The sidebar activity indicator now pulses when an agent is waiting for you to approve a tool, such as a command it wants to run. Previously it lit up only for questions and plan approvals.
0.5.1Added
- The About panel now links the OpenSolo website.
- A new setting controls what makes the Dock icon bounce: an agent waiting for your input, an agent finishing its turn, or both. It lives under Settings, on the General tab.
Fixed
- Collapsing a project or section in the sidebar no longer leaves overlapping leftover header text behind.
0.5.0Added
- Automatic updates through Sparkle. From this version on OpenSolo checks for new releases on its own and installs them with your consent; there is a "Check for Updates…" item in the OpenSolo menu.
- Action palette (⌘⇧K): a keyboard-driven overlay to jump to any pane or run a common action without reaching for the sidebar.
- The Dock icon bounces and shows a badge when an agent pane is waiting for input.
- A sidebar filter to hide inactive projects.
Fixed
- Sidebar rendering artefacts when scrolling and collapsing sections.