Skip to content
/

openspec-ui (ToruAI)

openspec-ui · ToruAI/openspec-ui · ★ 18 · last commit 2026-01-07

Multi-repository dashboard that reads OpenSpec directories and displays them as a real-time Kanban board — mission control for AI-assisted development with no AI interaction itself.

Best whenObservability is a separate concern from workflow execution; a dedicated passive dashboard better serves multi-repo visibility than embedding monitoring into…
vs seeds
openspecui is the only pure visualization tool in the corpus — a passive multi-repo dashboard with a Rust/React binary, zero AI …
Primitive shape
No installable primitives
00

Summary

openspec-ui (ToruAI) — Summary

openspec-ui is a standalone multi-repository dashboard for tracking OpenSpec spec-driven development activity across multiple projects, delivered as a cross-platform binary (Rust/Axum backend + React/TypeScript frontend) that reads openspec/ directory structures and presents them as a real-time Kanban board with live file-watching.

Problem it solves: When using AI coding assistants across multiple projects simultaneously, there is no central visibility into which features are in progress, what the AI finished, and what ideas are waiting — openspec-ui aggregates multiple openspec/ directories into a single dashboard so developers can capture ideas on mobile, track agent progress in real time, and manage the full idea→archived lifecycle from one interface.

Distinctive trait: The only framework in this batch that is a pure read/visualize tool with no AI interaction whatsoever. It reads OpenSpec file state and displays it; it does not prompt AI, send commands, or drive workflows. Distributed as a native binary (Rust/Axum backend, React frontend) or Docker image — the most production-deployment-oriented entry in the batch.

Target audience: Developers running multiple AI-assisted projects in parallel who want mobile-accessible, real-time visibility into what their AI agents are doing.

Production-readiness: v0.1.0, 18 stars, last commit January 2026. Available as pre-built binary for macOS/Linux/Windows from GitHub Releases.

Relationship to seeds: Does not fit any of the 5 seed archetypes cleanly. The closest is claude-conductor (Archetype 4 — markdown scaffold, zero primitives) in that both treat the project's markdown files as the primary artifact and provide no AI interaction. But claude-conductor focuses on error ledgers and CLAUDE.md; openspec-ui focuses purely on multi-repo visualization. It is genuinely novel in the corpus: a passive dashboard observer with no AI primitives at all.

01

Overview

openspec-ui — Overview

Origin

Created by ToruAI (GitHub organization). The README opens with a distinctive "Why" section:

"AI coding assistants are powerful, but when you're working across multiple projects, it's hard to keep track of what's happening where. Which features are in progress? What did the agent finish yesterday? What ideas are waiting to be developed?"

Philosophy

The core philosophy is "mission control" — not a tool for driving AI agents, but for observing them:

"OpenSpec UI is the mission control — the actual spec-driven development happens through OpenSpec and your AI coding assistant (Cursor, Claude Code, etc.)."

The workflow model:

💡 Idea  →  📋 Proposal  →  ⚡ Implementation  →  ✅ Done
   ↑            ↑                  ↑
  You      AI Agent           AI Agent
  • You capture ideas in the UI
  • AI agents expand ideas into proposals and implement them
  • UI shows progress passively

Key design decisions

  1. No AI integration: The dashboard does not send prompts or interact with any AI. It is read-only with one exception: the "capture idea" feature writes a quick note to the openspec/ideas/ directory.
  2. Multi-repo focus: Uniquely designed from the start for multiple repositories. The config file lists multiple openspec/ directory paths.
  3. Mobile-first: "Works great on phone and tablet" — the UI uses responsive design so developers can check progress from mobile.
  4. Real-time via SSE: Uses Server-Sent Events (not WebSocket) for file change notifications.
  5. Binary distribution: Primary install path is a pre-compiled binary, not npm or Docker-first.
02

Architecture

openspec-ui — Architecture

Distribution

  • Type: Standalone binary (Rust backend + React frontend)
  • Also available: Docker image, build from source

Tech stack

Layer Technology
Backend Rust (Axum framework)
Frontend React + TypeScript + Tailwind CSS + shadcn/ui
Real-time Server-Sent Events (SSE)
Build Cargo (backend) + npm/Vite (frontend)

Install methods

# Option 1: Download binary (recommended)
# Download from GitHub Releases:
# - openspec-ui-v0.1.0-darwin-aarch64.zip  (macOS Apple Silicon)
# - openspec-ui-v0.1.0-linux-x86_64.zip    (Linux x86_64)
# - openspec-ui-v0.1.0-windows-x86_64.zip  (Windows x86_64)
unzip openspec-ui-*.zip
./openspec-ui --config openspec-ui.json

# Option 2: Docker
docker build -t openspec-ui .
docker run -p 3000:3000 \
  -v /path/to/your/repos:/repos \
  -v /path/to/openspec-ui.json:/app/openspec-ui.json \
  openspec-ui

# Option 3: Build from source
cd frontend && npm ci && npm run build && cd ..
cd backend && cargo build --release && cd ..
./backend/target/release/openspec-ui --config openspec-ui.json

Configuration file

openspec-ui.json:

{
  "sources": [
    { "name": "my-project", "path": "/path/to/my-project/openspec" },
    { "name": "another-repo", "path": "/path/to/another-repo/openspec" }
  ],
  "port": 3000
}

Repository structure

openspec-ui/
├── backend/
│   ├── Cargo.toml      ← Rust project manifest
│   └── src/            ← Axum server code
├── frontend/
│   ├── package.json    ← React + Tailwind + shadcn/ui
│   ├── src/            ← React components
│   └── vite.config.ts
├── openspec/           ← Sample openspec data (for dev)
├── Dockerfile
├── build_n_run.sh      ← Quick build+run script
├── openspec-ui.example.json
└── package.json        ← Workspace root (dev scripts)

Target AI tools

None — the dashboard does not interact with any AI tool. It reads openspec/ directories written by any tool.

Reads OpenSpec directory structure

openspec/
├── specs/          ← Source of truth specs
├── changes/        ← Active changes (proposals + tasks)
└── ideas/          ← Quick ideas
03

Components

openspec-ui — Components

Dashboard pages/views

Route Description
Kanban board "Ideas, Todo, In Progress, Done, Archived" columns
Specs Browser Browse specifications across all configured repos
Detail View View proposals, specs, tasks, and design documents

Features

  • Kanban Board: Ideas → Todo → In Progress → Done → Archived columns
  • Multi-repo visibility: Monitor multiple OpenSpec repositories from one dashboard
  • Real-time updates: Auto-refreshes when files change (SSE)
  • Idea capture: Quick-capture thoughts that AI agents can later expand
  • Mobile-first: Responsive design works on phone and tablet
  • Light/Dark Theme: Toggle

Commands

Count: 0 — No slash commands, no CLI subcommands, no SKILL.md files.

Skills

Count: 0

Subagents

Count: 0

Hooks

Count: 0

MCP Servers

Count: 0

Scripts

Script Purpose
build_n_run.sh Quick bash script: builds frontend, builds Rust backend, runs binary
test_docker.sh Docker build and test script
npm run build:backend Build Rust backend via cargo
npm run build:frontend Build React frontend via Vite

Templates

Count: 1

Template Path
Config example openspec-ui.example.json
05

Prompts

openspec-ui — Prompts (Verbatim)

openspec-ui contains no AI prompts. It is a pure visualization tool with no AI interaction.

The AGENTS.md file in the repository root provides AI instructions for contributors developing the tool itself (not for end users):

AGENTS.md (contributor AI instructions)

(Content not fetched; the AGENTS.md file provides instructions for AI coding assistants
contributing to the openspec-ui codebase itself, covering the Rust/React architecture.)

This is a meta-level AI instruction file for the framework's own development, not a user-facing prompt.


Key design note

The absence of prompts is a deliberate design choice. The README explicitly states:

"OpenSpec UI is the mission control — the actual spec-driven development happens through OpenSpec and your AI coding assistant."

This framework is the only entry in the batch where a "prompts" analysis file must note that there are no prompts — because the tool's value proposition is entirely on the visualization/observation side of the human-AI pair programming workflow.

09

Uniqueness

openspec-ui — Uniqueness and Positioning

differs_from_seeds

None of the 11 seeds are pure visualization dashboards. The closest is claude-conductor (Archetype 4 — markdown scaffold, zero primitives) in that both treat the project's markdown files as first-class artifacts and neither drives AI directly. But claude-conductor generates and manages CLAUDE.md/ERRORS.md/TASKS.md; openspec-ui only reads and visualizes. openspec-ui is genuinely outside the 5-archetype taxonomy: it is the only "passive observer" in the corpus — an operations dashboard for AI-generated work rather than a framework that shapes AI behavior. Compared to openspec-mcp (which also ships a web dashboard), openspec-ui has zero AI interaction and focuses on multi-repo aggregation rather than single-project tool-calling.

Positioning

  • Niche: "Mission control dashboard for multi-repo OpenSpec work"
  • Primary differentiator: Only pure visualization tool in the batch; no AI interaction
  • Secondary differentiator: Multi-repo aggregation — designed from the start to watch N projects simultaneously
  • Distribution differentiator: Native binary (Rust) + Docker — the most deployment-ready tool in the batch

Observable failure modes

  1. No authentication: Running the server on a non-loopback interface exposes all openspec content to anyone on the network
  2. Read-only except ideas: The only write operation is idea capture; all other state changes must go through the OpenSpec CLI or AI agents
  3. Stale taxonomy: The Kanban column logic (mapping checkbox states to columns) may not match evolving OpenSpec state conventions
  4. Single binary version: No hot-reload or rolling update; updating the binary requires restart
  5. No notification system: No push alerts when an agent completes a task; users must actively check the dashboard

Explicit antipatterns

None documented.

04

Workflow

openspec-ui — Workflow

User workflow

openspec-ui does not enforce or drive any workflow. It visualizes the OpenSpec workflow state passively.

The workflow the dashboard reflects:

💡 Idea captured in UI
    ↓ (user/agent expands to proposal)
📋 Proposal → appears in "Todo" column
    ↓ (agent starts implementation)
⚡ In Progress → tasks updating in real-time
    ↓ (agent completes)
✅ Done → change complete
    ↓ (archive command)
📦 Archived

Kanban columns

Column Corresponds to OpenSpec state
Ideas openspec/ideas/ directory
Todo Changes in openspec/changes/ with no tasks started
In Progress Changes with some tasks [x] but not all
Done Changes with all tasks [x]
Archived Changes in openspec/archive/

Phase-to-artifact map

The dashboard reads (not writes) these artifacts:

Phase Artifact read
Ideas openspec/ideas/*.md
Changes openspec/changes/{id}/proposal.md
Tasks openspec/changes/{id}/tasks.md (checkbox state)
Specs openspec/specs/*.md
Archived openspec/archive/{id}/

Approval gates

None — the dashboard is a passive observer.

Real-time updates

When AI agents modify files in a watched openspec/ directory, the Rust backend detects the change (via file watching) and sends an SSE event to connected browsers, triggering a live refresh.

06

Memory Context

openspec-ui — Memory and Context

State storage

Read-only from the OpenSpec file system. The dashboard reads openspec/ directories; it writes only to openspec/ideas/ (idea capture feature).

Persistence

File-based (reading existing OpenSpec directories).

Real-time refresh

The Rust backend uses file watching (likely notify crate) to detect changes in configured openspec/ paths and pushes SSE events to connected browser clients.

Memory type

None — the dashboard has no internal memory or state store.

Session continuity

N/A — the dashboard is stateless; refreshing the browser loads current file state.

07

Orchestration

openspec-ui — Orchestration

Multi-agent

No.

Orchestration pattern

None. The dashboard is a passive observer.

Isolation mechanism

None.

Multi-model

Not applicable — no AI interaction.

Execution mode

Background daemon (the binary runs as a long-lived HTTP server on port 3000).

Auto-validators

None.

08

Ui Cli Surface

openspec-ui — UI, CLI, and Observability

Dedicated CLI binary

Yes.

./openspec-ui --config openspec-ui.json

The binary is a Rust executable (Axum HTTP server). No subcommands — it takes a --config path and starts the server.

Local web dashboard

Yes — this is the primary product.

Attribute Value
Default port 3000 (configurable in openspec-ui.json)
Tech stack React + TypeScript + Tailwind CSS + shadcn/ui (frontend); Rust Axum (backend); SSE (real-time)
Mobile-first Yes
Theme Light/Dark toggle

Features

  • Kanban Board: Ideas → Todo → In Progress → Done → Archived
  • Multi-repo: Multiple openspec/ directories in one dashboard
  • Specs Browser: Browse all specs across configured repos
  • Detail View: Full proposal + tasks + design view
  • Real-time: SSE-based file change detection
  • Idea capture: Write quick ideas from mobile

IDE integration

None.

Observability

The dashboard IS the observability layer:

  • Kanban shows workflow state across all repos
  • Task progress visible from checkbox state
  • No structured logging or audit trail beyond what OpenSpec files contain

Docker support

docker run -p 3000:3000 \
  -v /path/to/your/repos:/repos \
  -v /path/to/openspec-ui.json:/app/openspec-ui.json \
  openspec-ui

This makes it deployable as a team-shared dashboard (e.g., running on a dev server).

Related frameworks

same archetype · same primary tool · same memory type

Goose (Block/AAIF) ★ 46k

General-purpose AI agent (not just code) with security-first tool inspection, recipe-based shareable configurations, and 15+ LLM…

Vibe Kanban ★ 27k

Eliminate the overhead of planning, switching between agent terminals, and reviewing diffs by providing a single web dashboard…

1Code ★ 5.5k

Cursor-like desktop experience for Claude Code and Codex with cloud background agents, event-driven automations, and a full…

Crystal (stravu) ★ 3.1k

Manage multiple parallel AI coding sessions in isolated git worktrees from a single desktop GUI.

Maestro (RunMaestro) ★ 3.0k

Orchestrate unlimited parallel AI agent sessions with a keyboard-first desktop app including Group Chat coordination and Auto Run…

AgentsMesh ★ 2.1k

Multi-tenant workforce platform that gives every team member a squad of AI coding agents coordinated through channels, pod…