Fission-AI / OpenSpec 73.5k GitHub stars star repository ↗

An Early Beta of OpenSpec Desktop

OpenSpec Desktop is now in early beta. A new way to explore changes, review specs, and work with your existing coding agents. Download link at the bottom.

This early release is for people already using OpenSpec. It needs the OpenSpec CLI installed and set up in your project. If you're new to OpenSpec, start with the CLI for now. We're working on a better path for new users.

Why we built this

As coding agents become more capable, we've been thinking a lot about how developers can stay involved in the decisions that matter.

Generating specifications alone doesn't solve the problem. Agents can produce a well-defined specification built on assumptions that don't match what we intended. Getting that right still requires human judgment, and we think there's an opportunity to build a better interface for applying that judgment.

That's why we're building OpenSpec Desktop. We want to help developers better understand the work being done, stay involved in the decisions being made, and ultimately have greater confidence in what agents produce.

How it fits in

Our initial release works with Claude Code, Codex, GitHub Copilot, and OpenCode. We've spent the most time with Claude Code and Codex, so we'd especially like to hear how it goes with GitHub Copilot and OpenCode.

We've tried to keep the workflow as close to the existing OpenSpec experience as possible, with a few changes to make better use of the desktop interface.

Exploration Draft Change
add-change-worktrees Valid Open

New capability: changes-workspaces · Changed capability: agent-tools-repository · Changed capability: changes-creating · Changed capability: chats-showing-files · Changed capability: open-in-editor

Requirements

Open

  1. Each change gets one worktree Each change has one implementation worktree
  2. Plans stay in the main checkout Chats about the same change reuse its worktree
  3. Where should a change’s worktree be created? New worktrees start from the chosen code baseline Open question
  4. When can a change’s worktree be removed? Worktrees follow the agreed removal rules Open question
Accept edits Claude CodeOpus 5.5 · High
2 open

Explore, plan, and implement

Exploration now maintains a running view of what you're working through. Think of it as a small HUD that helps you keep track of what's been decided, what's still open, and where you are in the process. This is particularly useful for longer exploration sessions where it's easy to lose track of earlier discussions.

At any point during exploration, you can start drafting a change. You don't necessarily need to finish exploring first.

The app gives you an initial view of the capabilities you're adding or modifying, so you can start shaping the scope of a change before writing anything to disk.

Suggested changes 1 change · 17 items
add-change-worktrees 17

Give each change its own implementation worktree while keeping plans in the main checkout.

changes-workspaces New 9
Each change has one implementation worktree
Chats about the same change reuse its worktree
New worktrees start from the chosen code baseline Open question
Worktrees follow the agreed removal rules Open question
agent-tools-repository Changed 3
The agent runs in the change's worktree
The branch shown is the worktree's branch
Tools read the change's worktree
changes-creating Changed 2
A new change creates its worktree
Plans are written to the main checkout
chats-showing-files Changed 2
Files open from the change's worktree
A removed worktree says so
open-in-editor Changed 1
Opens the change's worktree in the editor
2 open Review and create changes

From there, the agent can work through the requirements, which you can review and refine directly in the app.

add-change-worktrees 0 of 4 accepted
WRK-01 Each change has one implementation worktree

Each change SHALL have exactly one implementation worktree.

.1 Reusing a worktree
Example: Reusing a worktree
When a second chat opens the same change
Then it uses the change's existing worktree
WRK-02 Chats about the same change reuse its worktree

A chat about a change SHALL work in that change's worktree.

.1 Resuming after a relaunch
Example: Resuming after a relaunch
When a chat about the change resumes
Then it runs in the same worktree
WRK-03 New worktrees start from the chosen code baseline

A new worktree SHALL start from the chosen baseline.

.1 Starting from a branch
Example: Starting from a branch
When the change is created from "main"
Then its worktree starts at "main"
WRK-04 Worktrees follow the agreed removal rules

A worktree SHALL NOT be removed with uncommitted work.

.1 Keeping unfinished work
Example: Keeping unfinished work
When a worktree has uncommitted work
Then it stays until the work is committed
Move

We've added OpenSpec-specific views to make this easier. Rather than working entirely through chat or reading generated Markdown files, you can navigate through requirements, annotate them, and make changes using a more focused review interface.

Spec Delta

specs/changes-workspaces/spec.md

Each change has one implementation worktree

Added

Each change SHALL have exactly one implementation worktree.

Example: Reusing a worktree
When a second chat opens the same change
Then it uses the change's existing worktree

    Once you're happy with the requirements, you can pass them into a new chat to begin implementation.

    /apply add-change-worktrees

    1 of 8
    • Record each change’s worktree
    • Create worktrees from the baseline
    • Reuse the worktree across chats
    • Run builds inside the worktree
    • Remove worktrees after archive
    • Show the worktree on the change
    • Open the worktree in the editor
    • Tests for reuse and removal

    Checks passed

    Worktree removal

    The worktree has uncommitted work. What should happen to it?

    The idea is to make it easier to move between exploration, specification, and implementation, while keeping the developer involved in the decisions along the way.

    Still an early beta

    OpenSpec Desktop is currently available for macOS. Windows support is coming.

    There are still a few rough edges and missing features. This is still experimental and unpolished. Expect the interface to change as we try different approaches and learn what works. It doesn't replace everything in the CLI yet.

    For now, you'll need to have the OpenSpec CLI installed and set up in your project before using the desktop app.

    We're also still working through support for custom schemas. There are a lot of different configurations in use, and we haven't been able to test every variation. If you're using a custom schema and something isn't working as expected, please let us know.

    What's coming

    We'll continue building out the desktop experience, including better archive management, syncing, spec generation, and change validation.

    We're also exploring features for teams to better coordinate work across the entire lifecycle, from initial intent through to a shipped PR.

    We'd love your feedback

    This is still an early release, and there's a lot we want to experiment with.

    We're particularly interested in hearing what works, what doesn't, and what you'd like to see next.

    You can submit feedback and feature requests directly from the bottom-left corner of the desktop app, or in our Discord.

    We'll be reading these closely. Everything you submit will be read by an actual human on our team.

    Install

    $ curl -fsSL https://openspec.dev/install.sh | sh
    • macOS only (Apple silicon), Windows soon
    • requires an existing OpenSpec CLI installation
    • requires GitHub sign-in
    • unsigned for now (Apple hasn't verified this build, so you're trusting the download from us. Signed builds are coming.)
    • macOS may ask for your keychain password to access your saved sign-in. Expect this again after updates while builds are unsigned.

    Give this a try

    Start a chat with /explore and work through a change. The Exploration keeps your decisions and open questions beside the conversation.

    When you're ready to propose it, click Draft for an outline of the changes, capabilities, and requirements. Keep exploring and ask the agent to update the draft until it captures what you mean.

    Click Review to work through the full requirements and design. Leave comments, review the agent's edits, and accept what you agree with. Create writes the OpenSpec change to your project.

    Then choose your coding agent and click Build to apply it.

    © 2026 Fission