explaingit

shajiechen/plan-viewer

19HTMLAudience · pm founderComplexity · 3/5ActiveSetup · moderate

TLDR

A desktop and web front-end that reads a status.yaml from project-state-tracker and shows a software project as a swimlane chart plus a dependency graph.

Mindmap

mindmap
  root((Plan-Viewer))
    Inputs
      status.yaml file
      Project switch action
      Click-to-edit state
    Outputs
      Swimlane chart
      Dependency graph
      Markdown preview
    Use Cases
      Track project status
      Visualize dependencies
      Edit task state
    Tech Stack
      Tauri
      Rust
      Preact
      React
      Python

Things people build with this

USE CASE 1

Run the web edition with python dashboard_server.py to view a swimlane chart of an existing project-state-tracker repo.

USE CASE 2

Build the Tauri desktop app and pin it as an always-on-top floating window during a coding session.

USE CASE 3

Push the bundled AI agent skills to Kiro, Cursor, Claude, Copilot, or Codex with python Tools/install_skills.py.

USE CASE 4

Hit the web edition REST API from a script to add, delete, or rename projects programmatically.

Tech stack

TauriRustPreactReactPythonPyYAML

Getting it running

Difficulty · moderate Time to first run · 1h+

Web edition needs Python 3.9+, and the desktop edition adds Rust plus Node.js to compile a Tauri 2 binary.

In plain English

Plan Viewer is an interactive visual front-end for tracking the state of a software project. It comes in two flavours: a desktop app built with Tauri and a web app you run locally. The data source is a status.yaml file maintained by a separate tool called project-state-tracker. Plan Viewer reads that file and shows the same information as a swimlane chart and as a dependency graph, with click-to-open node details and the ability to change a state directly from the chart, writing the result back to the YAML file. The tool is one piece of a wider workflow loop made of several AI-agent skills. The README sketches an ASCII diagram and a typical six-step cycle: a skill called PSS guides you through writing a specification, PST tracks state and renders dependencies, ELP executes a landing prompt that actually implements the work, and MQA gives a short overview of an unfamiliar module. Plan Viewer sits at the end of that loop and gives a human eye on what each skill has produced. The desktop and web editions share most features: the swimlane chart, the dependency graph, the detail side panel for change events and dependencies, click-to-edit status, Markdown preview, and adding or switching between multiple projects. The desktop edition adds things that only a native window can offer, including an always-on-top floating mode, automatic shrinking when the mouse leaves, binding to a single process for focus jumps, and a per-project window-size memory. The web edition adds in-browser Mermaid diagram rendering and a REST API that external scripts can use to add, delete, or modify projects. Prerequisites are Python 3.9 or newer for the web side, plus Rust and Node.js for compiling the desktop side. The web app starts with python dashboard_server.py and opens a browser tab automatically. The desktop app builds with npm run tauri build inside plan-viewer-desktop/. The skills themselves are git submodules under Tools/Skills/ and can be pushed to five different AI agent layouts (Kiro, Cursor, Claude, Copilot, Codex) by running python Tools/install_skills.py. The technology stack is Tauri 2 with Rust on the desktop, Preact and Vite for the desktop UI, React via CDN with Tailwind and Mermaid for the web UI, Python's standard http.server with PyYAML on the web backend, and pytest plus Hypothesis for tests.

Copy-paste prompts

Prompt 1
Install shajieChen/Plan-Viewer web edition on macOS. Show every command from cloning to opening the dashboard at localhost.
Prompt 2
Build the Tauri desktop edition of Plan-Viewer on Windows. List Rust, Node, and Python version requirements and the exact npm run tauri build steps.
Prompt 3
Document the REST API exposed by Plan-Viewer web edition. Provide a curl example for adding a new project and switching to it.
Prompt 4
I want to run Plan-Viewer without project-state-tracker. Write a minimal status.yaml that exercises every feature of the swimlane chart and graph.
Prompt 5
Use Plan-Viewer with Cursor by running Tools/install_skills.py. Describe what files appear in my Cursor config and how to roll back.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.