by microsoft
🪄 Flint is a visualization language that lets AI agents reliably create expressive, good-looking charts from simple, human-editable chart specs.
# Add to your Claude Code skills
git clone https://github.com/microsoft/flint-chartLast scanned: 7/1/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-07-01T08:13:30.927Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}flint-chart is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by microsoft. 🪄 Flint is a visualization language that lets AI agents reliably create expressive, good-looking charts from simple, human-editable chart specs. It has 3,774 GitHub stars.
Yes. flint-chart passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/microsoft/flint-chart" and add it to your Claude Code skills directory (see the Installation section above).
flint-chart is primarily written in TypeScript. It is open-source under microsoft on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh flint-chart against similar tools.
No comments yet. Be the first to share your thoughts!
Please visit: Flint Project Site | Visual Themes | MCP Server Guide | 中文主页
Flint is a visualization intermediate language that lets AI agents turn simple, human-editable chart specs into expressive, polished visualizations. Rather than requiring agents to hardcode verbose parameters for scales, axes, spacing, labels, and layout, Flint derives those decisions from a high-level semantic specification, the data, and an optional visual theme (e.g., New York Times, Economist, Swiss, and McKinsey). A compact spec compiles to native Vega-Lite, ECharts, Chart.js, Plotly specs, or editable Excel charts.
This repo contains two main components:
flint-chart: a JavaScript/TypeScript library that compiles the same
Flint input into Vega-Lite, ECharts, Chart.js, Plotly, or Excel-native output.flint-chart-mcp: an MCP server that lets agents create, validate, and
render charts directly from a chat or coding environment.Try Flint with your agent using our hosted MCP server. Clients that support
remote HTTP MCP servers include GitHub Copilot in VS Code
(MCP: Add Server → HTTP) and Claude
(Customize → Connectors → Add custom connector). Point either client at:
https://flint.data-formulator.ai/mcp
Then ask your agent to find some public data and visualize it, for example:
Go to Yahoo Finance, find today's percentage change for the Magnificent Seven
tech stocks, and compare their performance with Flint in Economist style.
For a local MCP server (recommended for large datasets), check the MCP Server Guide for details.
Rank, Temperature, Price, or Country.ThemeSpec, or inherited theme.See the changelog for complete release notes.
# Use Flint in your JavaScript/TypeScript codebase
npm install flint-chart
# For agents and MCP clients
npx -y flint-chart-mcp
Every backend accepts the same ChartAssemblyInput and returns the target
library's native spec object.
import { assembleVegaLite } from 'flint-chart';
const spec = assembleVegaLite({
data: { values: myData },
semantic_types: { weight: 'Quantity', mpg: 'Quantity', origin: 'Country' },
chart_spec: {
chartType: 'Scatter Plot',
encodings: { x: { field: 'weight' }, y: { field: 'mpg' }, color: { field: 'origin' } },
baseSize: { width: 400, height: 300 },
},
});
// → a ready-to-render Vega-Lite spec
Swap the backend without changing the input shape:
import { assembleECharts, assembleChartjs, assemblePlotly, assembleExcel } from 'flint-chart';
const echartsOption = assembleECharts(input);
const chartjsConfig = assembleChartjs(input);
const plotlyFigure = assemblePlotly(input);
const excelArtifact = assembleExcel(input);
theme_spec sits beside chart_spec: the chart spec defines what the chart
means, while the theme defines how that meaning is presented. A theme can guide
layout, labels, legends, axes, mark geometry, typography, and color as one
coherent visual system.
Use one of Flint's ten built-in presets:
const themedSpec = assembleVegaLite({
...input,
theme_spec: 'economist',
});
Or inherit a preset and override only the decisions that belong to your brand:
const brandedSpec = assembleVegaLite({
...input,
theme_spec: {
extends: 'economist',
id: 'our-brand',
ink: {
series: { single: '#6b3fa0' },
},
},
});
Nested objects merge; arrays and scalar values replace the inherited value. ThemeSpec currently affects Vega-Lite output. Compare all presets on the theme explorer. See Using themes for the complete custom and inherited-theme reference.
See the API reference, backend references for Vega-Lite, ECharts, Chart.js, Plotly, and Excel, plus the live editor for more library examples.
Install flint-chart-mcp as a Model Context Protocol
server when you want an agent to create charts in the same conversation where
the question starts. It can open an interactive chart view, return static
PNG/SVG output, or produce backend-native chart specs.
For setup, start with the Flint MCP project page. It includes client configuration, usage examples, and links to deeper references.
MCP calls let agents embed rows directly as data.values, or read local JSON,
CSV, or TSV files by data.url. For agent workflows without MC