Changelog

Release notes and version history for the Solo desktop app.

Need the latest build or setup help? Visit Download or Help. Need package references? Browse the Docs. Running agents? Read about the agent workspace. Comparing tools? Start at Compare.

Released on October 18, 2026

TL;DR
  • Solo now runs on Linux: a signed x86_64 AppImage with automatic updates, Solo's own title bar, and a renderer check that picks the right terminal mode on software-rendered setups.
  • Agents are easier to keep going: Muse is a first-class provider, Solo offers to resume running agents after a quit or crash, you can attach a resume ID by hand, and timer and MCP messages reliably submit, including to Codex.
  • Settings now opens full screen with a grouped sidebar, and Todos, Scratchpads, Prompt templates, and Activity monitor can each be turned off without losing their data.
  • Terminal output processing is more than twice as fast and uses about half the CPU, and many other rendering, process, and sidebar paths do less work. On macOS, Solo no longer slows down in the background because of App Nap.
  • Solo is much harder to freeze or wedge: MCP process actions, window moves and closes, stuck agents, leftover child processes, locked databases, and concurrent license limits no longer stall or break the app. Changes made in one window now show up in every other window.
  • Integrations can send terminal input through the HTTP API, CLI, and routines, and agents can wait for a coordination lock in a single call. Solo also sends much less anonymous usage data.
Added
Agents
  • Muse is now a first-class agent provider, with installation detection, activity and session tracking, exact resume support, safe Solo MCP health and reconnection, and settings/terminal UI support.
  • When Solo quits or crashes while agents are running, the next launch offers to resume them with "Resume all" or "Not now". Only agents with a saved session and exact resume support are offered; agents you stopped, agents that exited on their own, and agents whose CLI is still running are skipped, and dismissed or failed resumes are not offered again.
  • Agents without a stored resume ID now show an "Attach resume ID" field in the resume panel. Solo validates the ID against the provider's format and never replaces an existing ID. The resume panel also shows a provider chip and inline copy confirmation.
  • Programs running in Solo can report that they are working, blocked, done, failed, or idle through the OSC 7501 program status protocol. These reports drive the activity indicator and attention alerts, and while a program reports that it is blocked, timer and MCP messages wait until it continues.
Processes & Projects
  • Project headers now offer an "Open on GitHub" quick action when the project has a GitHub remote.
  • The Tracked processes dialog now marks Claude Code background tasks with a "Background task" badge, labels them from the session transcript when possible, shows their command, and lists them ahead of helper processes such as MCP servers.
Command Palette
  • The attention and favorites palette (Cmd/Ctrl+Shift+E) now shows a blue dot beside processes that need attention, making them easy to distinguish from other favorites.
  • A new "Configure custom agent" action in both the Cmd/Ctrl+K command palette and Cmd/Ctrl+T new-item palette opens Settings → Agents → Agent tools, making custom-agent setup easier to discover.
Prompt Templates
  • Prompt templates now have a "Copy link" action. Links to project and global templates open their detail view and can be pasted into the command palette.
MCP
  • Agents can now wait for a coordination lock in one lock_acquire call using optional wait_ms, clamped to a 20-second wait budget. Waiting supports cancellation; omitted or zero waits still try immediately.
  • send_input distinguishes queued messages from intentional prompt interactions. Process status and timer inspection now report pending and recent input delivery outcomes.
HTTP API & CLI
  • Terminal input can now be sent through the local HTTP API (POST /api/processes/{processId}/input), the solo processes input command, and routines (solo.processes.sendInput), with the same queueing and "do not resend" rules as MCP send_input. The API returns 200 when the input was delivered, 202 when it was queued, and 503 when delivery is uncertain.
Settings
  • Todos, Scratchpads, Prompt templates, and Activity monitor each have their own Settings page with an on/off switch and an Open button. They stay on after updating. Turning one off hides it throughout Solo, including its sidebar section, menu items, command palette entries, links, and Back/Forward history, while keeping its data; turning it back on restores everything. The switches stay in sync across open windows.
  • While Todos or Scratchpads are off, Solo MCP, the local HTTP API, the solo CLI, and routines can't read or change them and report which setting turns the feature back on. Routine steps whose condition is false are skipped instead of failing. Turning off Prompt templates also removes their MCP tools.
UI & Platform
  • Solo is now available on Linux as a signed x86_64 AppImage with automatic updates. The AppImage uses the system's Wayland libraries, so it renders correctly on distributions with current Mesa, such as Arch.
  • Linux now attempts a per-view native WebKit renderer check when explicit settings do not already decide the policy, selecting Canvas terminals with non-accelerated compositing for recognized software renderers, including recognized Zink/Lavapipe names. The diagnostic format was validated on WebKitGTK 2.52.6; missing or unknown results preserve the normal path. The explicit software-rendering option remains available.
  • Cmd/Ctrl+L now copies a link to the selected process, scratchpad, todo, or prompt template, even while editing. The shortcut can be changed in Settings → Hotkeys.
  • A new "Close window" command in Settings → Hotkeys lets you bind a shortcut to close the current workspace window. It has no default binding and follows the normal close confirmation flow.
Changed
Processes & Projects
  • Process CPU and memory updates now send only changed values, and port discovery and other OS inspections share bounded work across consumers. Recovering surviving processes after a crash batches PID checks instead of inspecting each process separately.
  • Process launches resolve only the selected execution profile and share cached shell environments, reducing repeated shell probes. Environment refreshes run with bounded output and time limits and retain the last good environment when a refresh fails.
  • solo.yml changes now coalesce per project and wake the watcher only when work is pending, reducing idle polling and memory growth during bursts of filesystem events.
  • Activity Monitor refreshes resolve every managed process's command lines with one ps call instead of one call per process, making refreshes with many processes much faster.
Terminal
  • Terminal output processing is more than twice as fast on Solo's terminal benchmarks and uses about half the CPU per megabyte, with the largest gains for line erasing, shell output, long scrollback, and agent output. Release builds are also fully optimized at link time.
  • Terminal rendering uses less CPU during heavy output by skipping repeated scrollback lookups, glyph classification, and style work.
  • Software-rendered terminals reuse unchanged rows and temporary text bitmaps, improving responsiveness during fast output, including in software-rendered XRDP sessions.
  • Terminal output reuses parsed grid observations for activity and notification tracking, and live search reuses unchanged scrollback. Keystrokes, including Ctrl+C, can reach the PTY writer without first waiting for terminal output parsing.
  • Terminal font previews coalesce rapid setting changes and reuse unchanged measurements, reducing redundant font loading and renderer updates. Font diagnostics wait for fonts to settle and reuse cached results.
Command Palette
  • The command palette is wider, giving names and actions more room.
  • Command-palette scope shortcuts remain inline on macOS and move into button tooltips on Windows and Linux, keeping the toolbar compact without horizontal overflow.
Scratchpads & Todos
  • Remote Markdown images support PNG, JPEG, GIF, WebP, BMP, AVIF, and ICO. SVG images, including many README and CI badges, are not supported through the remote image loader; Solo shows their alt text or URL instead. Use a raster image URL when an image preview is needed.
  • Todo lists batch blocker loading, and Todo and scratchpad operations verify their project directly instead of loading the entire project catalog. Markdown editing reuses unchanged block conversion, while unchanged read-only comments avoid repeated rendering.
Universal Chat
  • Long conversations initially load the latest page of complete turns, with "Load older messages" to retrieve earlier history while preserving the reading position. Provider events are saved in atomic batches to reduce database work.
  • Streamed text updates are batched, Markdown rendering is paced during streaming, and completed text blocks use static rendering. Unchanged Markdown blocks are reused. Scrolling up now preserves the reading position as new output arrives; "Jump to latest" resumes following the conversation.
Timers
  • Timer indicators share one snapshot and keep countdown updates local to the selected pane, reducing background queries and sidebar updates.
MCP
  • Generated AGENTS.md and CLAUDE.md integration instructions now focus on detecting SOLO_PROCESS_ID, using Solo MCP help, and reusing existing dev commands instead of embedding a full tool catalog.
  • stop_process and restart_process now refuse to stop or restart the calling agent's own process unless confirm_self_stop is true, matching close_process and confirm_self_close.
  • MCP message framing now scans incoming data once and bounds buffered messages. Analytics buffering, retries, and flush work are also bounded to limit overhead when delivery is slow or unavailable.
Settings
  • Settings now opens full screen, with its pages listed in a sidebar grouped under General, Workspace, Terminal, Agents, Features, and Integrations. Back or Escape returns to where you were, and the Up and Down arrow keys move between pages unless a dropdown has focus. The sidebar keeps the active page in view.
  • Larger settings pages are split up: Terminal into Appearance, Behavior, Shells, Compatibility, and Tools; Agents into Agent tools, Names, Summaries, Context pins, Timers, and Key-value; and Integrations into MCP and HTTP API & CLI.
Licensing
  • Linux license device-ID generation no longer scans running processes, reducing CPU and file-descriptor use while preserving existing device IDs.
Privacy
  • Solo sends much less anonymous usage data. Everyday actions such as starting processes, creating todos and scratchpads, using the command palette, and calling MCP tools are no longer reported individually. Instead, Solo sends at most one summary of usage counts per active day, containing no project names, paths, commands, or text.
UI & Platform
  • Linux workspace windows now use Solo's draggable title bar and window controls without attaching the redundant GTK application menu. Linux also keeps its native font rasterization instead of applying macOS-specific font smoothing.
  • Process context menus now group related actions consistently. "Duplicate all commands to" is available from the project menu, and "Automatic renaming" uses a checked menu item.
  • Terminal notifications and the attention menu now lead with the process name or live terminal title, so they say which process needs attention. An agent's generic title such as "Claude Code" no longer hides its task title, and attention menu entries strip Markdown links and skip a redundant project name.
  • Large project lists and command palettes share catalog data, build only the active palette models, and reuse unchanged rows. Sidebar layout measurements are coalesced, text truncation reuses cached measurements, collapsed rows release their subscriptions, and dragging the sidebar or changing transient UI state avoids unrelated renders and persistence writes.
  • Only one copy of Solo can use a data directory at a time. A second copy launched against the same data shows a startup error instead of running against the same database.
  • Local debug build/open and performance tooling now supports Linux and Windows direct-binary launches, honors checkout-specific .env.local Cargo target directories, and collects platform-native process CPU and memory counters.
  • Local development launches preserve incremental Rust build caches instead of deleting them on every start.
Fixed
Agents
  • Messages delivered through timers or Solo MCP now arrive as a bracketed paste whenever the agent enables paste mode, including custom agents, and Solo waits for the agent to read the text before sending Enter. This keeps short messages to Codex, and messages sent under heavy load, from being left unsubmitted in the composer. Explicit prompt interactions still arrive as keystrokes. Delivery receipts confirm PTY writes, not that the agent accepted or started a turn.
  • Codex session capture now follows wrapper descendant trees to the writable active rollout and records shutdown footer IDs after exit, so Resume targets the right conversation. Ambiguous or changing process trees safely retry instead of attaching the wrong session. With Codex 0.157 and later, which writes sessions from a shared background service, each agent again records its own resume ID, including when several Codex agents launch at once, and Solo MCP calls identify the calling Codex agent instead of whichever agent started the service. When several Codex agents start in the same folder, each is matched to its session by the first message Solo sends it, so Solo no longer adds arguments to Codex launches and read-only Codex agents start normally.
  • Antigravity session capture now works with Antigravity CLI 1.2.17 and later, so Resume returns to the right conversation.
  • Pressing Enter repeatedly, or while an input method is composing, in the custom agent flags dialog no longer launches duplicate agents, and a finished launch no longer closes a dialog reopened for a different target.
  • Resuming an agent reuses an existing matching session argument instead of adding a duplicate. A conflicting session argument now shows a "Session ID mismatch" dialog explaining how to correct the command.
  • Codex session capture now accepts group-writable session files and directories on Ubuntu when they are inside a private Codex home directory. World-writable paths remain rejected. On Windows, session capture also accepts private files owned by the elevated process token's default owner while continuing to reject unsafe permissions.
  • Codex terminal titles retain their full text, including | separators, instead of dropping text that looks like a repository suffix. Pinned names remain unchanged.
  • Timers and MCP agent messages now share delivery ordering and recent-typing protection. Waiting for input admission no longer uses up the ten-second PTY write timeout.
  • Typing or explicit interruption cancels a pending automated Enter. Enter, Tab, or newline input sent through send_input now waits behind earlier timer and MCP messages instead of interrupting them, and is dropped if you type in the meantime; other control input such as Ctrl+C or Escape still interrupts immediately. If an interrupted submission may have left a draft, further input is blocked until the process restarts, preventing a later message from submitting leftover text. MCP messages no longer count as physical human typing.
  • Universal chat provider fallback resolution now preserves quoted CLI arguments, including Windows paths containing spaces.
  • Kimi MCP setup now detects whether the installed executable uses CLI commands or a configuration file, honors custom configuration roots from the selected shell, and preserves existing client settings.
  • Native Codex and Claude permission prompts now report their waiting-for-approval state more accurately.
  • Agent activity indicators now load the current state when a window initializes, without waiting for another activity event or overwriting newer updates.
  • Muse setup on Windows now follows the agent's configuration-path precedence, including XDG_CONFIG_HOME, HOME, and USERPROFILE.
  • Partial or uncertain MCP and timer deliveries are not retried into a running or replacement process.
  • Agent installation checks now preserve quoted paths and wrapper arguments, ignore shell startup banners when reading versions, and continue working if the app's original working directory has been removed.
  • Agent summary generation no longer hangs when a summary command stops reading input or produces large output; timed-out commands are stopped so later summaries can proceed.
  • Claude recap summaries in notifications no longer show run-together or missing words, or broken characters such as em dashes and curly quotes.
  • On Windows, Codex session capture no longer stalls when an agent receives a process ID that a long-gone system process once used, so those agents record their resume ID again.
Workspaces
  • Workspace deletion through the local HTTP API now returns distinct conflict, not-found, unavailable, and internal-error responses instead of collapsing protected deletes and backend failures into generic bad requests.
  • Changes made in one workspace window now appear in every other open window. Previously, other windows kept stale values until restart: favorites (so the Focus palette's "All workspaces" scope missed them), per-process settings like skip stop confirmation, terminal title updates, notification levels and cleared exit status, per-project settings like auto-start, execution profile, editor and notification level, and app settings such as default apps, editors and terminals, quick actions, auto-focus, sidebar layout, stats thresholds, and the summarizer. Changes made through MCP and the local HTTP API now also reach every window.
Processes & Projects
  • Local server discovery now includes listening ports from 49152 through 65535, so servers assigned a high-numbered port appear in process details.
  • Concurrent project onboarding and command/YAML changes now commit atomically: canonical-equivalent project adds reuse the same project, rejected command batches restore the exact solo.yml, and durable deletions no longer reappear after restart.
  • Generated agent and terminal names now skip names owned by configured commands, while explicit or concurrent cross-kind name collisions fail cleanly without overwriting an existing process.
  • Surviving commands are re-adopted after an app restart even when their configured command changed, while stable process identity prevents a replacement row from claiming the old child process.
  • Orphan recovery and cleanup now verify the original native process identity, preventing reused process IDs from targeting unrelated processes.
  • Removing a process, including through solo.yml, now clears its stale crash and unread-attention indicators.
  • Windows processes that exit with code 259 are now correctly recognized as exited instead of remaining marked as running.
  • Stopping a process now still attempts forced termination when waiting for graceful shutdown times out.
  • Changing a project's folder keeps its displayed path current even if setting up the new solo.yml watcher fails, and retrying the same folder restores watching.
  • Project onboarding now shows the correct FastAPI, Flask, and Spring Boot labels.
  • Starting, stopping, restarting, closing, and spawning processes through Solo MCP, including bulk commands and project deletion, no longer freezes the app. Closing an agent that ignores the stop signal from the sidebar, local HTTP API, or MCP no longer stalls Solo for the stop grace period.
  • After a macOS restart, processes tracked before the reboot are cleaned up at launch instead of being reported as still running, and Kill All no longer refuses to remove them.
  • Solo no longer leaves a defunct child process behind each time it opens a link, file, or folder, or launches an editor, terminal, or browser. Over long sessions these could reach the system's per-user process limit and prevent new processes from starting.
  • Stopping or killing a process while it is still starting now sticks: it no longer ends up shown as Running without a PID, is not brought back by auto-restart, and does not show a launch-failure toast.
  • Clearing a process's working directory in its settings now resets it to the project root instead of keeping the old directory.
  • When saving a favorite, collapsed project, or project icon fails, Solo now undoes only that change and keeps renames, status updates, and other changes that arrived in the meantime.
  • The project icon picker now accepts only images inside the project folder; files in a sibling folder whose name starts with the project's name no longer count.
  • Socket discovery now avoids blocking filesystem probes, preventing slow or unavailable mounts from delaying discovery or leaving inspection helpers behind.
  • Linux process accounting no longer counts threads as independent child processes or duplicates their memory, and diagnostic process-tree sampling now finds children spawned by any worker thread.
Terminal
  • Terminal text selection now works when input arrives through the mouse-event fallback, while preserving normal pointer gestures and terminal application mouse reporting.
  • Wrapped terminal links now underline across all their visual rows. Standalone directory paths containing spaces are checked and opened as complete paths, while surrounding prose stays unlinked.
  • Cursors and search highlights remain visible after software-rendered terminal canvases resize.
  • Terminal, cursor, and decoration repaints clear complete physical edge pixels at fractional display scaling, preventing stale borders and cursor remnants.
  • Clearing terminal output now also invalidates retained scrollback, preventing cleared history from reappearing after reattaching.
  • Typing or pasting while scrolled up now jumps to the live prompt, so input appears immediately without having to scroll back to the bottom.
  • Terminal dimensions are now clamped consistently to a safe 2×2 minimum across persisted settings, PTYs, and renderer snapshots, preventing undersized layouts from corrupting or desynchronizing terminal state.
  • Verified file paths split across a hard newline after / or \, or across a hyphen with matching indentation, now open as one terminal link, while unrelated paths on adjacent lines remain separate.
  • Command-clicking terminal links now tolerates slight pointer movement instead of accidentally starting a selection.
  • Unicode glyphs now repaint on the next terminal update after a temporary canvas rendering failure instead of remaining stale or missing.
  • Unicode-heavy terminal output now avoids repainting unchanged glyphs, reducing rendering work during scrolling and frequent updates.
  • Stopped agents and commands whose saved terminal output is entirely blank now show their resume or start actions instead of leaving an empty pane.
  • Status-line repaints preserve terminal tail geometry, and related output bursts are coalesced to reduce flashing and intermediate redraws, including synchronized output and short split panes.
  • Terminal resizing now retries temporary PTY lock contention so the process eventually receives the current pane dimensions instead of remaining at a stale size.
  • Recovering from a temporary terminal connection failure now preserves visible output and scroll position through retries, preventing blank flashes.
  • Older scrollback remains loadable when retained output is compacted while a history request is in progress.
  • Terminals taller than 128 rows now repaint changed rows correctly. Wide characters wrap correctly at blank right margins, and resizing very long wrapped lines preserves the cursor position.
  • Excessive terminal protocol queries no longer leave ordinary typing unusable. Holding a key now produces correct repeat events in applications using the Kitty keyboard protocol.
  • Windows terminals now handle color queries and cursor restoration correctly, and cmd.exe launches preserve quoted paths and command operators.
  • Windows command launches now honor the configured cmd.exe AutoRun policy instead of implicitly disabling it; explicitly configured /D still disables AutoRun.
  • A queued Windows input timeout no longer cancels an unrelated active PTY write.
  • Agents and terminals launched in WSL now receive their Solo process and project identity, allowing integrations to identify the correct process.
  • Terminal rows no longer lose text when an update lands inside a run of blank cells. Overwriting or erasing half of a wide character such as CJK or emoji now clears, or colors, both halves instead of leaving a stray fragment.
  • Apps that query the Kitty keyboard protocol now receive the flags actually in effect instead of always being told no enhancements are enabled.
  • Typing right after switching processes can no longer send keystrokes to the previously selected process.
  • A newly started terminal no longer occasionally fails to load its first screen when output arrives while it is opening.
  • Resizing a pane running a full-screen program such as Claude Code, vim, or htop now completes almost instantly regardless of session length, instead of replaying all retained output and stalling terminal updates for seconds in long sessions.
  • On macOS, Command+C in a full-screen app that uses the Kitty keyboard protocol, such as Claude Code or Codex, now copies the app's own selection when nothing is selected in Solo. With a Solo selection, Command+C still copies it.
Command Palette
  • Jumping to project sections, Todos, Scratchpads, or prompt templates through the command palette no longer records an intermediate project route as a phantom Back/Forward history entry.
  • Launching an agent closes the command palette immediately instead of leaving it open while the agent starts. Opening custom agent flags preserves the underlying project selection and focuses the command input.
  • Command-palette rows now keep their titles correctly aligned when displaying truncated names.
Scratchpads & Todos
  • MCP todo_create now rejects unknown fields such as description with an error pointing to body, preventing silently empty Todos.
  • Scratchpad tag filters show counts below tag names so names remain readable, including at larger interface font sizes.
  • Scratchpad edits now save when leaving the pane, including edits made during an earlier save. Rapid navigation, save failures, and conflicts preserve the latest draft for recovery.
  • When a scratchpad changes while you are editing it, you can now keep your version as a separate "(conflict copy)" scratchpad or discard your edits and load the latest, instead of only reloading.
  • Editing Todo blockers no longer overwrites unrelated blockers during concurrent changes, and terminal Todo pins refresh after changes from other windows or integrations.
Prompt Templates
  • The scope filter now groups projects into workspace submenus when workspaces are available, keeping Global at the top level.
  • Cmd/Ctrl+F now expands and focuses the search field on the prompt templates page.
Universal Chat
  • Approval policies now normalize Claude notebook paths and Codex grant roots before matching rules. Empty or wildcard deny rules correctly block every matching resource, while blanket allow rules and empty-resource session approvals cannot become reusable trust rules.
  • Late transcript loads and provider events from a previous conversation can no longer overwrite the newly selected conversation or change its running state.
Timers
  • Slow message delivery to one process no longer delays timers targeting other processes. Repeating timers preserve their original cadence instead of accumulating delivery delays, and messages already queued for one run cannot spill into a restarted process.
  • A timer that fires while its target is restarting, or waiting to auto-restart after a crash, is now delivered once to the new run instead of being lost. A timer that fires at a stopped or exited process is marked undelivered once and not retried.
  • Repeating timers whose target process has been deleted are now cancelled instead of firing indefinitely, and their messages no longer replay on every recovery scan or crowd real delivery outcomes out of get_process_status. Fired and cancelled timers older than seven days are pruned automatically; timers owned by an external agent stay active while it is connected or was seen within the last seven days.
  • Idle timer checks use an index and no longer hold a database write transaction, reducing CPU use with large timer histories. Agent summary scheduling and server notification checks no longer block work shared with the UI and MCP, reducing app-wide stalls under heavy agent load.
Routines
  • Clarified the existing lifetime of routine command helpers: after a command exits, even successfully, Solo force-cleans its owned process group/job without a graceful phase. Commands must wait for children that need to flush or shut down; use managed processes for persistent services.
  • On Windows, routine hook paths now resolve with native separators and the JavaScript worker has enough stack for bundled routine sources, preventing hook lookup failures and parser stack exhaustion.
  • Routine run confirmations and trust reviews no longer reappear after cancellation or apply to a different routine after navigation, and failed submissions can be retried.
MCP
  • Windows MCP helpers now finish pending responses and exit after their input closes instead of hanging indefinitely.
  • send_input now returns within 30 seconds instead of potentially hanging. A timed-out call reports whether the message was not accepted and is safe to retry, was queued with a delivery ID, or may have been delivered.
  • whoami now identifies an agent that calls it while it is still starting, such as right after Solo relaunches and resumes agents, instead of reporting that it cannot be identified. It also identifies an agent that calls it at the moment its launch completes.
  • MCP setup status now reports Solo as not connected when its entry has been removed from an agent's configuration, even if a running session still has Solo's MCP helper. Claude Code checks look up only Solo's entry, so they no longer time out when other MCP servers are slow to connect.
  • Linux MCP caller identification now inspects only the caller's process ancestry, reducing inspection overhead. Process monitoring also keeps fewer file descriptors open, leaving more headroom for terminals and connections.
Licensing
  • Offline license grace now ends exactly 14 days after the last successful validation instead of lasting almost a day longer.
  • License state now remains bound to verified signed claims. Stale or concurrent validation, activation, deactivation, expiry, and revocation results can no longer restore an older entitlement or erase recoverable license data.
  • Effective project and process limits are now admitted atomically across the app, CLI/HTTP API, MCP, YAML imports, starts, restarts, and autonomous restarts. Concurrent requests cannot exceed a limit or leave partial records, and the license dialog now distinguishes project-only from process overages while remaining dismissible during revalidation.
Data & Migrations
  • Retried agent-channel migrations now preserve agents, channels, messages, timers, Todos, comments, and blockers. Valid legacy Todo statuses, including In progress, survive schema repair while invalid statuses normalize to Open.
  • A database upgrade that fails at its final step is now rolled back cleanly so it can run again on the next launch, instead of leaving the database partway through.
  • Saving changes no longer fails right away with "database is locked" while the solo CLI, Solo MCP, or another connection is writing. Solo now waits its turn.
UI & Platform
  • Terminal and search inputs now recover focus when returning to a Solo window.
  • A window that gains focus during startup is no longer treated as unfocused, which could show notifications that should have been suppressed while you were looking at it.
  • Solo announcements that fail to appear are retried instead of skipped, and dismissing an announcement as it appears now dismisses it for good.
  • Windows startup now verifies that the main window is visible before closing the splash screen.
  • When native dialogs cannot represent all choices or a "Don't ask again" option, Solo now preserves them in an in-app confirmation dialog.
  • Linux windows now preserve their remembered normal size when a maximized resize arrives before the window-state notification, preventing maximized dimensions from overwriting the saved normal dimensions.
  • Native context menus now open at the clicked row or keyboard-focused control instead of appearing at an unrelated screen position, with safe handling for display-origin and invalid coordinates.
  • Linux file and folder pickers now use the desktop portal, improving dialog sizing on tiling desktops, while alerts and confirmations retain native GTK dialogs.
  • Clicking the native "Close window" menu item on macOS no longer risks an AppKit exception. Close-window shortcuts reject conflicting bindings, and concurrent hotkey edits across windows no longer silently overwrite newer settings.
  • Closing a workspace window on Linux or Windows now enters Solo's shared confirmation and graceful shutdown flow instead of preserving the window as though it were macOS.
  • Choosing Help → Report an issue now opens the feedback dialog only in the active workspace window instead of every Solo window.
  • Feedback drafts queued before the interface is ready are now preserved and opened once it can receive them.
  • Project headers no longer flicker or shift the sidebar content beneath them when hover actions appear at non-default interface font scales.
  • Long sidebar titles no longer create unwanted horizontal scrolling.
  • Sidebar filter visibility, settings-footer visibility, section decorations, and subgroup ordering now stay in sync across workspace windows without reverting newer project changes.
  • Failures while writing diagnostic output, including closed or broken standard streams, no longer panic Solo or poison process locks.
  • On macOS, a failed native Save dialog now returns cancellation instead of crashing when AppKit cannot create the panel.
  • Retrying an app update no longer lets progress or errors from an earlier attempt overwrite the current attempt's status.
  • On macOS, Solo no longer slows down when it is in the background behind other windows. App Nap previously throttled Solo's terminal, MCP, and app threads while hosted agents kept running at full speed; idle system sleep is still allowed.
  • Linux startup no longer intermittently exits while setting up the workspace window.
  • The notification toast stack no longer stays expanded after the pointer leaves when toasts arrive or slide away under a resting pointer.
  • Solo no longer freezes when you move, resize, leave, or close a workspace window, switch, close, move, or pop out a workspace, click a notification toast, or quit while another window is opening or coming to the front, such as after clicking a notification.
Security
  • Updated rustls to 0.23.46, which fixes RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348, and RUSTSEC-2026-0349.

Released on September 3, 2026

Fixed
UI & Platform
  • Closing Solo's last workspace window on macOS no longer leaves the app running without a way to reopen it. Activating Solo again from the Dock, Spotlight, Command-Tab, or another launcher restores the most recently active workspace window.

Released on August 27, 2026

TL;DR
  • Workspaces are the headline: organize projects into named spaces, open them in separate windows, move projects between them, restore each window’s layout, and manage them through Solo or integrations.
  • The command palette is now the fastest way around Solo, with scoped search for destinations, actions, agents, terminals, and prompt templates.
  • Agents got first-class Antigravity support, safer Antigravity and OpenCode setup, context pins, timer actions, and much more reliable resume and session handling.
  • Scratchpads and Todos now support images, better links and headings, faster search, safer Markdown round-tripping, and autosave that will not drop checkbox changes.
  • Terminals feel faster and hold up better under real work: lower input latency, more efficient rendering, reliable selection inside mouse-aware TUIs, automatic reconnects, better scrollback, and clickable file paths.
  • Solo starts faster, uses much less CPU while idle or hidden, and is far harder to wedge during process cleanup, shutdown, multi-window routing, or resource exhaustion.
Added
Agents
  • Antigravity is now a first-party agent provider, with installation and MCP health checks, activity detection, saved-session capture, and exact conversation resume support.
  • Antigravity and OpenCode can now be connected to Solo directly from Settings. Solo safely updates their JSON or JSONC configuration while preserving comments and formatting, and refuses ambiguous, malformed, or concurrently changed files instead of risking data loss.
  • Agent terminals now show configurable context pins for Todo locks, saved-session details and resume actions, and Solo MCP setup health. Each pin opens its relevant details or action, and individual pin families can be hidden from Settings → Terminal.
  • A selected running agent can now be given a delayed prompt with the command palette's "Set timer" action. The nearest active timer can also be fired immediately or paused from the same process actions.
Workspaces
  • Projects can now be organized into named workspaces, each with a color and an icon (initials or a custom image). Existing projects move into a Default Workspace automatically on upgrade. A vertical workspace rail next to the sidebar switches between them, and the sidebar, command palette results, and project-add actions scope to the current workspace. In the command palette, a scope pill next to the search input shows whether results cover the current workspace or all workspaces — Tab or clicking the pill toggles it. Quick jump matches project paths and routes project selections to the window that owns their workspace.
  • Workspace rail icons show unread process-notification badges (capped at 99+), including for workspaces open in other windows.
  • Workspaces can be opened in separate windows: drag a workspace off the rail or use "Move to new window". Each workspace view is owned by exactly one window, and a window that loses its last workspace closes itself.
  • Workspace windows remember their position, size, maximized state, and display. Reopening a workspace restores that layout when the display is still available and safely falls back to visible OS placement when it is not.
  • Settings → Workspaces manages creating, renaming, reordering, and deleting workspaces plus their icons and colors; deleting a workspace asks where to move its projects.
  • Projects move between workspaces from the sidebar context menu's native "Move to workspace" submenu. "New workspace…" asks only for a name before completing the move, and unusually large destination lists fall back to a searchable picker. Copy-on-write linked checkouts always move together as a group and are never split across workspaces.
  • "Switch to workspace 1–9" hotkey commands are available to bind (no default bindings).
  • A new "Hide inactive workspaces" option in Settings → Workspaces collapses every workspace except the current one, including notification badges, into a +N stack that can be revealed temporarily.
  • Ctrl+Tab and Ctrl+Shift+Tab now cycle forward and backward through workspaces open in the current window, following workspace order and wrapping at the ends; both shortcuts are customizable in Settings → Hotkeys.
  • Each workspace remembers its last selected project or process and restores it when you return without overwriting a newer selection made while data is loading.
  • Workspace management is available to integrations through Solo MCP and the local HTTP API: list, create, update, delete, and reorder workspaces; filter or import projects by workspace; and move projects, including linked checkout groups, between workspaces.
Processes
  • "Rename process" is now a customizable command in Settings → Hotkeys. It opens the rename dialog for the selected process and has no default binding.
Command Palette
  • The command palette now brings destinations, global and contextual actions, unread or favorite process focus, new agent and terminal creation, and prompt templates into one searchable interface. Its toolbar exposes All, Go to, Focus, Actions, Context, New, and Templates scopes; each scope can be opened directly with a customizable shortcut, and Actions defaults to Cmd/Ctrl+Shift+K.
  • In the Templates scope, Cmd/Ctrl+N now opens the prompt template management page for the active project, or the global template page when no project is active.
  • A new "Refresh frontend" command reloads Solo's interface without stopping running processes, providing a quick recovery path for a stale or broken webview.
Scratchpads & Todos
  • Markdown images now render in scratchpads, todo notes, and todo comments. Remote images are fetched by the app itself rather than the webview, must actually be image content, are capped at 10 MB, and fall back to an alt-text chip while loading or when they cannot be fetched; data: URIs render directly. Local image files can also be inserted from the editor toolbar or dropped into scratchpads and todo notes, with each image placed at the chosen position.
  • Links in documents now work end to end: clicking a link in a todo comment or other read-only view opens it in the configured default browser instead of navigating the app window, mailto: and tel: links open the system handler, and inside the editor Cmd/Ctrl+click follows a link while a plain click keeps positioning the cursor.
  • The Link toolbar button now opens an in-app dialog with URL validation instead of relying on the browser prompt, which could silently do nothing. Selecting text that already looks like a URL still links it immediately without a prompt.
  • H4–H6 markdown headings now render as headings in both the editor and read-only views instead of as plain paragraphs.
  • Todo actions now include "Copy as Markdown", exporting the current title and note as a complete Markdown document.
  • Scratchpads now remember each document's scroll position while switching between scratchpads.
UI & Platform
  • The Help menu now links directly to Solo's documentation.
Changed
Project Detection
  • Laravel project onboarding now suggests php artisan queue:listen instead of php artisan queue:work for queue workers so local code changes are picked up without manually restarting the queue.
Scratchpads & Todos
  • Scratchpad search in the command palette now queries a bounded, ranked result set from the backend instead of loading every scratchpad, keeping the palette responsive for large libraries while preserving exact ID lookup and recent-first empty searches.
Command Palette
  • Agent-tool searches now prefer exact words and the order of typed terms, producing more relevant results for short queries.
  • Rename now appears ahead of process lifecycle and timer actions for running processes.
Terminal
  • Interactive terminal output — keystroke echo, prompts, spinners, agent status lines — now renders as soon as it arrives instead of waiting out the output batching window, removing up to ~20ms of latency per update. Heavy output floods batch exactly as before.
  • Typing and high-volume output now do less renderer work: cursor-blink resets coalesce to one render per frame, erase-line-heavy repaints avoid duplicate metadata work, and contiguous patch bursts plus verified scroll-window shifts use direct render paths.
  • Terminal find now keeps a bounded set of the 100 most recent matches, marks capped totals with a +, and shows an indexing state instead of allowing navigation through stale results while the query or terminal history changes.
  • Stopped command and agent panes now use clearer names, actions, and keyboard hints. Commands show their exact configured command, including long and multiline commands, while resumable agents make Resume the primary action and keep starting fresh explicit.
UI & Platform
  • Solo starts faster and switches into Scratchpads, Todos, and chats more smoothly by preloading the main app while the backend initializes and warming heavier pane modules before the window appears.
  • Sidebar port detection now pauses for collapsed or hidden rows, batches visible processes into one bounded OS scan, and refreshes correctly when visible scope changes, reducing background work without stale or misassigned ports.
  • Native and project context-menu labels now consistently use sentence case.
Fixed
Agents
  • Claude recap summaries in notifications are emitted again. They had been silently broken since 0.6.5, when the visible-text tracking they read from stopped being populated in production; tracking now enables itself for Claude agents without reintroducing the terminal overhead that the original change removed.
  • Amp agents no longer stay marked as working from terminal repaint noise before their first title heartbeat, and prompt submission is fenced against that heartbeat so it marks them working immediately and later settles back to idle reliably.
  • Working-agent spinners now share a common animation phase, so multiple active agents stay visually synchronized.
  • Agent closes are now all-or-nothing when a descendant fails to stop, keeping the complete tree visible for a safe retry.
  • The Resume action now appears as soon as an agent exits and also captures session IDs printed during Solo-initiated stops or shutdown, instead of arriving seconds later or being missed.
  • Agent session identity updates are now serialized across launch, discovery, stop, and shutdown, so a late update from an older run cannot replace the newer conversation that Resume should open.
  • Starting a stopped agent that has a resumable session now asks whether to resume it, start a fresh session, or cancel.
Scratchpads & Todos
  • Editing a document no longer silently deletes reference-style links ([text][ref] and their [ref]: url definitions) and no longer rewrites raw HTML blocks into backslash-escaped text; both round-trip verbatim now. Images also no longer gain a spurious title copied from their alt text on save.
  • Todo notes now autosave shortly after any change and flush when navigating away. Previously they only saved when the editor lost focus, so ticking a task-list checkbox — which never focuses the editor — could be silently lost.
  • The in-document find bar stays pinned while jumping to matches deep in a long scratchpad, and the selected match remains visible after editor layout settles.
  • Scratchpad changes received during an in-progress save are replayed after the write settles, keeping document, list, tag, and linked-checkout views in sync.
  • Todo updates now refresh every affected dependent Todo consistently across UI, CLI/HTTP API, and MCP, preventing stale blocker/completion state.
  • Read-only Markdown views no longer expose private-use fidelity markers around raw HTML, including raw HTML inside GFM tables; the editor still preserves those constructs verbatim when saving.
Prompt Templates
  • Prompt template lists now refresh after changes from other Solo windows or integrations.
  • Command-palette search now ranks exact, prefix, and substring title matches ahead of templates that match only in their description, body, or scope.
  • Prompt-template placeholder filling now uses one scrolling preview instead of competing nested scroll containers.
Process Lifecycle
  • Closing terminals, deleting commands, and removing projects now use restart-safe cleanup, preventing interrupted deletions from relaunching removed processes or leaving child processes, timers, Todo locks, and MCP session state behind.
  • Multiple Solo instances can no longer adopt the same surviving process during startup reconciliation.
  • Process deletions from another window or an integration now remove every affected pane immediately and move selection to a valid neighbor without overwriting a newer choice made while the deletion was settling.
  • Stop, restart, kill, delete, project close, and app quit now use bounded cleanup tied to the exact process run. A stalled PTY, slow subscriber, reused PID, or unowned adopted process can no longer freeze unrelated processes, hang shutdown, or be targeted as though it were the original run.
  • If the operating system cannot start a terminal output worker during resource exhaustion, the launch now fails cleanly and remains retryable instead of poisoning the shared process lock and preventing other sessions from starting or resuming.
Workspaces
  • Workspace project counts now refresh immediately after projects are added, moved, or deleted.
  • Project-list failures now show a readable fallback message instead of rendering raw error-object text.
  • The workspace rail now groups workspaces by live app-wide ownership — open in this window, open in another window, then inactive — while preserving configured order within each group.
  • Unread notification attention now stays synchronized across windows, including windows opened after a notification arrives; acknowledging it from any clear path updates workspace badges, menus, dock attention, and other windows consistently. Late cleanup from an older notification can no longer dismiss its replacement or rewind the current workspace state.
  • Clicking a notification for a project or process now activates the window that owns its workspace and selects the target, rather than changing another Solo window.
  • Project and process opens, deep links, routine output, Activity Monitor actions, and cross-project moves now route through the window that owns the destination workspace. The source overlay closes after a successful handoff, and starting a background process no longer steals the current selection.
  • Switching to a workspace in another window now preserves the destination process's terminal, agent, or command auto-focus behavior. Native sidebar context menus also restore real terminal keyboard focus after closing, rather than leaving only the focus styling and blinking cursor visible.
Terminal
  • Terminal selection and copy now remain available in mouse-aware TUIs such as Claude Code: holding Shift keeps pointer gestures and right-click menus local, Cmd+A remains a local Select all shortcut under Kitty keyboard reporting, and exited processes clear stale mouse and keyboard modes so stopped panes remain selectable.
  • A terminal already at the bottom no longer stays spuriously paused after an upward trackpad gesture is clamped there; follow-output resumes once the gesture settles, so "Jump to bottom" does not remain visible at the bottom.
  • On macOS, Cmd+backtick and Cmd+Shift+backtick now cycle Solo windows while a terminal is focused instead of being sent to the terminal.
  • The cursor is now drawn from the latest rendered frame; a stabilization heuristic could previously hold it at a stale position briefly after large jumps.
  • Terminal output processing while the window is hidden now coalesces to about once per second instead of ticking ~60 times per second per streaming terminal, and catches up instantly when the window becomes visible again. Hidden-window renderer CPU under heavy output drops roughly 4x.
  • Running terminals now recover automatically from stale attach or scrollback generations after switching away, resizing, or detached synchronized output. Solo shows a reconnecting state and offers Retry if recovery cannot complete instead of leaving a blank or frozen pane.
  • Terminals now keep their latest size while reconnecting or moving between views, preventing timing issues that could leave a newly displayed pane stale or mis-sized.
  • Terminal input failures now identify when part of an operation was already delivered and retrying is unsafe, so integrations do not duplicate text or Enter presses that already reached the process.
  • Terminal input and protocol replies are now fenced to the exact process run and use bounded delivery on macOS, Linux, and Windows. A stalled or exiting PTY can no longer freeze input, leak queued keystrokes into a restarted process, block terminal query replies, or hang process cleanup.
  • Terminal autowrap remains correct when OSC title sequences and multibyte UTF-8 text arrive across output-chunk boundaries.
  • File and directory paths printed in terminal output now underline reliably when modifier-hovered, including bare names and path:line:column references. Files open in the configured editor, directories open in the system file browser, and Cmd+Shift-click reveals either in Finder; when no editor is configured, the toast points to both Settings and the Finder shortcut.
  • Text under a block cursor now stays aligned with neighboring terminal text instead of shifting out of place.
  • Scrolling up during repaint-heavy TUI output now keeps the entire visible viewport stable until a deliberate return to the bottom; repaint-only updates no longer tear the lower half of the screen, and trackpad rebound no longer resumes follow-output accidentally.
  • Loading older scrollback across a history gap now preserves the history that is already present and keeps a paused viewport anchored instead of discarding rows or jumping while the gap is hydrated.
  • Clearing scrollback after wrapped output now preserves the live cursor-row metadata correctly, preventing stale hidden cells from making the remaining blank or prompt row render incorrectly.
MCP
  • The "Solo MCP is disabled" error returned to agents now points at the correct place to re-enable it (Settings → MCP).
  • MCP now restarts cleanly during rapid stop/start or app shutdown: Solo waits for the old listener or socket generation to retire before starting its replacement, so stale cleanup cannot remove the new connection.
  • MCP clients that require the legacy capability handshake no longer hang while connecting to Solo.
  • Idle-any timers now return already_satisfied without creating a pending timer when any watched process is already idle. Idle-any and idle-all responses both tell agents to inspect current state and output, then reschedule if more waiting is needed.
UI & Platform
  • Clicking a mouse side button (back/forward) no longer raises an internal error when no element is under the pointer.
  • Feedback can now be submitted with Ctrl+Enter on Windows and Linux, and the dialog shows the correct platform-specific shortcut.
  • Keyboard navigation into a project's command-palette actions now drills in synchronously, and routed palette or agent-launch actions close their source overlays once the destination window accepts them.
  • A malformed Sentry DSN no longer crashes Solo during startup; monitoring is disabled for the invalid configuration and startup continues.
  • Terminal-pane focus bars now remeasure after the sidebar is resized, keeping them aligned in workspace windows that have been moved or resized.
  • Copying a project path, revealing a project icon, opening notification settings, and previewing the bell sound now report OS or clipboard failures instead of claiming success or failing silently.
  • Working-agent spinners no longer animate on WebKit's main thread; sustained renderer CPU with five working agents drops from ~12–16% to under 1%, which noticeably helps energy use. The spinner now uses a geometry-stable opacity chase, fixing a subtle wobble where the arc appeared to orbit the ring at certain sidebar positions and font scales. With reduced motion enabled, it stays static while retaining a visible gap so working and idle remain distinguishable.
  • The sidebar no longer re-renders every second while idle agents are connected over MCP: process stats now propagate only when CPU or memory moves meaningfully (≥0.5% / ≥2MB), cutting quiet renderer CPU with several idle agents attached from ~7% to ~2%.
  • Live CPU and memory updates are isolated to fixed-width stat slots instead of re-rendering the project tree, and MCP/Raycast status polling slows to five seconds and pauses while the window is hidden.
  • Hovering a sidebar row no longer shifts its contents: the quick actions (start/stop/restart, open port) now overlay the port/CPU/memory text instead of reflowing the row, and the favorite star joins the hover action group instead of sitting where the overlay could cover it.
  • Sidebar status dots and agent indicators are sized to whole device pixels and scale with the interface font size, fixing soft, blurry, or slightly misaligned rendering at common sizes.
  • Cmd/Ctrl+W now closes Settings from any section, and reopening Settings preserves the section you last used instead of resetting to Appearance.

Released on June 21, 2026

Added
Agents
  • Agent rows now offer one-click Connect Solo for supported agent CLIs, including Claude Code, Codex, Gemini, Amp, Copilot, and Kimi.
  • Connect Solo now works per runtime environment, including Windows hosts and WSL distros, and automatically repairs stale solo MCP server entries by removing and re-adding them.
  • Agent tools settings now show a Runtime Doctor summary for launchable agent runtime targets, plus a prompt to connect Solo for launchable agents that are not connected yet.
  • The MCP server setup row now shows how many installed agent CLIs are actually connected to Solo, making it clearer that enabling the server alone does not connect agents.
  • Agent rows now show "Checking Solo connection..." while the first connection check is running, so an empty Solo column is not mistaken for an unsupported agent.
Windows and WSL
  • Projects can now store per-environment root mappings for WSL execution profiles. When a Windows project path cannot be used directly inside WSL, Solo prompts for the matching WSL path, saves it per project and distro, and uses it for agent and process launches.
  • MCP setup snippets are generated per environment, including the Windows host and each WSL distro, with quoting that pastes correctly into PowerShell and cmd.exe.
  • Full-path MCP setup commands on Windows now use PowerShell's & call operator so paths with spaces launch correctly.
  • Bundled terminal compatibility profiles now resolve correctly from WSL ncurses terminfo lookups and explicitly advertise OSC 52 clipboard support.
Processes
Changed
Agents
  • Solo connection badges now report uncertainty more accurately. If a check fails, the row shows "Solo check failed" with the reason in a tooltip instead of claiming the agent is disconnected.
  • Connect Solo buttons now wait for connection health to load before appearing.
  • Agent installation probes and MCP connection checks now run in parallel with bounded timeouts, so one slow shell, CLI, or WSL distro no longer stalls the whole health refresh.
  • MCP status polling is passive: connection checks no longer boot stopped WSL distros, and Docker Desktop, Rancher, and Podman service distros are excluded from agent detection.
  • The Add/Edit agent tool dialog is wider, giving command and argument fields more room.
  • Unchecked agents now remain visible in launch palettes and the Runtime Doctor until a probe has actually found their CLI missing or broken. Newly added tools and WSL environments no longer look empty before the first health refresh.
Terminal
  • Terminal frame reuse across resizes is more conservative, with stale dirty-row patches validated before backend fast paths are used.
  • Hidden Solo windows no longer repaint unchanged zero-op terminal frame updates after stale patch misses, reducing WebKit CPU use while preserving the latest frame for presentation when the window becomes visible again.
Fixed
Agents and MCP
  • Agent commands with arguments, such as npx codex, now work consistently across health checks, Connect Solo, and setup snippets.
  • Missing agent CLIs are detected more reliably on non-English Windows systems by using PowerShell marker scripts and cmd.exe exit codes instead of localized error text.
  • Transient probe timeouts no longer mark an agent installation as Broken or hide it from launch menus. Health is left unverified until the next refresh.
  • Refresh Health now also updates the Runtime Doctor summary.
  • Adding, editing, or removing agent tools now refreshes Solo connection status instead of leaving it stale.
  • Connecting Solo to one agent no longer clears the in-progress state of another agent's connection.
  • A just-connected agent row keeps its "Solo connected" badge if the confirming health check transiently fails.
  • Headless agent summary generation no longer adds empty Claude Code sessions to history on each summary refresh.
  • Agents connected to Solo's MCP server no longer permanently lose their connection when Solo restarts, updates, crashes, or the local connection drops. The MCP helper now reconnects automatically and resumes its session.
  • Requests sent while Solo is unreachable are queued and delivered after reconnect. Only a call in flight at the exact moment of the drop may still time out and need a retry.
  • A malformed or unparseable MCP message no longer tears down an agent's entire connection; the server now returns a parse error and keeps the session alive.
  • Expired MCP identity aliases are cleaned up so old aliases do not linger.
Windows and WSL
  • Execution profiles using cmd.exe no longer corrupt arguments containing spaces or quotes when running agent probes, summarizer commands, or MCP setup.
  • Agent and MCP commands in WSL now execute through wsl.exe --exec sh -lc, so the distro's default shell cannot expand or mangle arguments, and bash-less distros like Alpine work.
  • PowerShell profile detection now checks OneDrive-redirected Documents folders, including OneDrive for Business, so profile PATH edits are honored when probing agent CLIs. See shell environment loading for more on how Solo finds tools.
  • Setup and health-check commands that produce a lot of output no longer hang and get misreported as timeouts.
  • Commands and agents launch in their configured working_dir again instead of the project root, fixing the execution-profile launch regression introduced in 0.8.2.
  • WSL project working directories now resolve inside the distro without host-side canonicalization, so working_dir works for projects on WSL paths.
  • WSL project roots are no longer canonicalized on the host before launch.
Terminal
  • Terminal history no longer drops output committed during synchronized-output bursts.
  • Refetchable omitted scrollback ranges are preserved, and attach replay no longer renders overlapping scrollback rows twice.
  • Clearing the terminal after scrollback has already been trimmed now preserves the visible viewport correctly.
  • Returning from a full-screen TUI view, such as Claude Code's subagent picker, no longer leaves the pane mostly blank with the prompt stuck at the top.
  • Terminal viewport recovery now releases once the screen stabilizes or goes quiet, instead of latching until you switch processes.
  • The terminal pane can no longer be displaced or blanked by macOS IME caret-reveal scrolling an outer layout wrapper.
  • Terminal layout wrappers can no longer become scroll containers, and a guard resets and reports ancestor scroll if one slips through.
  • The hidden IME input is clamped inside the terminal surface.
  • Terminal sizes no longer get stuck after a failed or skipped resize, which could leave TUIs laying out for a taller screen than the visible pane.
  • Same-size terminal re-measurements now retry until the size is confirmed applied.
  • Terminal cursor presentation is more stable.
  • Prompt template insertion now handles multiline paste correctly.
  • Terminal scrollback parity regressions were fixed.
  • Terminal review regressions from the rendering fixes were corrected.
Process Lifecycle
  • Stopping or killing a process can no longer signal an unrelated process that recycled a PID or process group from the stopped process's tree.
  • Tree kills now verify every target's identity against fresh process-table snapshots before sending any signal.
Processes and Sidebar
  • Favorite toggles now stay in sync for running processes during live status refreshes.
  • Favorite navigation shortcuts no longer fall through to the active terminal when there is no favorite process to jump to.
  • Ctrl-clicking a sidebar command on macOS now opens the context menu without also starting a drag reorder.
  • Sidebar execution profile badges show friendly profile names and an Unavailable warning again instead of raw profile IDs.
  • Inherited default profiles no longer add badge noise to every project.
  • The noisy project header shell badge has been removed.

Released on June 5, 2026

Solo v0.8.2 User Changelog

Released on June 5, 2026

TL;DR

  • Agent workflows are more capable and more predictable: stopped agents are easier to resume, and agent selection now follows each project's execution environment.
  • Prompt templates are now a full feature, with creation, editing, search, duplication, project/global organization, command palette reuse, placeholder fill-in, and optional MCP access.
  • Windows and WSL support took a major step forward with project-level execution profiles, environment-specific agent installs, better shortcuts, cleaner paths, and fewer helper-window interruptions.
  • Scratchpads and Todos are easier to search, edit, copy, widen, complete, archive, and manage through the UI, command palette, CLI, HTTP API, and MCP.
  • Terminal sessions are more reliable across shell profiles, keyboard input, paste and clipboard behavior, link handling, live following, renames, process switches, scrollback, hidden-window updates, and Windows cursor rendering.
  • Solo's local automation surfaces are broader and more consistent: the HTTP API, solo CLI, and MCP tools now cover more process, project, Todo, Scratchpad, agent, and prompt-template workflows.

Agents

  • Agent settings now include an execution shell picker so agents can use a different shell profile than terminals.
  • Projects can now use project-level execution profiles, including Windows and WSL environments, so agents launch in the right environment for the project.
  • Agent tools now track separate installations per environment, so Windows and WSL installs of the same agent appear as distinct runnable options.
  • Agent launches now use the current project's agent installation instead of a single global agent shell setting.
  • Agent Tools settings now use a more compact list with clearer agent type labels, installation status, and an inline Add agent row.
  • Supported agent tools now show whether Solo's MCP setup is installed, and Refresh health checks both CLI and MCP setup on demand.
  • Agent settings now show clearer health and repair guidance when an agent is missing, disabled, broken, or only installed in another environment.
  • Local agent health checks now honor the user's login shell, so aliases and functions, including fish aliases, are detected correctly.
  • Stopped agents with a saved session now show Resume last session directly under Start in the empty terminal view.
  • Agent creation and sidebar refreshes now keep working while the machine is offline, so local Solo actions no longer wait for Wi-Fi to reconnect.
  • Agent status indicators now update more smoothly when an agent sends several state changes at once.

Prompt Templates

  • Prompt templates can now be created, edited, searched, filtered, sorted, duplicated, moved between global and project scopes, deleted, and reused from a dedicated prompt template view.
  • Prompt templates can now be inserted, sent, or copied from the command palette.
  • Prompt templates with placeholders now let you fill values before the final prompt is applied.
  • Prompt templates now appear as jump destinations for global and project scopes.
  • Copying prompt templates from the command palette now uses Solo's native clipboard path, fixing macOS cases where Cmd+C showed "Failed to copy prompt."
  • Optional prompt template MCP tools can now be enabled from Settings to list, read, create, update, delete, and export saved prompt templates.

Windows, WSL, And Linked Checkouts

  • Projects can now use execution profiles for Windows shell and WSL environments, so terminals, commands, and agents start in the environment selected for that project.
  • Windows and WSL agent installs are now tracked separately, making it clearer which agents are runnable in each environment.
  • Windows project paths are now stored and launched in a cleaner form, preventing cmd.exe and WSL-backed agents from starting in the wrong folder.
  • Windows global shortcuts for Add project and Check for updates now work when the sidebar is focused.
  • Windows no longer flashes helper console windows when Solo checks for tools, starts background commands, runs summarizers, or cleans up processes.
  • Windows update checks can now validate Windows builds correctly.
  • Terminal cursor rendering on Windows now stays in the correct row during rapid output.
  • Linked checkouts now share project-scoped Todos, Scratchpads, and prompt templates with their primary checkout while keeping navigation anchored to the checkout you selected.
  • MCP, CLI, local HTTP API, and routine integrations now see one consistent project data set when working with linked checkouts.

Scratchpads And Todos

  • Scratchpad and Todo markdown editors now include a toolbar control for expanding the document area to the full detail width.
  • Cmd+Shift+W now completes the selected Todo or archives the selected Scratchpad, then navigates back.
  • Scratchpad and Todo index pages now use Cmd+F or Ctrl+F to focus the filter for the page you are viewing.
  • Scratchpad and Todo index filters now split whitespace-separated search terms and require every term to match, so searches like turn agent find entries such as Turn long agent plans into todos.
  • Todo search in the command palette is faster on large Todo lists.
  • Todo and Scratchpad search in the command palette now treats numeric-only searches as exact ID lookups.
  • Scratchpad destinations in jump search now sort by most recently updated instead of alphabetically.
  • Markdown ordered-list markers now reserve enough space for wider numbers, preventing list numbers from being clipped in Scratchpads, Todos, and markdown previews.
  • Scratchpad markdown tables now keep their natural width and scroll horizontally instead of being squeezed or clipped.
  • Scratchpad progressive rendering now cancels stale append work when an agent-updated scratchpad changes underneath the reader, preventing older chunks from being appended into the newer document.
  • Saving an unchanged Scratchpad no longer changes its updated time.
  • Todo titles created or updated through MCP, CLI, HTTP API, or the UI now store common HTML entities such as <select> as readable text.
  • Todo filter controls now remain clickable after opening the filter row.

Terminal

  • Commands now inherit Solo's configured default terminal shell, giving command processes the same shell startup behavior as terminal sessions.
  • Terminal settings now use a default execution profile control instead of a plain default shell control.
  • Explicit shell launch actions remain available for one-off launches.
  • Execution profile settings now explain how the selected shell and environment apply to new projects and projects that inherit the default.
  • Local terminals launched through execution profiles now start zsh, bash, and fish as interactive login shells, preserving expected shell startup behavior.
  • Shell profile launches now preserve the selected profile command instead of being replaced by the default terminal shell.
  • The default shell picker now shows the resolved system shell.
  • Auto-summarization and Test summarizer now launch through the configured default terminal shell, so shell aliases and functions can resolve the selected summarizer command.
  • Solo-launched child processes now receive a session-type environment value so shell startup files can distinguish command, terminal, and agent sessions.
  • Pressing Enter on a stopped process in the sidebar now starts it for commands, terminals, agents, and universal agents.
  • Terminal link context menus now include Copy link alongside Open link.
  • Terminal links can now be opened with Cmd-click or Option-click even when TUI apps have terminal mouse reporting enabled.
  • Terminal font size can now be reset through the customizable terminal.resetFontSize hotkey command, which is unbound by default.
  • macOS Option-as-Meta shortcuts now send the intended physical key across both modern and legacy terminal input paths, including dead keys and Ctrl+Option combinations.
  • macOS dead-key accent input now commits composed characters once, preventing accented characters from appearing duplicated or partially duplicated.
  • Rename submits no longer leak Enter key-release input into the active terminal pane.
  • Rename modal close controls now wait for pending Enter key release before closing, even if focus moves away from the input while saving.
  • Agent status and title-only updates no longer cause unnecessary visible terminal repainting.
  • Terminal key-release tracking now resets when switching processes, preventing a release from being delivered to the newly selected process.
  • Terminal panes now paint immediately when switching across cached terminal sessions instead of briefly appearing blank.
  • Terminal panes now keep their live scroll position synchronized when renaming a process, preventing blank or upward-jumping output after a rename.
  • Terminal panes now keep visible scrollback stable across same-process rename and reconnect activity, while marking any recovered history gaps clearly.
  • Terminal panes following live output now keep following correctly after reconnecting to expanded history.
  • Terminal apps that use OSC 52 clipboard copy now copy text to the native clipboard in Solo's terminal renderer.
  • Terminal output now recovers from missed visual updates instead of leaving stale content on screen.
  • Terminal updates while Solo is hidden no longer crash when live output arrives.
  • Pasting text, files, and images on macOS is more reliable and avoids clipboard-related crashes.

Command Palette And Navigation

  • Cmd+E jump results now let you copy links for highlighted projects, processes, Todos, and Scratchpads with Cmd+C.
  • The command palette footer now hints when the selected row can be copied.
  • Todo and Scratchpad command palette search now supports exact numeric ID lookup.
  • Prompt templates now appear as command palette jump destinations.
  • Process selection now keeps the right project context when returning from Settings, closing Activity Monitor, using navigation history, or opening a process before project data has finished loading.
  • Closing or deleting a process now moves focus to the next sensible sidebar item consistently across hotkeys, native menus, and context menus.

HTTP API, CLI, And MCP

  • Solo's local HTTP API now lists the endpoints integrations can call, including supported routes, request fields, query options, examples, and error details.
  • The local HTTP API and solo CLI can now read recent process output, filter process lists by status, delete processes, list configured agent tools, and restore archived scratchpads.
  • The solo CLI now supports richer Todo and Scratchpad workflows, including Todo list filters, Todo delete confirmation, Scratchpad tags, Scratchpad restore, and reading Todo or Scratchpad bodies from files or stdin.
  • Local HTTP API and solo list commands now return the same pagination fields.
  • Project Start all and Restart all actions now separate skipped commands from real failures.
  • API discovery now makes it clear how integrations can spawn agents with the selected project-specific agent installation.
  • Local HTTP API discovery now documents the default prompt-template behavior when deleting a project.
  • MCP tools now have clearer descriptions, cleaner visibility in clients, and more consistent metadata.
  • MCP responses now repeat less follow-up guidance in long-running agent conversations while still keeping durable guidance available to clients.
  • MCP scratchpad tools now guide clients toward direct edits and appends instead of replacing whole documents when a smaller update is enough.
  • Solo MCP now requires explicit confirmation before an MCP session can close its own Solo agent process, preventing accidental self-close behavior.
  • Solo MCP scratchpad listing now exposes the existing keyword search filter to connected clients.
  • Optional prompt template MCP tools can now expose saved prompt templates to connected clients.

Settings And Integrations

  • Agent Tools settings now make installation state and setup health easier to scan.
  • Execution profile settings now clarify which shell and environment will be used for new projects and inherited project defaults.
  • Solo process links now open even when the link uses a longer descriptive label than Solo normally generates.
  • Auto-summarization and the summarizer test flow now run through the configured shell, so aliases and shell functions work as expected..

UI And Platform

  • Sidebar process rows no longer jitter or re-truncate when hover actions, ports, stats, or timer indicators appear.
  • Sidebar focus after closing or deleting a process is now more consistent across hotkeys, menus, and context menus.
  • Windows shortcuts, paths, updater validation, and helper-window behavior are more reliable.
  • macOS clipboard, paste, hidden-window terminal updates, and terminal keyboard input are more reliable.

Released on May 14, 2026

TL;DR
  • More first-class agent support: Copilot CLI and Kimi CLI were added as built-in agent tools, with setup, resume, summarization, and MCP shortcuts.
  • Major local API/CLI expansion: Solo’s local HTTP API and solo CLI now cover app status, processes, projects, todos, and scratchpads.
  • MCP got much more capable: New project tools, scratchpad edit/search/tail tools, spawn_agent, better pagination, better timer delivery, and richer guidance in responses.
  • Project UX improved: Editable project directories, drag folders into the sidebar, favicon-based project icons, better duplicate detection, and immediate sidebar updates from external changes.
  • Scratchpads and Todos got workflow upgrades: Title sorting, creation from context menus, terminal selection to scratchpad, scratchpad search, delete/restore improvements, better focus behavior, and clickable task lists.
  • Terminal reliability and performance improved: Lower CPU/memory churn for busy output, better macOS keyboard behavior, better kitty protocol handling, faster output batching, pane isolation for runaway output, and fixes for blank/stuck panes.
  • Settings and platform polish: Scroll speed controls, Option-as-Meta settings, default browser picker, remembered feedback email, larger UI font scale, better macOS app behavior, and many crash hardening fixes.
Added
Agents
  • Copilot CLI and Kimi CLI are now first-class agent tools with default tool setup, resume actions, native summarization support, and MCP setup shortcuts.
HTTP API & CLI
  • Solo's local HTTP control API now exposes authenticated JSON endpoints for app version/status, process list/get/start/stop/restart/rename/spawn, project list/get/create/rename/delete, project-wide command lifecycle actions, and Todo/Scratchpad read and mutation workflows.
  • The solo CLI now talks to Solo's local HTTP API for app status/version, process commands, project commands, Todo commands, and Scratchpad commands, with human-readable and JSON output modes.
  • Local integrations can now discover Solo's HTTP API capabilities through an authenticated metadata endpoint.
MCP
  • Solo MCP now includes project tools for reading project metadata, importing existing directories, renaming projects, deleting projects with explicit confirmation, and explaining project scope through help topics.
  • Solo MCP spawn_process can now pass per-launch agent arguments without changing the saved agent tool defaults.
  • Solo MCP now exposes a spawn_agent alias for creating agents without passing kind="agent", with catalog, help, and command-surface metadata wired to the existing process spawn behavior.
  • Solo MCP Scratchpad tooling now includes scratchpad_edit, scratchpad_append_section, scratchpad_tail, and scratchpad_find for targeted edits, heading appends, recent-line reads, and search without fetching a full scratchpad.
  • Solo MCP responses now include structured guidance in JSON/text responses and legacy metadata hints for common follow-up workflows such as timers, spawned agents, scratchpad reads, send_input, and session identification.
Projects
  • Project directories can now be edited after project creation from the project overview.
  • Folders can now be dragged from Finder or Explorer onto the sidebar to add them as projects, with an "Add project" drop overlay matching the terminal drop affordance.
  • Project swatch initials can now be saved in solo.yml as icon_initials and sync back into Solo when the config is reloaded.
  • Projects now automatically display common favicon files from the project folder when no explicit solo.yml icon is configured.
Scratchpads & Todos
  • Todo lists can now be sorted by title from A to Z or Z to A, with numeric-aware ordering for plan prefixes such as P1.2 and P1.10.
  • Project and process row Add context menus now include Scratchpad and Todo creation actions.
  • Scratchpad actions now include a native-confirmed delete option that permanently removes the current scratchpad after saving the latest draft.
  • Scratchpad detail views now support Cmd+F/Ctrl+F search with reusable find chrome, Plate-powered highlights, active-match indication, and next/previous navigation that scrolls large scratchpads to the current match.
  • Terminal selections can now be turned into Scratchpads from the terminal context menu, preserving the exact selected text and using the first selected line as the Scratchpad title.
Terminal
  • Hotkey command terminal.clear clears the active terminal pane and scrollback buffer when bound (unbound by default).
Settings & Integrations
  • Terminal settings now include a scroll wheel speed control for TUI apps such as Vim, less, and htop when they capture terminal scroll input.
  • Terminal settings now let macOS users choose whether the left Option key, right Option key, both, or neither act as the terminal Meta key.
  • Tool settings now include a default browser picker used when opening detected local service URLs from the process sidebar.
  • Feedback can now remember an optional email address for future submissions when the user opts in.
Misc
  • Demo projects now include a Workflow orchestration scratchpad that shows MCP, todos, scratchpads, timers, and worker-agent coordination patterns.
Changed
Agents
  • Cmd+T now boosts the currently focused agent runtime in the new-agent picker while keeping the other enabled agents available.
  • Agent session resume actions now distinguish direct last-session resumes from opening the session picker.
HTTP API & CLI
  • HTTP and CLI project create/delete flows now share Solo's canonical import and deletion behavior, returning existing projects for duplicate paths and requiring explicit confirmation before stopping running processes during project deletion.
MCP
  • MCP scratchpad and todo listings now paginate large inventories, improving responsiveness and memory use.
  • Solo MCP send_input responses now include idle wake-up timer guidance for bound agent callers that can receive timer-delivered follow-up turns.
  • Solo MCP timer delivery is now more reliable for agents with multiple sessions and across app restarts.
  • Solo MCP now exposes identify_session as the canonical session identity tool, with backwards-compatible aliases for prior tool names.
Projects
  • Newly added projects now append after existing root projects instead of jumping to the top of the sidebar.
Terminal
  • Terminal output processing now handles styled, SGR-heavy, and CRLF-heavy output with less CPU, history-memory, and live-delta churn during busy terminal sessions.
  • Terminal TUI scroll wheel speed now defaults to 3x and offers 5x and 6x options for users who want faster captured scrolling.
Todos
  • Completing a todo now releases the completing actor's edit lock by default, with an option to preserve the lock when needed.
  • Canonical todo listing now supports explicit sort orders, wired through MCP todo_list and the local HTTP todo list API.
UI & Platform
  • Interface font scale now includes two additional high-end stops, extending the largest application UI size to 154%.
  • macOS now labels Solo's WebKit helper processes in Activity Monitor, including showing the main web renderer as Solo (Renderer) instead of the internal app URL.
Fixed
Agents
  • Copying visually soft-wrapped agent output now preserves soft wraps in the clipboard without applying the heuristic to normal command and terminal output.
  • Terminal and agent input now disables browser autofill on the hidden IME textarea to avoid macOS SMS code suggestions appearing over focused panes.
HTTP API & CLI
  • Processes spawned through the local HTTP API with a custom name now keep that name as the visible process label.
  • HTTP API discovery now lists all available endpoints (including Todo create and complete), and Settings shows the same endpoint list.
  • Raycast process lifecycle endpoints now return more accurate errors and stay in sync with Solo process start notifications.
MCP
  • Timer stopwatch indicators now stay attached to timers owned by or routed to a process, including cross-project idle waits, without moving controls onto the watched target.
  • Idle-triggered MCP timers now fire when a watched process exits or fails instead of waiting for the max wait deadline.
  • MCP timer wake delivery is now more reliable across app restarts and during active typing, ensuring agents are prompted when their timer fires.
  • Solo MCP process start, restart, and status now keep agent command metadata and live tool-type reporting in sync with the running process.
  • Solo MCP todo_update now accepts status changes so agents can move todos between open, in-progress, backlog, and completed states.
  • Solo MCP send_input now caps wait_ms so long waits do not exceed MCP client request timeouts.
  • Solo MCP read-only and export calls no longer register the caller as a bound agent.
  • Solo MCP todo_update now rejects empty update requests instead of accepting no-op mutations.
  • Solo MCP scratchpad_edit now accepts object targets for section and line-range edits.
  • Solo MCP help no longer surfaces KV tool guidance when KV tools are disabled.
  • Solo MCP agent bootstrap guidance no longer recommends KV coordination tools when KV tools are disabled.
Process Lifecycle
  • Stopping, restarting, or deleting processes (including via solo.yml or project removal) now reliably releases todo locks, clears pending summaries, and cleans up stale process state.
  • Batch process lifecycle actions now report partial failures instead of hiding skipped or failed commands, and bulk command start/restart paths use the same lifecycle handling as individual process actions.
  • Failed command starts now surface backend diagnostics in lifecycle toasts while preserving the failed process pane and terminal failure banner.
  • Pressing R or choosing Restart on a stopped command now starts it, matching the visible command actions.
  • Process lifecycle APIs now return consistent not-found, permission, validation, and internal error responses, and stopping an already-stopped process through HTTP or CLI succeeds as an idempotent no-op.
Projects
  • Adding a project now correctly recognizes duplicates when the same folder is added under different path forms such as symlinks or relative paths.
  • Project-type detection now skips oversized and symlinked marker files so adding a project does not block on unexpectedly large or redirected config files.
  • Sidebar project drop targets now only appear for dragged folders, so dragging files over process rows can activate the terminal without advertising "Add project."
  • External project create, rename, and delete flows through MCP, HTTP, and the CLI now emit canonical project-list change events so the sidebar updates immediately.
Scratchpads & Todos
  • Creating a Todo or Scratchpad from sidebar/UI buttons now focuses the new item's title just like command palette creation.
  • Creating a Todo or Scratchpad from the command palette now focuses the new item's title, and pressing Tab from the title moves into the Markdown editor.
  • Todo title sorting now uses the canonical global title order instead of separately sorting within sidebar/status groupings.
  • Markdown serialization now avoids WebKit-incompatible GFM autolink regexes while preserving GFM footnotes, tables, strikethrough, and task lists.
  • Scratchpad and Todo markdown task lists now render as clickable checkboxes while numbered lists stay numbered.
  • Archived scratchpads can now be restored from the scratchpad status control and archived scratchpad context menus.
  • Todo detail query failures now show the backend error with a retry action instead of being reported as "Todo not found."
Settings & Integrations
  • Summarizer test results now render in an inline panel below the Test button, surfacing the full tool output for debugging instead of a truncated toast.
  • Check for updates now shows clear feedback from the app menu and Account settings when Solo is already up to date or the update check fails.
  • Saved MCP, Raycast API, and terminal compatibility settings are now honored consistently during startup and transport restarts.
Terminal
  • Triple-click terminal selection now selects only the clicked visual row instead of including wrapped continuation rows.
  • Neovim Shift+printable keys (and similar modified printables) now produce the shifted character when the kitty keyboard protocol is active, instead of inserting the bare keycode.
  • OpenCode now receives numpad digits and Enter as normal text in kitty keyboard mode, matching Ghostty's behavior.
  • Terminal focus borders now remeasure after native window resize tools such as Moom settle the app layout, avoiding stale lines across panes.
  • Terminal follow mode now clears stale Jump to bottom indicators when an optimistic pause settles back at the live bottom.
  • Detected local service URLs now preserve HTTPS and custom local hostnames from process output when they match a bound port.
  • Stopped terminal and agent panes without cached output now show a clear in-pane Start prompt instead of looking like a blank terminal.
  • macOS blank terminals now handle Option+Backspace, Command+Backspace, Option+Left/Right, and Command+Left/Right like standard shell word and line editing shortcuts.
  • macOS kitty-enabled agent terminals now treat Command+Backspace and Command+Delete as shell line-kill shortcuts instead of passing Super-modified delete keys through to the agent.
  • macOS international keyboard layouts now type Option-generated characters such as @ and | in kitty-enabled agent terminals when "Use Option as Meta key" is off, without leaking unmatched kitty key-release events.
  • Chinese IME composition commits now type correctly in terminal and agent panes, including WebKit event orderings where the committed text arrives before compositionend.
  • Terminal panes now recover automatically from internal errors instead of becoming stuck.
  • Terminal image drops now copy supported image files into Solo's durable temp image directory before sending their paths to agents, and terminal file:// links now open only for local paths.
  • Terminal output batching now uses the lower-latency 16ms flush window again, reducing visible typing delay in interactive terminal apps.
  • A pane producing runaway output is now isolated so it no longer blanks or destabilizes other terminal panes.
  • Solo's sudo and ssh compatibility wrappers no longer recursively invoke themselves when Solo's wrapper directory is first in PATH.
UI & Platform
  • Sidebar selection and focus indicators now remeasure after sidebar width, font scale, DOM, and viewport changes so focus borders stay aligned after resizing.
  • Sidebar process rows now start drag-reordering on the first click-and-hold when the terminal is focused, without stealing terminal focus during the drag.
  • macOS native file and folder pickers now treat rare nil NSOpenPanel creation as dialog cancellation instead of crashing Solo.
  • macOS file and folder drag/drop now keeps native path delivery enabled while tolerating malformed pasteboard payloads that previously crashed the WebKit drag/drop bridge.
  • The license title bar now handles malformed or partially missing license status payloads without crashing.
  • Closing Solo's main window with the macOS red close button now hides the app instead of quitting, while explicit Quit still exits through the running-process confirmation flow.
  • Pressing Cmd+H on macOS now hides Solo like a standard Mac app; on Windows and Linux, Ctrl+H minimizes the window.
  • Pressing Cmd+W in Settings now goes back through navigation history instead of falling through to the native window close action.
  • Fixed a render loop that could occur during hidden-window terminal updates.
  • Hardened a number of edge cases reported through crash diagnostics, including window lifecycle, PTY cleanup, WebGL initialization, terminal input after process switches, and Markdown rendering.
Misc
  • Timer pause, resume, cancel, and fire-now failures now surface the backend error message in the toast body instead of a generic "Failed to update timer."
  • Quick jump now matches nested recent targets, so searches like paper can surface Scratchpads such as 0.7.0 Papercuts.

Released on May 1, 2026

Added
  • Dev settings now include a React error trigger for validating the global error recovery screen
  • Finder's folder Services menu now includes "Open in Solo" on macOS, opening the selected folder as a Solo project.
  • Added a terminal history-delta transport benchmark for comparing current JSON-shaped live history deltas against MessagePack before broader conversion work
  • Linked checkout schema foundation for sharing project-scoped data from worktrees, copy-on-write checkouts, and full-clone checkouts
  • Solo MCP scratchpad_list now supports offset and limit with pagination metadata for large scratchpad inventories
  • Solo MCP todo_list and todo_comment_list now support offset and limit with pagination metadata for large todo and comment inventories
  • Todos now support selecting multiple rows from the list and applying batch status or tag changes through one backend update
Changed
  • Claude auto-summarization now defaults to Sonnet with --effort low instead of Haiku, producing higher-quality summaries while keeping reasoning cost and latency in check
  • Terminal attach, snapshot, history fetch, live frame patches, and PTY input writes now use binary MessagePack transport paths to avoid JSON-heavy terminal payload materialization
  • Terminal history streaming now packs plain ASCII rows, shares larger append payloads, and avoids redundant viewport layout reads to reduce CPU churn under heavy agent output
  • Locked todos in terminal panes now appear as compact lock-pill shortcuts that open the todo detail view when clicked
  • Timer indicators now use a lightweight list query that avoids parsing timer metadata JSON and returns compact due-time data
  • Solo MCP scratchpad reads without an explicit mode now return a heading outline for very large scratchpads, with hints for requesting full content, sections, or line slices
  • Solo MCP help now includes a docs/how-to topic that routes product questions to Solo docs, hosted Markdown docs APIs, public API surfaces, and local MCP tools
Fixed
  • Frontend render errors now show a recovery screen, report through Sentry when configured, and offer a frontend refresh instead of leaving the app blank
  • Pressing Cmd+W on project, Todo, and Scratchpad views now goes back through navigation history instead of falling through to the native window close action
  • Scratchpad and Todo title rails now use the project's display name instead of the underlying folder name
  • Codex permission prompt title animations no longer keep OSC title stability-based idle detection stuck in the working state
  • Codex and Amp agents now use OSC title activity signals, including repeated spinner-only title updates that sanitize to the same display title, so active runs do not get marked idle while stable terminal noise does not keep them working
  • Amp automatic titles now hide the CLI's amp - prefix before showing agent names and summaries
  • Claude Code MCP setup now passes --transport stdio explicitly when adding Solo's local MCP server.
  • Closing an agent with MCP-spawned subagents now asks whether to close those subagents too, rechecks for newly spawned subagents after the first confirmation, and avoids resurrecting successfully deleted agents when a subagent close fails
  • Dragging multiple image files into a terminal now keeps those paths on Solo's bracketed-paste path and suppresses the browser fallback that could insert raw paths
  • MCP-spawned subagents no longer run hidden backend auto-summarization jobs
  • Renaming a running process now keeps the selected terminal process cached by id while project data refreshes, avoiding transient blank terminal panes
  • Solo MCP now treats the configured agent tool type as authoritative for start, restart, and spawn, including keeping Generic tools generic even when their command name matches a first-party CLI
  • solo.yml commands now allow absolute working_dir values that resolve inside the project root while still rejecting parent traversal and symlink escapes
  • Timers with malformed optional metadata no longer disappear from timer lists or block manual fire, due fire, near-due scans, or idle-trigger scans
  • Terminal symbol glyphs such as arrows, bullets, black circles, and checkmarks now use the bundled fallback font and crisp fallback rendering path instead of fuzzy atlas or system fallback rendering
  • Terminal mouse wheel input in TUIs now coalesces high-resolution wheel deltas before emitting terminal wheel or alternate-scroll events, making scroll speed less aggressive

Released on April 27, 2026

Added
  • Agents settings now include an app-level Automatic renaming toggle that overrides per-agent automatic renaming when disabled
  • Agents spawned from another agent now appear nested under their parent in the sidebar instead of flattening into the main agent list
  • Command and jump palettes now recognize solo:// deep links and offer a Go destination row
  • Process rows can now be double-clicked to start stopped commands, terminals, and agents
  • Project header context menus now include Go to Todos and Go to Scratchpads shortcuts
  • Stopped agents with a stored CLI session now show a Resume prior session shortcut in the terminal pane
  • Scratchpad actions now include Copy as Markdown and Save as... for exporting the current draft as a complete Markdown document
  • Terminal settings now include a Copy on select option that copies selected terminal text automatically, shows a brief confirmation toast, and trims trailing terminal padding from copied lines
  • Todos now support an In progress status across the detail pane, list filters, grouping, context menus, sidebar previews, and MCP status filters
  • Solo MCP resources now expose scratchpad and todo deep links through resources/read, resources/list, and resource templates so clients can read solo://proj/... links directly
Changed
  • Solo MCP scratchpad_append can now omit expected_revision, while callers that pass one still get revision-guarded appends.
  • Scratchpad and Todo index pages now include bottom overscroll padding so the final rows can scroll higher into view.
  • Todo index status filtering now supports selecting multiple statuses and defaults to in-progress, open, and backlog todos, hiding completed todos until selected.
Fixed
  • Agent rename actions now treat submitting the underlying process name while an automatic title is visible as a request to restore that name and disable future automatic renames, avoiding duplicate-name conflicts for agents like Codex
  • Explicit command palette scopes now keep tokens after > inside the matched project instead of matching the project scope again
  • Jump palette search ties now prefer shorter visible target labels, so direct destinations rank ahead of longer search actions when scores are equal
  • Blank or comment-only solo.yml files created outside Solo can now sync successfully instead of failing as invalid config
  • Long installed font names are now shortened in the Appearance and Terminal font pickers so native dropdowns no longer stretch across the settings pane
  • Opening Appearance settings on macOS no longer crashes when CoreText returns an installed font descriptor without a family name
  • Scratchpad markdown paste now preserves Markdown syntax even when the clipboard also includes HTML, and GFM tables now render as tables in the editor and viewer
  • Scratchpads with very large Markdown documents now render progressively instead of blocking the app while the full editor tree is built
  • Sidebar keyboard navigation now follows the rendered order for nested agents, including child agents grouped under their parent
  • Sidebar nested agent rows now sit closer to their parent row so child status indicators align with the parent title
  • Sidebar project and process unread dots now stay attached to center-truncated titles without forcing short labels to collapse early
  • Sidebar project and process names now reclaim available width after fullscreen or sidebar resize changes instead of staying over-truncated
  • Terminal font measurement now falls back safely when browser font readiness is degraded and remeasures when the font set later settles
  • Terminal font rendering now preserves italic, bold, and tight-spacing overhangs in the GPU atlas while keeping CJK and halfwidth/fullwidth East Asian glyphs on the fallback text path for crisper rendering
  • Terminal panes no longer go blank after process rename or layout changes trigger a resize-reflow history rebuild
  • Terminal selection now keeps fallback-rendered glyphs readable on light selection backgrounds, including CJK, emoji, symbols, and Powerline characters
  • Terminal copy on select now ignores whitespace-only selections so accidental tiny drags do not replace the clipboard
  • Terminal scroll position now stays stable when you scroll upward while new output is appended, avoiding jumpy viewport corrections
  • Terminal Cmd+V now recovers after right-click interactions that leave some terminal-hosted CLIs without a native paste event, so paste keeps working even when the DOM paste never arrives

Released on April 23, 2026

Added
  • New Scratchpads and Todos cards in MCP settings make it easier to see which tools are available, turn them on or off, and understand when the MCP server is required
  • Account settings now include a link to the Solo Discord community
Changed
  • macOS window controls now use the native title-bar placement, which reduces visual glitches and resize churn on Tahoe
Fixed
  • Terminal focus is more stable during layout changes, reducing cases where the terminal appeared focused but would not accept typing
  • Scrolling busy terminals is more reliable and should no longer trigger blank or white terminal panes
  • Restarted or reconnected terminals no longer restore stale scroll positions from a previous run
  • MCP feature toggles now behave consistently: Scratchpads, Timers, and Todos follow the main MCP server toggle until changed individually, while KV tools remain opt-in
  • Solo now recovers its local MCP transport more reliably when the app-side listener becomes stale or refuses connections
  • Pressing Cmd+F while terminal search is already open now returns focus to the search field, and clicking back into the terminal lets typing go to the terminal as expected

Released on April 22, 2026

Fixed
  • macOS window traffic lights now reapply their custom position after app-driven title changes, reducing misplaced title-bar controls on Tahoe when switching views like Settings
  • Terminal launch size sync now retries a registered measurement provider for a short window when the renderer is not ready yet, reducing stale fallback terminal sizes during startup races

Released on April 22, 2026

Added
  • An Activity monitor view for running commands, terminals, agents, and tracked subprocesses, with project/type/status/ports filters, flat or tree layouts, sortable resource columns, and quick subprocess actions
  • Scratchpads can now be imported from Markdown files from the scratchpad pane and command palette
  • Bundled terminal font options: Geist Mono, JetBrains Mono, MonoLisa, and Input Mono
  • MCP settings now include copyable and runnable setup snippets for Claude Code, Gemini CLI, Amp, OpenCode, Codex CLI, and popular IDE/app configs
  • Account settings now expose bundled font licenses and third-party software notices
Changed
  • The Automation settings tab is now named MCP
  • Geist Mono is now Solo's default terminal font
  • Terminal font diagnostics now warn when a selected font has limited terminal glyph coverage or when the renderer appears to fall back unexpectedly
  • Activity monitor filters, sort order, and layout now persist between launches, and the monitor now shows descendant ports with CPU readings aligned to the sidebar's raw process stats
  • Quick jump in the command palette now reaches settings, activity monitor, section headers, todos, and scratchpads, with drilled search views for todo and scratchpad titles
  • MCP help now includes solo.yml guidance, and Solo's MCP responses return more consistent metadata hints for client integrations
  • Direct command restarts now show a restart toast
Fixed
  • Terminal scrolling, selection, follow mode, copy behavior, cleared-viewport history sync, and keyboard input handling are more reliable in the custom renderer, especially during paused output or after viewport clears
  • Backend-owned terminal scrollback now respects the configured scrollback limit instead of retaining unbounded grid history
  • Terminal autolinks now survive Solo-styled links correctly
  • OpenCode now answers system theme queries correctly and uses better cursor contrast
  • Timer deliveries now soft-snooze while you are actively typing so reminders do not interrupt in-progress input
  • Native app menu accelerator labels stay in sync with current keyboard shortcut remaps

Released on April 20, 2026

What's new

Faster, smoother terminals
  • A new GPU-powered terminal renderer delivers dramatically smoother scrolling and redraws, with full 120fps support on ProMotion and
    high-refresh Macs.
  • Process switching is snappier and more reliable — no more brief flashes of stale content, double-renders, or stuck cursors when bouncing
    between tabs.
  • Codex block cursors stay visible and steady while you type.
Stay on top of what needs you
  • A new attention bell in the title bar lights up when any process needs you, paired with a quick-jump palette that takes you straight to the terminals and agents asking for attention.
  • Unread state is now unified across the sidebar, title bar, and dock badge — dismissing a toast no longer pretends a process has been
    handled.
  • Bell alerts now show as quick toasts, while real "needs attention" state stays put until you actually look at it.
  • Click a terminal notification toast and it now opens the process it's about.
Settings that make sense
  • Font sizes are now real pixel values (10–18px) instead of abstract percentages.
  • Font weight options now reflect what your fonts actually support — unavailable weights are dimmed instead of silently doing nothing.
  • Line height steps now produce visibly different row heights at every setting, no more dead zones.
  • A new macOS option to disable Option as Meta for international keyboard layouts that need Option to type @, |, or #.
  • A new zsh-only setting keeps Solo's terminal compatibility tweaks from leaking into ssh and sudo sessions.
Better project & process control
  • Working directory is now editable in process settings with a native folder picker, and YAML-backed processes sync changes back to
    solo.yml.
  • A new timer countdown overlay in the top-right of the terminal shows pending timers with a live countdown.
  • Duplicate commands across projects from the command-row context menu — one command or all of them, no drag-and-drop required.
  • See active subprocess counts for running processes in the sidebar and terminal footer (with a setting to hide them).
  • Disable automatic OSC-title renaming per process when you want your custom names to stick.
  • Sidebar subgroup collapse state (Agents, Terminals, Commands) now persists per project across relaunches.
  • Add multiple project folders at once from any of the add-project entry points.
  • Re-adding an existing project now tells you it's already added instead of silently doing nothing.
Agents
  • Edit the launch command before starting an agent, and add custom flags for that run — your changes persist across restarts.
  • New sidebar focus settings let you auto-focus running terminals, agents, or commands when opening them.
  • Smoother agent status indicators — no more rapid flicker between idle and active during short pauses.
MCP improvements
  • A unified per-project inbox replaces the noisy list of individual topic channels in the sidebar, with a new fetch_project_inbox MCP
    tool for workers and orchestrators.
  • New MCP tools to send process input, spawn terminals and agents, list available agent tools, rename processes, and close terminals/agents
    directly from connected clients.
  • spawn_process accepts an optional name so you can name a process at creation without a follow-up rename.
  • MCP tools now advertise read-only vs. destructive safety hints, so clients like Codex stop nagging for approval on harmless calls.
  • A new "advertise everything as safe" setting for users who want the absolute minimum number of approval prompts.
  • A new per-project setting to auto-trust added or changed commands — for private repos you fully control.
  • send_input with submit now writes text and Enter as a single atomic operation, no more flaky split sends.
  • MCP-driven input now counts as human input, so auto-summarization kicks in correctly.
Reliability fixes
  • Unfocused terminals no longer show a blinking cursor.
  • Sidebar shortcut hints no longer get stuck after macOS steals key events (like Cmd+Shift+4 screenshots).
  • CPU percentages are now normalized across cores — no more confusing "300%" readouts.
  • Native menu shortcuts stay in sync with your custom keybindings instead of firing the old defaults.
  • Platform-specific shortcuts no longer cross-fire (Ctrl+K stops stealing terminal input on macOS).
  • Hitting your free-tier limit now opens the license modal instead of failing with a generic error.
  • The 125% interface scale option actually works now.
  • macOS traffic lights reposition reliably after window state changes.
  • File drops onto the terminal work correctly on high-DPI displays.
  • solo.yml sync warnings clear themselves when the file returns to its last-synced state.
  • Shift+Enter and other modified keys negotiate more reliably with terminal-hosted AI CLIs.
  • ssh sessions launched through Solo's compatibility wrappers no longer leak Solo's local terminal type to remote hosts.
Smaller polish
  • Sidebar summaries clamp to two lines for consistent row height.
  • Lifecycle action feedback is now consistent across the sidebar, command palette, menus, and process settings.
  • Cmd+T always opens the full new-tab picker, with the most relevant action ordered first.
  • Escape is no longer reserved as a close shortcut, so you can bind it as a hotkey.
  • Add-command modals no longer dismiss on accidental backdrop clicks.
  • Laravel detection no longer preselects php artisan serve when Herd is in play.
  • Renaming a process no longer fires an unnecessary success toast.
  • Quick jump no longer offers your currently selected process as a target.
  • flash-lite is now the default Gemini summarizer model, with faster, cleaner headless boots.
  • Solo now advertises a Ghostty-compatible TERM profile for better compatibility with CLIs that hardcode terminal allowlists

Released on March 13, 2026

This is a smaller polish and stability release focused on summaries, sync feedback, terminal reliability, and a macOS crash fix.

Improved
  • Session summaries are more accurate, especially for terminal apps that redraw the screen or run in fullscreen modes.
  • Summary timing is smarter, so Solo waits for activity to settle before capturing and generating a summary.
  • solo.yml sync feedback is cleaner, with warnings and sidebar notices clearing more reliably after a successful sync.
Fixed
  • Improved terminal startup reliability for fullscreen terminal tools by tightening how Solo manages startup capability checks.
  • Fixed a macOS crash during license initialization without changing existing device IDs or forcing users to reactivate.

v0.5.8

Rolling out to 50%

Released on March 13, 2026

Added
  • Added a dedicated review screen for untrusted commands in the terminal, showing the exact command, working directory, and environment overrides before you approve it.
  • Added Trust all commands actions so you can approve an entire project faster.
Changed
  • Solo now remembers trusted commands across future updates to the same command in the same project, so switching branches or syncing config changes causes fewer repeat trust prompts.
  • Trust history now matches command variants more accurately, so previously approved commands carry over more reliably.
  • The free tier now supports up to 4 projects and 20 processes before a license is required.
  • Terminals, commands, and agents now launch with login and interactive shell state for behavior that more closely matches native terminals.
  • Improved terminal keyboard handling, including better support for modified keys like Shift+Enter.
Fixed
  • Untrusted commands no longer expose start or restart controls before they’ve been reviewed.
  • Fixed shell environment issues so nvm, aliases, shell functions, and login-shell environment loading work more reliably.
  • Fixed Zsh startup issues with UTF-8 and Powerline-style prompts.
  • Terminal sidebar summaries no longer capture hidden input such as passwords typed at prompts.
  • Hardened terminal startup, session reuse, rendering, and process lifecycle behavior for more reliable day-to-day use.

Released on March 3, 2026

Since v0.3.2, Solo has become a much more complete desktop workspace for local development.

  • Organizing work is much easier. You can group commands into collapsible sidebar sections, reorder projects and commands directly with drag and drop, move around faster with improved keyboard navigation, and find what you need more quickly with better search and sticky headers.
  • AI workflows are now built in. Solo can launch coding agents per project, support chat with agents directly in the sidebar, show whether agents are active or idle, and give clearer feedback when you start or manage them.
  • The terminal experience is significantly stronger. Tabs keep their place when you switch, commands are more resilient, crashed work can restart automatically, notifications are smarter, and files or images from Finder can now be dropped or pasted straight into the terminal.
  • Customization has expanded across the app. There are more shortcut controls, richer font and appearance settings, bundled and importable themes, better editor and terminal preferences, and more control over what appears in the sidebar.
  • Getting started and staying up to date is smoother. Solo now includes a guided demo project on first launch, a clearer two-step update flow, support for opening solo.yml files directly from Finder, and better visibility when project configuration changes.
  • Recent releases have mostly focused on polish and reliability. Expect faster switching, smoother rendering, more stable navigation, better day-to-day terminal behavior, and a broad set of fixes that make Solo feel more dependable overall.

Released on February 6, 2026

Various bug fixes.

Released on February 5, 2026

Fixed
  • Blue outline appearing between sidebar items in production builds
  • Terminal output not displaying due to missing CSP permissions for WASM loading

Released on February 5, 2026

Fixed
  • License validation for users upgrading from pre-signed-token versions

Released on February 5, 2026

Added
Changed
  • Improved performance with surgical cache updates to reduce re-renders
  • Refactored terminal output to use centralized OutputStore
Removed
  • Removed process pause functionality
Fixed
  • APP_URL detection now works with Laravel Vite plugin v2+ (handles URLs without protocol)
  • Process restart race condition
  • Filter numeric-only notification bodies