condash
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.
Install
pipx install condash
# or: uv tool install condash
Both 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".
System prerequisites
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.
Development from a source checkout
git clone https://github.com/vcoeur/condash.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 condash
make 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.
First launch
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 / $EDITOR
The 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 browser
Everything 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.
What it does
- 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.
CLI
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.
Linux: register condash in your application launcher
condash install-desktop
Writes 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.
Claude Code skill
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.
Status
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.
Links
- Documentation: condash.vcoeur.com
- Source: github.com/vcoeur/condash
- PyPI: pypi.org/project/condash
License
MIT — see LICENSE.
Metadata
Release files for condash 0.20.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| condash-0.20.4.tar.gz | 3.6 MB | With provenance | Details for condash-0.20.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| condash-0.20.4-py3-none-any.whl | Python 3 | none | any | Details for condash-0.20.4-py3-none-any.whl |
Total release size: 7.4 MB
Release files / condash-0.20.4.tar.gz
| Download URL | condash-0.20.4.tar.gz |
|---|---|
| Size | 3.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
94c455ec5f18e0329581fa4b92ff873afe36c6f648c1c32e795450e8ea243032
|
|
BLAKE2b-256 checksum How to use checksums |
a57dd5fbe1a54424715332456e9a0a440bfbe65837f12a72bdffc0548ce4b845
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 22, 2026.
Transparency logRelease files / condash-0.20.4-py3-none-any.whl
| Download URL | condash-0.20.4-py3-none-any.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6593036c76922ae6cf6026a8ae518b10995ea9d1d66e9342395b21a6f03390d5
|
|
BLAKE2b-256 checksum How to use checksums |
afd23eb50b59ce98126870c7f35ea47def7fadc420d7759094eaf8110f7e643c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 22, 2026.
Transparency logSecurity for condash 0.20.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for condash-0.20.4.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.