skills/chart-generator/SKILL.md
Generate charts and visualizations from data sources
npx skillsauth add ticruz38/skills skills/chart-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate beautiful charts and visualizations from data sources. Supports bar, line, pie, doughnut, and area charts with customizable themes and export options.
npm install
npm run build
No additional configuration required. Charts are generated locally with no external API dependencies.
# Generate a bar chart from JSON data
npm run cli -- generate bar --data sales.json --output chart.svg --title "Sales Report"
# Generate a line chart from data connection
npm run cli -- from-connection 1 --label-column "Month" --value-column "Revenue" --type line --output revenue.svg
# Generate a pie chart
npm run cli -- generate pie --data categories.json --output pie.svg --theme colorful
# Save a template
npm run cli -- template save monthly-sales --type bar --title "Monthly Sales" --width 1000
# List templates
npm run cli -- template list
# Generate from template
npm run cli -- template generate monthly-sales --output report.svg
# Check health
npm run cli -- health
import { ChartGeneratorSkill, ChartConfig, DataPoint } from '@openclaw/chart-generator';
const skill = new ChartGeneratorSkill();
// Generate from data
const data: DataPoint[] = [
{ label: 'Jan', value: 100 },
{ label: 'Feb', value: 150 },
{ label: 'Mar', value: 200 }
];
const config: ChartConfig = {
type: 'bar',
title: 'Monthly Sales',
width: 800,
height: 600,
theme: 'light'
};
const result = skill.generateChart(data, config);
// Save to file
skill.saveChart(result, 'chart.svg');
// Or get embeddable HTML
const html = skill.generateEmbeddableCode(result);
// Close
await skill.close();
// Generate chart from cached data connector data
const result = await skill.generateFromConnection(
1, // connection ID
'Month', // label column
'Revenue', // value column
{
type: 'line',
title: 'Revenue Trend',
theme: 'colorful'
}
);
skill.saveChart(result, 'revenue.svg');
// Save a template
await skill.saveTemplate({
name: 'monthly-sales',
type: 'bar',
config: {
type: 'bar',
title: 'Monthly Sales',
width: 1000,
height: 600
},
dataSource: {
connectionId: 1,
labelColumn: 'Month',
valueColumn: 'Sales'
}
});
// Generate from template
const result = await skill.generateFromTemplate('monthly-sales');
skill.saveChart(result, 'output.svg');
// List templates
const templates = await skill.listTemplates();
JSON data file format:
[
{ "label": "January", "value": 1000 },
{ "label": "February", "value": 1500 },
{ "label": "March", "value": 1200 }
]
For multi-series charts:
[
{
"name": "Product A",
"data": [
{ "label": "Q1", "value": 100 },
{ "label": "Q2", "value": 150 }
]
},
{
"name": "Product B",
"data": [
{ "label": "Q1", "value": 80 },
{ "label": "Q2", "value": 200 }
]
}
]
const config: ChartConfig = {
type: 'bar',
colors: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#96CEB4']
};
rsvg-convert (librsvg)Example PNG conversion:
rsvg-convert chart.svg -o chart.png
testing
Suggest recipes based on dietary preferences, available ingredients, and cuisine preferences
development
Extract data from receipt photos using Google Vision API
business
QuickBooks Online integration for accounting sync - sync customers, invoices, and transactions with two-way sync and conflict resolution
testing
QuickBooks OAuth adapter for QuickBooks Online accounting integration. Built on top of auth-provider for secure token management with automatic refresh, multi-profile support, sandbox/production toggle, and health checks.