Open source · MIT · Rust + gpui

Every coding agent. One native window.

Give your agents room to work. Bring every project, terminal, chat, git worktree and pull request into one window, and know who needs you next.

Install instructions · v0.38.0

v0.38.0 · macOS, Linux and Windows

Your tools. Already at home.

  • Claude Code
  • Codex
  • OpenCode
  • Pi
  • Oh-My-Pi

Made for parallel work

Less switching.
More shipping.

Change requests from review to merge, a session panel that traces every turn, a code editor, a real terminal and a clear signal when an agent needs you, in one native desktop app.

Sirio's window zooming onto a pull request open on its Files tab, with the merge bar blocked by failing checks and a review thread with a Fix with agent button

From review to merge

Open a GitHub pull request or a GitLab merge request from the right panel and finish it in the window. Comment on diff lines, approve or request changes, re-run failed checks, read a job's log and merge when the bar says ready. Hand a request or a review thread to an agent from one dialog.

Sirio's window zooming onto the session panel of a Claude Code chat, with its Trace card showing one lane for Claude Code and one for each of three subagents on a shared time axis

See inside every turn

The session panel beside a Claude Code chat holds Environment, Context, Connectors, Trace and the branch's change request. Trace draws one lane per agent and subagent on a shared time axis, and it follows background agents until they finish. Click a lane to scroll the transcript to that step.

Sirio's window zooming onto the sidebar's Projects tab, with the orbit project's three worktrees and their terminals and chats

One sidebar, every worktree

Move between projects and branches without losing your place. Each worktree is a card with its own terminals and chats, and every terminal keeps running while you work in another. Type in the search field to narrow the list by branch, project or tab title.

Pi over OpenCode in a split terminal beside a native Claude Code chat, zooming onto Pi's pane

A real terminal, split any way

libghostty-vt drives it, with GPU rendering, true colour and inline images. Split a tab any way you like, and drag a terminal or a chat into the other pane: it keeps running.

Sirio's window zooming onto the sidebar, where a worktree's status dot is amber for an agent waiting on input, and onto the Claude Code chat beside it with a permission request answered

Knows who needs you

See who is running, who has finished and who needs input. Each worktree card shows its most urgent state, and the Sessions tab lists every agent session across your projects, most recent first, so work running elsewhere stays in view.

Sirio's window zooming onto a Claude Code chat's permission request above the composer, with Allow, Always allow and Reject

Chat or terminal, your call

Run an agent in a chat tab, with its context meter, or in a plain terminal. In a chat, questions and plan approvals wait in a panel above the composer, and a file path in the agent's answer is a link that opens the file in the editor. Claude Code speaks its own protocol, so a chat reports what the agent really did.

Sirio's window zooming onto a TypeScript file in the code editor, with a breadcrumb, a minimap, an error marked in the gutter and a red squiggle under it

An editor that keeps up

Markdown renders live while an agent writes it. Sirio draws a README's HTML and Mermaid diagrams in place, and PlantUML diagrams with the plantuml on your PATH. Code opens with git marks in the gutter, find and replace, a breadcrumb and a drawer for Problems and a search across the worktree. Add a language server, which Sirio fetches for most languages, and the same tab answers go to definition and find references.

Scriptable from the inside

Let agents work together. sirioctl is on your PATH in every terminal Sirio opens, so one agent can launch another, send a task, read the result, open a pull request's files and drive the built-in browser.

Sessions that survive

Pick up where you left off. An agent in a terminal keeps running through Quit, a crash or an update, and Sirio reattaches it with its scrollback on the next launch. Sirio also saves layouts, tabs and chat conversations on your machine and restores them, and a Claude Code chat continues its own session. A chat you close waits under Closed, ready to reopen.

Updates that wait

A card in the corner offers each new version and never takes the keyboard while you type. Restart to update installs it and relaunches. While agents are at work, Install without restarting keeps the new version for your next launch, so an update never stops them.

Yours to inspect. Yours to build.

Built in the open.

From the first design decision to the latest commit, everything about Sirio is public: the MIT licence, the Rust code and the specs behind each choice.

MIT licensed

Fork it or embed it under the MIT licence. Sirio's own code ships under it, and each third-party part keeps its own licence.

LICENSE · THIRD_PARTY_NOTICES.md

Rust on gpui

gpui from Zed draws the window, the Zig library libghostty-vt runs the terminal, and bezel supplies the UI components. The shell ships without Electron, and the only webview is the Browser tab.

rust/crates · one cargo workspace

Read every decision

Design specs, implementation plans and the notes for every release sit next to the code in docs/. When a behaviour looks odd, you can read the reasoning that produced it.

docs/superpowers/specs · docs/release-notes

Bring your own agents

Different agents.
Shared workspace.

Use the CLIs you already know and the accounts you already have. Each agent runs its own way, side by side.

A home on your desktop

Native by design.

Sirio feels at home on your operating system. macOS leads, and Linux and Windows follow.

Reference platform

macOS

Apple Silicon, a signed and notarized .dmg, a native menu-bar roster and notifications from Sirio itself once you allow them. Every release starts here.

  • Metal through gpui
  • NSStatusItem menu-bar roster
  • Signed and notarized .dmg
Follows macOS

Linux

One AppImage, x86_64. A StatusNotifierItem tray and desktop notifications.

  • Vulkan through gpui
  • StatusNotifierItem tray
  • AppImage, x86_64
Follows macOS

Windows

A per-user installer, x86_64. Native tray roster, ConPTY-backed terminals.

  • DirectX through gpui
  • ConPTY terminals
  • Per-user Inno Setup installer

A few more things

Good questions.

Everything else before you settle in.

Explore the documentation
Is it open source?

Yes. Sirio is MIT-licensed and developed at https://github.com/ai-sirio/sirio. Issues and pull requests are welcome, and the specs in docs/ explain how each part should work.

Is this another Electron app?

No. Sirio is a Rust application on gpui, the GPU-accelerated UI framework from Zed. The terminal is libghostty-vt. The only webview is the optional Browser tab, a native surface that sits next to your terminal.

Where does my data live?

On your machine. Sirio stores sessions, layouts and settings in a local SQLite database, with no account system and no telemetry. On its own it goes online for the update check, for the list of installable agents, which it caches for a day, and for the usage figures, which it reads with your own provider credentials. The rest happens when you ask: a Markdown preview loads its remote images, the pull request view talks to GitHub or GitLab once you open it, a pull request's diff fetches its commits with git, and a PlantUML server receives a diagram only if you name one in Settings.

Do I need new API keys?

No. In a terminal you start the agent CLIs you already have installed and logged into. A chat runs Claude Code, OpenCode and Oh-My-Pi through their own CLIs, and Settings can install the adapters that Codex and Pi need. Sirio reads Claude Code and Codex usage with the logins those CLIs keep, and OpenCode Go and Ollama Cloud usage with a session cookie you paste in Settings. For pull and merge requests it uses the gh or glab you already signed in with, or a read-only token you paste once.

How do I install it?

Run one command: curl -fsSL https://dl.sirioai.app/install.sh | sh on macOS and Linux, or irm https://dl.sirioai.app/install.ps1 | iex on Windows. It puts the app where your operating system expects it and asks for no elevated access. Every tagged release also publishes a .dmg, an AppImage and a Windows installer on GitHub.