Standalone desktop dashboard for a Markdown-first project-tracking tree — projects, incidents, and documents all live as plain .md files you already edit.
condash walks a projects/YYYY-MM/YYYY-MM-DD-<slug>/ tree under a single conception root and renders a live dashboard of every item: its status, steps, notes, deliverables, and linked code. There is no database, no sync server, no account. The Markdown files are the source of truth; condash is the view layer.
Full documentation, with tutorials and screenshots, lives at condash.vcoeur.com.
pipx install condash
# or: uv tool install condashBoth install the CLI into its own isolated virtualenv and put condash on your $PATH. Install size is roughly 100 MB because of the bundled Qt wheels — that's the cost of "works everywhere with one command".
None on Linux, macOS, or Windows. pywebview[qt] pulls PyQt6 + PyQt6-WebEngine from PyPI and those wheels bundle Qt itself:
- Linux — prefers GTK/WebKit if
python3-giis installed system-wide, falls back to the bundled Qt backend otherwise. - macOS — uses the native Cocoa WebKit backend.
- Windows — uses the native Edge WebView2 backend.
To skip the native window entirely, set native = false in your config and open the dashboard in your browser at http://127.0.0.1:<port> — see Configure the conception path.
git clone https://github.com/vcoeur/condash-python.git
cd condash
uv sync --all-extras
make frontend # bundle assets/src/{js,css}/ → assets/dist/ (esbuild via npx)
uv run condash --version
uv run condashmake frontend is only needed when the source under src/condash/assets/src/ changes — the built dist/bundle.{js,css} files are committed so pip install condash from sdist works without a Node toolchain. It invokes esbuild transiently through npx --yes, so no node_modules/ is created.
condash doesn't ship a working default config — it has no way to guess where your conception tree lives. Bootstrap one:
condash init # writes a commented template at ~/.config/condash/config.toml
condash config edit # opens it in $VISUAL / $EDITORThe only required key is conception_path:
conception_path = "/path/to/conception"
port = 0 # 0 = OS picks a free port
native = true # false = open in your browserEverything else — the workspace of code repos, the "open in IDE" launchers, per-machine preferences — lives in two YAML files inside the conception tree (<conception_path>/config/repositories.yml and <conception_path>/config/preferences.yml), so teammates who pull the tree get the same layout automatically. The gear icon in the dashboard header opens an in-app editor for all three files.
Full schema: Config files reference.
- Renders a live dashboard of every
projects/YYYY-MM/YYYY-MM-DD-<slug>/README.md, grouped by status (now/soon/later/backlog/review/done). Drag cards between columns to rewrite the**Status**:line in place. Unknown status values surface a red!?badge so typos don't silently land inbacklog. - Tracks steps and deliverables parsed from the README body —
- [ ]/- [~]/- [x]/- [-]checkboxes,## DeliverablesPDF links. A click on a checkbox rewrites the line. - An embedded terminal (vendored xterm.js) for ad-hoc commands, plus an inline dev-server runner (since v0.13.0) that starts your
make dev/npm run dev/cargo watchunder a PTY and streams output into a xterm mounted right under the repo row. - A repo strip (the Code tab) with per-repo dirty counts, worktree nesting, and per-repo inline runners. Each repo gets vendor-neutral
main_ide,secondary_ide, andterminallauncher buttons wired to your own commands via a fallback chain. - A knowledge tree (optional
knowledge/sibling ofprojects/) rendered as a browsable tab — the right place for durable reference material that outlives any one project. - Wikilinks (
[[slug]]) between items, resolved by short-slug match across the whole tree. - A vendored PDF viewer (Mozilla PDF.js, minified) for
## Deliverables— no OS handler involved, theme-aware toolbar. - Fully offline: every browser dependency (PDF.js, xterm.js, CodeMirror 6 with YAML + Markdown, Mermaid) is vendored under
src/condash/assets/vendor/and served from/vendor/…. Minified-where-possible; no runtime fetch to a CDN. - Fingerprinted auto-refresh so edits made in your external editor surface in the dashboard within 5 seconds without flickering the page.
All of it is thin — condash is a FastAPI + NiceGUI layer over a directory of Markdown files, and the design is mostly about keeping it that way as features accumulate.
condash # open the dashboard window
condash --version # print version and exit
condash --conception-path PATH # one-shot override (does not touch config file)
condash --config PATH # use a different config file
condash --port N # one-shot port override
condash --no-native # open in your browser instead of a desktop window
condash init # write a commented config template if missing
condash config show # print the effective (merged) configuration
condash config path # print the resolved config file path
condash config edit # open the config in $VISUAL / $EDITOR
condash install-desktop # register condash with the XDG launcher (Linux)
condash uninstall-desktop # remove the user-local desktop entry (Linux)
Full reference: CLI.
condash install-desktopWrites a user-local XDG desktop entry + the bundled SVG icon, so condash appears in GNOME Activities, KDE Kickoff, Cinnamon, and other launchers:
~/.local/share/applications/condash.desktop— launcher entry, pointing at the absolute path of whichevercondashbinary you ran the command with~/.local/share/icons/hicolor/scalable/apps/condash.svg— the app icon
No sudo, no system-wide changes. Remove later with condash uninstall-desktop. The native window also picks up the same icon at runtime, so it appears in your taskbar / Alt-Tab switcher.
A minimal example SKILL.md ships at the repo root — drop it into ~/.claude/skills/condash/ (or <project>/.claude/skills/condash/) to drive the non-interactive CLI surface from a Claude Code session: condash init, condash config show / path / edit, condash install-desktop. Launching the native window from inside an agent is deliberately out of scope — run condash by hand for that.
Version 0.14.1. Linux-first but tested on all three desktop platforms. The docs site at condash.vcoeur.com tracks current behaviour; the CHANGELOG on GitHub has the release-by-release history.
- Documentation: condash.vcoeur.com
- Source: github.com/vcoeur/condash
- PyPI: pypi.org/project/condash
MIT — see LICENSE.