Design · A design system your AI builder follows on every screen. · a tool
Charts for your site that look designed, not default
The open-source project evilcharts, by legions-developer
“EvilCharts is an open-source chart UI website built with shadcn and Recharts, beautifully designed and handcrafted.” — the project's own words, on GitHub
What it does
EvilCharts gives your AI a set of ready-made charts that look designed rather than default, for the site or dashboard it is already building you. Bar, line, area, pie, radar, radial and flow charts, each one animated, interactive and responsive, with gradients, patterns and glow effects already worked out. Your AI adds one chart at a time straight into your own project as real, editable code, points it at your data, and tells it what each series is called and which colour it gets in light and dark mode. The result is a chart that matches the rest of your product instead of looking pasted in from a spreadsheet.
Replaces
an afternoon of hand-styling a default chart so it stops looking like a spreadsheet export
For
A founder whose AI is building a dashboard, a reporting page or a marketing site with numbers on it, and who wants those numbers to look like part of the product.
Not for
Not for a plain static page or a site that isn't built on React — it installs into an existing React project, such as Next.js, that uses shadcn/ui and Tailwind, so there is nothing for it to drop into otherwise.
Setup
15 min · Claude Code, Kimi, Gemini CLI or Codex · node, an existing React project, such as Next.js, with shadcn/ui set up or ready to be set up, the data you want to chart, as a list of rows
Get it running
Paste this into the AI that runs on your computer. It does the install, checks it works, and tells you what to type first. If anything fails, paste the error back to it.
Paste into Claude Code
Install evilcharts (https://github.com/legions-developer/evilcharts) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Claude Code, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Run `npx shadcn@latest add @evilcharts/recharts-area-chart` (or bar-chart, line-chart, pie-chart) inside an existing project that already has shadcn/ui and Recharts — it installs into that project rather than being cloned.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: This installs into my existing React or Next.js project, not into ~/tools: first run npm install recharts, then npx shadcn@latest init if shadcn/ui is not already set up in the project (skip it if it is).
Add one chart at a time with npx shadcn@latest add @evilcharts/recharts-{chart-name}, where {chart-name} is area-chart, bar-chart, line-chart, pie-chart, radar-chart, radial-chart, composed-chart or sankey-chart; it installs the files and dependencies itself.
Every chart takes a chartConfig object whose keys must match the keys in my data rows exactly — a chart that renders empty usually means a config key does not match a data key.
The docs also offer an ECharts version of each chart for very dense or live data; the Recharts version is the default, and you install one engine per chart, never both.
Smoke test: start my project's dev server and open the page with the new chart; it should animate in and show a tooltip on hover.
The component docs for agents are at https://evilcharts.com/llms.txt if you need a chart's exact usage.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Put one real number on a page.
If anything fails, show me the exact error and fix it before going on.
Paste into Kimi
Install evilcharts (https://github.com/legions-developer/evilcharts) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Kimi, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Run `npx shadcn@latest add @evilcharts/recharts-area-chart` (or bar-chart, line-chart, pie-chart) inside an existing project that already has shadcn/ui and Recharts — it installs into that project rather than being cloned.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: This installs into my existing React or Next.js project, not into ~/tools: first run npm install recharts, then npx shadcn@latest init if shadcn/ui is not already set up in the project (skip it if it is).
Add one chart at a time with npx shadcn@latest add @evilcharts/recharts-{chart-name}, where {chart-name} is area-chart, bar-chart, line-chart, pie-chart, radar-chart, radial-chart, composed-chart or sankey-chart; it installs the files and dependencies itself.
Every chart takes a chartConfig object whose keys must match the keys in my data rows exactly — a chart that renders empty usually means a config key does not match a data key.
The docs also offer an ECharts version of each chart for very dense or live data; the Recharts version is the default, and you install one engine per chart, never both.
Smoke test: start my project's dev server and open the page with the new chart; it should animate in and show a tooltip on hover.
The component docs for agents are at https://evilcharts.com/llms.txt if you need a chart's exact usage.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Put one real number on a page.
If anything fails, show me the exact error and fix it before going on.
Paste into Gemini CLI
Install evilcharts (https://github.com/legions-developer/evilcharts) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Gemini CLI, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Run `npx shadcn@latest add @evilcharts/recharts-area-chart` (or bar-chart, line-chart, pie-chart) inside an existing project that already has shadcn/ui and Recharts — it installs into that project rather than being cloned.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: This installs into my existing React or Next.js project, not into ~/tools: first run npm install recharts, then npx shadcn@latest init if shadcn/ui is not already set up in the project (skip it if it is).
Add one chart at a time with npx shadcn@latest add @evilcharts/recharts-{chart-name}, where {chart-name} is area-chart, bar-chart, line-chart, pie-chart, radar-chart, radial-chart, composed-chart or sankey-chart; it installs the files and dependencies itself.
Every chart takes a chartConfig object whose keys must match the keys in my data rows exactly — a chart that renders empty usually means a config key does not match a data key.
The docs also offer an ECharts version of each chart for very dense or live data; the Recharts version is the default, and you install one engine per chart, never both.
Smoke test: start my project's dev server and open the page with the new chart; it should animate in and show a tooltip on hover.
The component docs for agents are at https://evilcharts.com/llms.txt if you need a chart's exact usage.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Put one real number on a page.
If anything fails, show me the exact error and fix it before going on.
Paste into Codex
Install evilcharts (https://github.com/legions-developer/evilcharts) on this computer and get it working for me. I am not a developer; explain each step in one line as you go and never skip one. You are Codex, running on my machine.
1. Check what this machine already has (git, Python or Node as the project needs, Docker if the README says so). Tell me anything missing and install it, asking me before anything that needs my password.
2. Run `npx shadcn@latest add @evilcharts/recharts-area-chart` (or bar-chart, line-chart, pie-chart) inside an existing project that already has shadcn/ui and Recharts — it installs into that project rather than being cloned.
3. Configure it. If it needs an API key or a login, stop and ask me for it; never guess one and never store it anywhere except where the README says.
Tool-specific notes: This installs into my existing React or Next.js project, not into ~/tools: first run npm install recharts, then npx shadcn@latest init if shadcn/ui is not already set up in the project (skip it if it is).
Add one chart at a time with npx shadcn@latest add @evilcharts/recharts-{chart-name}, where {chart-name} is area-chart, bar-chart, line-chart, pie-chart, radar-chart, radial-chart, composed-chart or sankey-chart; it installs the files and dependencies itself.
Every chart takes a chartConfig object whose keys must match the keys in my data rows exactly — a chart that renders empty usually means a config key does not match a data key.
The docs also offer an ECharts version of each chart for very dense or live data; the Recharts version is the default, and you install one engine per chart, never both.
Smoke test: start my project's dev server and open the page with the new chart; it should animate in and show a tooltip on hover.
The component docs for agents are at https://evilcharts.com/llms.txt if you need a chart's exact usage.
4. Run the smallest test the README gives, and show me the output.
5. When it works, tell me what to type first, in one line, for this job: Put one real number on a page.
If anything fails, show me the exact error and fix it before going on.
What to point it at first
1
Put one real number on a page
Ask your AI to add a single area or bar chart to a screen you already have and feed it real rows from your product, not the sample data, so you see at once whether the look fits.
2
Name and colour every series
Have your AI fill in the chart config so each line or bar has a plain label and a colour for light and dark mode, then flip the theme and check both read well.
3
Check the figures before you trust it
Hover the chart and compare three tooltip values against the source data by hand; a chart is decoration until the numbers underneath it are right.
What it must never do unattended
Never let it change the design file without showing you the diff.
Never let it fill a chart on a live page with made-up sample data. Real numbers or a visible placeholder, nothing in between.
Who made it
legions-developer/evilcharts on GitHub, under the MIT licence. 2,893 stars, checked 11 September 2026. Last change 29 August 2026. We did not write it; we checked it, and wrote this page so you can use it.