An agent skill that applies Edward Tufte's data visualization principles when generating charts, plots, and graphs.
$ npx -y skills add caylent/tufte-data-viz --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: caylent/tufte-data-viz
What's inside
An agent skill that applies Edward Tufte's data visualization principles when generating charts, plots, and graphs. Produces clean, honest, high-data-ink-ratio visualizations across multiple charting libraries โ extended with modern screen-first standards for accessibility, responsiveness, and interactivity.
This skill is opinionated by design. It will remove your gridlines, delete your legends, reject your pie charts, and insist on serif fonts. It enforces a specific visual philosophy โ Tufte's โ not a neutral one. If you want total creative freedom over your chart styling, this is not the skill for you. If you want every chart to come out clean, honest, and readable without thinking about it, read on.
npx skills add caylent/tufte-data-viz
The same data, default styling vs. Tufte principles applied:

See it happen live โ gridlines fade, legends become direct labels, chartjunk dissolves:

Try the live demo โ toggle between default and Tufte styling across ECharts, Chart.js, Plotly, and D3.js. Includes dark mode.









22 universal rules applied to every chart, organized in three tiers:
Static principles (rules 1โ14) โ the Tufte foundation:
Screen-first principles (rules 15โ19) โ modern interactive contexts:
prefers-reduced-motion)Content & formatting (rules 20โ22) โ what Tufte assumed but never codified:
| Library | Rule file | Language |
|---|---|---|
| Recharts | rules/recharts.md | React/JSX |
| ECharts | rules/echarts.md | JavaScript |
| Chart.js | rules/chartjs.md | JavaScript |
| matplotlib | rules/matplotlib.md | Python |
| Plotly | rules/plotly.md | Python/JS |
| D3.js / SVG / HTML | rules/svg-html.md | Web |
rules/interactive-and-accessible.md โ progressive disclosure, accessibility, responsive, animation, dark moderules/typography-and-color.md โ font stacks, palettes, hex valuesrules/anti-patterns.md โ common violations and one-liner fixesrules/small-multiples-sparklines.md โ small multiples, sparklines, slopegraphsMIT
_docs/ before-after-animated.gif before-after.png generate_showcase.py small-multiples.png tufte-accessible-scatter.png tufte-bar-chart.png tufte-dark-mode.png tufte-data-table.png tufte-light-dark.png tufte-line-chart.png tufte-slopegraph.png tufte-sparklines.png docs/ index.html examples/ chartjs-tufte-plugin.js echarts-tufte-theme.ts matplotlib-tufte-annotated.py plotly-tufte-template.py recharts-tufte-bar.tsx recharts-tufte-line.tsx sparkline-inline.svg LICENSE README.md rules/ anti-patterns.md chartjs.md echarts.md interactive-and-accessible.md matplotlib.md plotly.md recharts.md small-multiples-sparklines.md svg-html.md typography-and-color.md SKILL.md
FAQ
tufte-data-viz is a Claude Code plugin with 1 hand-picked skill for data work, indexed on Flowy. Install it with the command on its page. It includes tufte-data-viz. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.