An unofficial, community-built interactive TUI for visualizing and managing OpenSpec changes and specs. Not affiliated with Fission-AI/OpenSpec.
Project description
openspec-ui
Unofficial.
openspec-uiis a community-built tool and is not affiliated with, endorsed by, or sponsored by Fission-AI/OpenSpec. It consumes theopenspecCLI over subprocess as a third-party client.
An interactive, keyboard-driven terminal UI for visualizing and managing your OpenSpec changes and specs.
openspec view dumps a static dashboard and exits. openspec-ui is the
interactive version: browse changes and specs, glance at progress, see a kanban
pipeline of your changes, open artifacts, edit them in $EDITOR, and create new
changes — all from one terminal command.
Install & run
uvx openspec-ui
Run it from inside any directory containing an openspec/ root (or a
subdirectory of one). Requires the openspec CLI on PATH.
What it does
- Dashboard — lists changes (draft / in-progress / completed / archived) with task progress bars, and specs with requirement counts.
- Kanban — a pipeline view of changes by stage, for at-a-glance status.
- Detail view — renders a change's artifacts (
proposal.md,design.md,specs/**,tasks.md) read-only as markdown (ASCII diagrams and code blocks stay aligned in monospace). Switch artifacts with arrow keys. - Edit — press
eto open the current artifact in$EDITOR; the view reloads from disk when the editor exits. - New change — press
nto create a change viaopenspec new change. - Command palette —
Ctrl+Pfor actions.
Design
openspec-ui is a thin client: it owns no state. Every read comes from
openspec ... --json or direct file reads under openspec/; every write is
delegated to the openspec CLI or to $EDITOR. This keeps the view layer
replaceable (a future SvelteKit web UI could reuse the same data contract).
Status
Alpha. Built with Textual. Supports OpenSpec
CLI 1.7.x (@fission-ai/openspec).
Releases
Releases are fully automated. Maintainers never edit the version field by hand.
- Conventional commits land on
main(via PRs). - On each push to
main, CI runscommitizen(cz bump --yes --changelog), which determines the next semver from the commit log, updatesversioninpyproject.toml, updatesCHANGELOG.md, and creates/pushes av<version>tag. - The tag push triggers a second CI job that builds the wheel+sdist and publishes them to PyPI using trusted publishing (OIDC) — no stored API tokens.
feat:/fix:/breaking commits release; purechore:/docs:commits do not (commitizen determines there is no increment).
Trusted publisher setup (one-time, manual)
Before the publish job works, register a trusted publisher on pypi.org once:
- PyPI project:
openspec-ui(create it if it does not yet exist). - GitHub repo:
mrn-dk/openspec-ui. - Workflow filename:
.github/workflows/release.yml. - Environment name:
pypi(the publish job usesenvironment: pypi).
This is a web step on pypi.org that cannot be automated from within the repo. Until it is done, the publish job will fail with an OIDC error; the build artifacts still exist in the workflow run and can be uploaded manually.
The first release also needs a seeded v0.1.0 tag (commitizen bumps
relative to an existing tag); after that, cz bump always has a reference.
Contributing
This project follows the OpenSpec spec-driven workflow (openspec/).
Git history uses Conventional Commits and conventional branch names:
- Branches:
feat/<scope>,fix/<scope>,refactor/<scope>,chore/<scope>, … - Commits:
feat:,fix:,docs:,refactor:,chore:, … (with a scope when helpful, e.g.feat: add kanban view). - Never commit directly to
main. Work on a dedicated branch and open a pull request with the GitHub CLI (gh pr create), referencing the OpenSpec change name in the PR description.
For changes managed through OpenSpec, see openspec/config.yaml for the
project context and per-operation guidance that the openspec skills follow.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openspec_ui-0.3.0.tar.gz.
File metadata
- Download URL: openspec_ui-0.3.0.tar.gz
- Upload date:
- Size: 68.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.24
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5390145b80f970c642bd3910f67d8c97f1277b9512976baa87790c08553c12f8
|
|
| MD5 |
15bb98e655ce429d8396c09681cce716
|
|
| BLAKE2b-256 |
4a095c76b60ff24154db15f6afa3969aa1273f137aa431214e809d5980a8b63d
|
File details
Details for the file openspec_ui-0.3.0-py3-none-any.whl.
File metadata
- Download URL: openspec_ui-0.3.0-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.24
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a59791b54d234fe7c803cd295c0e850642cae558eabbb7d109b0c7ba83b4d1d3
|
|
| MD5 |
28b2e820314679b46eda347878bef7d0
|
|
| BLAKE2b-256 |
0555695e8594c109abf47c11df4259ddc7734ee0d831736841b1e9c821882d08
|