Chart Generation Skill Generate clean, minimal charts with shadcn-inspired grayscale styling using QuickChart.io (no dependencies needed). Quick Usage Users can describe charts naturally: /chart show me monthly revenue: Jan $12k, Feb $15k, Mar $18k, Apr $14k /chart compare Q4 performance - Revenue was 450, Costs 320, Profit 130 /chart visualize team breakdown: Engineering 45%, Product 25%, Design 20%, Operations 10% /chart create an area chart of daily active users over the past week /chart horizontal bar ranking: Chile 89, Mexico 76, Peru 65, Colombia 58 /chart plot this data as a line chart [paste CSV or JSON] Data Input Formats Inline (Simple) Label1 Value1, Label2 Value2, Label3 Value3 From file /chart line chart from /path/to/data.csv Chart Types Type Keywords Description Bar (vertical) bar , bar chart Vertical bars Bar (horizontal) horizontal bar , hbar Horizontal bars Line line , line chart Time series, trends Area area , area chart Filled line chart Pie pie , pie chart Proportions Doughnut doughnut , donut Ring-style proportions Options title : title "My Chart Title" output : save to /path/to/chart.png (default: ~/Downloads/chart_YYYYMMDD_HHMMSS.png ) size : size 800x600 (width x height in pixels, default: 600x400) Color Palette (Grayscale - shadcn/Zinc) Color Hex Usage zinc-900
18181B
Primary series zinc-700
3F3F46
Secondary series zinc-500
71717A
Third series zinc-400
A1A1AA
Fourth series zinc-300
D4D4D8
Fifth series zinc-200
E4E4E7
Sixth series zinc-100
F4F4F5
Grid lines Style Elements Clean, minimal design Grayscale color palette Subtle grid lines (zinc-100) Rounded corners on bars (radius: 4) Smooth curves on lines (tension: 0.3) No borders, light aesthetic Semi-transparent fills for area charts Instructions When the user requests a chart: Parse the request to identify: Chart type (bar, line, area, pie, doughnut, horizontal bar) Data (inline or file path) Title (if provided) Output path (default: ~/Downloads/chart_$(date +%Y%m%d_%H%M%S).png ) Size (default: 600x400) Build the Chart.js configuration using this shadcn-style template: { "type" : "bar" , "data" : { "labels" : [ "A" , "B" , "C" ] , "datasets" : [ { "data" : [ 10 , 20 , 30 ] , "backgroundColor" : "#18181B" , "borderRadius" : 4 } ] } , "options" : { "layout" : { "padding" : { "top" : 20 , "right" : 30 , "bottom" : 20 , "left" : 20 } } , "plugins" : { "title" : { "display" : true , "text" : "Chart Title" , "align" : "start" , "font" : { "size" : 16 , "weight" : "600" , "family" : "Inter, system-ui, sans-serif" } , "color" : "#18181B" , "padding" : { "bottom" : 20 } } , "legend" : { "display" : false } , "datalabels" : { "display" : false } } , "scales" : { "y" : { "beginAtZero" : true , "border" : { "display" : false } , "grid" : { "color" : "#F4F4F5" } , "ticks" : { "color" : "#71717A" , "padding" : 10 , "font" : { "size" : 11 } } } , "x" : { "border" : { "display" : false } , "grid" : { "display" : false } , "ticks" : { "color" : "#71717A" , "padding" : 10 , "font" : { "size" : 11 } } } } } } Generate the chart using POST to QuickChart.io: curl -X POST https://quickchart.io/chart \ -H 'Content-Type: application/json' \ -d '{ "version": "4", "backgroundColor": "white", "width": 600, "height": 400, "chart": CHART_CONFIG_JSON }' \ --output ~/Downloads/chart_ $( date +%Y%m%d_%H%M%S ) .png Show the result by reading the generated image file with the Read tool Chart Type Configurations Bar Chart { "type" : "bar" , "data" : { "labels" : [ "A" , "B" , "C" ] , "datasets" : [ { "data" : [ 10 , 20 , 30 ] , "backgroundColor" : "#18181B" , "borderRadius" : 4 } ] } } Horizontal Bar Chart { "type" : "bar" , "data" : { "labels" : [ "A" , "B" , "C" ] , "datasets" : [ { "data" : [ 10 , 20 , 30 ] , "backgroundColor" : "#18181B" , "borderRadius" : 4 } ] } , "options" : { "indexAxis" : "y" } } Line Chart { "type" : "line" , "data" : { "labels" : [ "Jan" , "Feb" , "Mar" ] , "datasets" : [ { "data" : [ 10 , 20 , 30 ] , "borderColor" : "#18181B" , "borderWidth" : 2 , "tension" : 0.3 , "pointRadius" : 0 , "fill" : false } ] } } Area Chart (Filled Line) { "type" : "line" , "data" : { "labels" : [ "Jan" , "Feb" , "Mar" ] , "datasets" : [ { "data" : [ 10 , 20 , 30 ] , "borderColor" : "#18181B" , "backgroundColor" : "rgba(24, 24, 27, 0.1)" , "borderWidth" : 2 , "tension" : 0.3 , "pointRadius" : 0 , "fill" : true } ] } } Multi-Series Area Chart { "type" : "line" , "data" : { "labels" : [ "Jan" , "Feb" , "Mar" , "Apr" ] , "datasets" : [ { "label" : "Desktop" , "data" : [ 100 , 150 , 120 , 180 ] , "borderColor" : "#18181B" , "backgroundColor" : "rgba(24, 24, 27, 0.15)" , "borderWidth" : 2 , "tension" : 0.3 , "fill" : true } , { "label" : "Mobile" , "data" : [ 80 , 120 , 140 , 160 ] , "borderColor" : "#71717A" , "backgroundColor" : "rgba(113, 113, 122, 0.15)" , "borderWidth" : 2 , "tension" : 0.3 , "fill" : true } ] } , "options" : { "plugins" : { "legend" : { "display" : true , "position" : "bottom" , "labels" : { "color" : "#71717A" , "usePointStyle" : true } } } } } Pie / Doughnut Chart { "type" : "doughnut" , "data" : { "labels" : [ "A" , "B" , "C" ] , "datasets" : [ { "data" : [ 45 , 30 , 25 ] , "backgroundColor" : [ "#18181B" , "#71717A" , "#D4D4D8" ] , "borderWidth" : 0 } ] } , "options" : { "cutout" : "60%" } } Examples Bar Chart /chart compare our Q4 numbers - Revenue hit 450, Costs were 320, and Profit came in at 130 Generated curl: curl -X POST https://quickchart.io/chart \ -H 'Content-Type: application/json' \ -d '{ "version": "4", "backgroundColor": "white", "width": 600, "height": 400, "chart": { "type": "bar", "data": { "labels": ["Revenue", "Costs", "Profit"], "datasets": [{"data": [450, 320, 130], "backgroundColor": "#18181B", "borderRadius": 4}] }, "options": { "layout": {"padding": {"top": 20, "right": 30, "bottom": 20, "left": 20}}, "plugins": { "title": {"display": true, "text": "Q4 Financial Summary", "align": "start", "font": {"size": 16, "weight": "600"}, "color": "#18181B", "padding": {"bottom": 20}}, "legend": {"display": false} }, "scales": { "y": {"beginAtZero": true, "border": {"display": false}, "grid": {"color": "#F4F4F5"}, "ticks": {"color": "#71717A", "padding": 10}}, "x": {"border": {"display": false}, "grid": {"display": false}, "ticks": {"color": "#71717A", "padding": 10}} } } } }' \ --output ~/Downloads/chart_ $( date +%Y%m%d_%H%M%S ) .png Area Chart /chart show monthly visitors as an area chart - Jan had 186, Feb 305, Mar 237, Apr 73, May 209, Jun 214 Multi-Series Comparison /chart compare desktop vs mobile traffic: Desktop: Jan 100, Feb 150, Mar 120 Mobile: Jan 80, Feb 120, Mar 140 From Data /chart visualize this CSV as a line chart: date,users 2024-01-01,150 2024-01-02,180 2024-01-03,220 Output Charts are saved to ~/Downloads/chart_YYYYMMDD_HHMMSS.png by default (with timestamp). Use the Read tool to display the generated image to the user. No Dependencies This skill uses QuickChart.io's free API - no local packages required. Just curl.