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]

Reply via email to