Standalone desktop dashboard for markdown-based conception items (projects, incidents, documents) under a unified projects/YYYY-MM/ tree.
Project description
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
uv run condash --version
uv run condash
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) for
## Deliverables— no OS handler involved, theme-aware toolbar. - 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.
Project details
Release history Release notifications | RSS feed
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 condash-0.16.0.tar.gz.
File metadata
- Download URL: condash-0.16.0.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5863a5ed82ad8c5cdb0896a4859b5a76ed43372d81c5526058abc16989a51455
|
|
| MD5 |
f8d90833f9565805637ad02e6b4996ad
|
|
| BLAKE2b-256 |
e831cfe3ea67222741022a11fb5cf7bcd7f0852e28f6ac12debf688091835a29
|
Provenance
The following attestation bundles were made for condash-0.16.0.tar.gz:
Publisher:
release.yml on vcoeur/condash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
condash-0.16.0.tar.gz -
Subject digest:
5863a5ed82ad8c5cdb0896a4859b5a76ed43372d81c5526058abc16989a51455 - Sigstore transparency entry: 1343307677
- Sigstore integration time:
-
Permalink:
vcoeur/condash@7c36686877c9a59f17477dd777764bd7c547a902 -
Branch / Tag:
refs/tags/v0.16.0 - Owner: https://github.com/vcoeur
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7c36686877c9a59f17477dd777764bd7c547a902 -
Trigger Event:
push
-
Statement type:
File details
Details for the file condash-0.16.0-py3-none-any.whl.
File metadata
- Download URL: condash-0.16.0-py3-none-any.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7651d3aaca461da5ec95908a3ac302ded060d6243a29f16a2b89b040a0a0643
|
|
| MD5 |
f97f65f2367a9907bc1c3cde1f0271f6
|
|
| BLAKE2b-256 |
107e37af1e09e069436c9a0164af2d88e0b477af5aae662dbb1e1ee36da189dc
|
Provenance
The following attestation bundles were made for condash-0.16.0-py3-none-any.whl:
Publisher:
release.yml on vcoeur/condash
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
condash-0.16.0-py3-none-any.whl -
Subject digest:
d7651d3aaca461da5ec95908a3ac302ded060d6243a29f16a2b89b040a0a0643 - Sigstore transparency entry: 1343307681
- Sigstore integration time:
-
Permalink:
vcoeur/condash@7c36686877c9a59f17477dd777764bd7c547a902 -
Branch / Tag:
refs/tags/v0.16.0 - Owner: https://github.com/vcoeur
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7c36686877c9a59f17477dd777764bd7c547a902 -
Trigger Event:
push
-
Statement type: