GitHub user debabsah edited a discussion: Chartwright: a dashboard compiler for Superset (spec in, verified dashboard out) - allows to deterministically create/modify/update dashboards with any LLM
This came out of a real migration: moving a lot of dashboards from a legacy BI tool to Superset at work. Rebuilding each one by hand in the UI was the bottleneck, and freeform AI generation of dashboard internals was too unreliable to trust. The loop I ended up with: a screenshot of the old dashboard goes to an AI, the AI writes a small spec, and the tool builds the dashboard and verifies it. An afternoon per dashboard became minutes plus a review. Sharing the tool here for feedback. **What it is**. Chartwright compiles a small JSON spec into a Superset dashboard and verifies the result. Before anything is created, every dataset, column, and saved metric the spec names is resolved against the live instance, and all failures come back in one pass as typed errors. After import, it confirms every chart is linked and returns data. The same spec always produces the identical dashboard, so specs are reviewable in pull requests and diffable in CI. **The part that might interest maintainers**: To make the guarantee hold across versions, I verified the behaviors the tool depends on against Superset source at 4.1.4, 5.0.0, and 6.1.0, with file-and-line citations: https://github.com/debabsah/chartwright/blob/main/docs/CONTRACTS.md Examples: the import API returns 200 while silently skipping charts whose dataset YAMLs are not in the bundle; chart options have no backend contract, so the repo carries a checker that fails CI when an emitted option is no longer declared by a viz plugin's control panel; dashboard metadata writes are last-writer-wins, which lets a stale browser tab silently clobber native filters (the tool detects and repairs that). Happy to file anything from that list as issues if maintainers want them tracked. **The AI angle**: The spec is a bounded, schema-published target, which makes it a good contract for LLMs: the model writes the spec, the tool verifies everything it names, and mistakes come back as machine-actionable errors instead of broken dashboards. It ships as a Claude Code skill and an MCP server. I see this as complementary to the official MCP server work: conversational creation is great for exploration; a spec is for when the result has to be repeatable and reviewable. **What it covers today**: 14 chart types, per-chart filters, the native filter bar, tabs and markdown, layouts drawn as ASCII sketches, decompile (any existing dashboard becomes a spec, losses named), plan/drift detection, backup and complete restore. 125 tests plus live CI against real 4.1.4/5.0.0/6.1.0 containers on every push. Apache-2.0. Repo: https://github.com/debabsah/chartwright PyPI: pip install chartwright The README front door is a demo built from one plain-language request against 3.9M rows of public NYC taxi data, applied and verified in one command. What would make this useful for you? Bug reports are gold; the issue template asks for the failing spec and the full output. GitHub link: https://github.com/apache/superset/discussions/41983 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
