microsoft/flint-chartPublic

🪄 Flint is a visualization language that lets AI agents reliably create expressive, good-looking charts from simple, human-editable chart specs.

AI summary: A visualization intermediate language that lets AI agents create expressive charts from simple specs.

Stars
4.3K
+13 today
Forks
245
Watchers
12
Open issues
14
Open PRs
16
Contributors
~20
Commits
681
Branches
35

TypeScriptMITCreated May 13, 2026Last push 3d agoLatest release 0.5.1+54 stars this week+223 this month

Quick answers

What is flint-chart?
A visualization intermediate language that lets AI agents create expressive charts from simple specs.
What does flint-chart do?
Flint is a visualization language designed specifically for the AI era. It acts as an intermediate layer, allowing AI agents to generate polished, expressive charts from human-readable specifications. It simplifies the process of creating complex data visualizations by bridging the gap between raw data and visual output. It provides a structured format that both LLMs and humans can understand and modify. This enables seamless integration of data visualization capabilities into various AI-driven applications and workflows. The language abstracts away pixel-level rendering logic into high-level declarative design tokens.
Who is flint-chart for?
Developers building AI agents, chatbots, or data tools that need to generate charts dynamically. Data scientists looking for a programmable, AI-friendly way to specify visualizations.
How do I get started with flint-chart?
Check out the Flint Project Site or MCP Server Guide for integration instructions.
How popular is flint-chart on GitHub?
microsoft/flint-chart has 4,329 stars and 245 forks on GitHub, and gained 54 stars in the last 7 days.
What license does flint-chart use?
microsoft/flint-chart is released under the MIT license.

Star history

since Jul 29, 2026
02K4KJul 2026Aug 2026Sep 2026Oct 2026
4.3K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 4 commits2026-02-14: 5 commits2026-02-15: 5 commits2026-02-16: 4 commits2026-02-17: 4 commits2026-02-18: 2 commits2026-02-19: 3 commits2026-02-20: 0 commits2026-02-21: 3 commits2026-02-22: 2 commits2026-02-23: 1 commit2026-02-24: 1 commit2026-02-25: 2 commits2026-02-26: 3 commits2026-02-27: 7 commits2026-02-28: 2 commits2026-03-01: 2 commits2026-03-02: 2 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 1 commit2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 1 commit2026-03-15: 0 commits2026-03-16: 2 commits2026-03-17: 3 commits2026-03-18: 2 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 2 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 1 commit2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 1 commit2026-04-08: 1 commit2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 1 commit2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 2 commits2026-04-22: 4 commits2026-04-23: 2 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 1 commit2026-04-28: 0 commits2026-04-29: 1 commit2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 5 commits2026-05-13: 3 commits2026-05-14: 2 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 1 commit2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 1 commit2026-06-02: 1 commit2026-06-03: 1 commit2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 2 commits2026-06-11: 21 commits2026-06-12: 18 commits2026-06-13: 17 commits2026-06-14: 12 commits2026-06-15: 15 commits2026-06-16: 16 commits2026-06-17: 4 commits2026-06-18: 4 commits2026-06-19: 1 commit2026-06-20: 1 commit2026-06-21: 0 commits2026-06-22: 1 commit2026-06-23: 6 commits2026-06-24: 9 commits2026-06-25: 3 commits2026-06-26: 3 commits2026-06-27: 9 commits2026-06-28: 3 commits2026-06-29: 4 commits2026-06-30: 2 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 2 commits2026-07-08: 2 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 3 commits2026-07-12: 0 commits2026-07-13: 3 commits2026-07-14: 2 commits2026-07-15: 9 commits2026-07-16: 1 commit2026-07-17: 3 commits2026-07-18: 9 commits2026-07-19: 5 commits2026-07-20: 0 commits2026-07-21: 2 commits2026-07-22: 1 commit2026-07-23: 5 commits2026-07-24: 4 commits2026-07-25: 1 commit2026-07-26: 0 commits2026-07-27: 6 commits2026-07-28: 3 commits2026-07-29: 12 commits2026-07-30: 21 commits2026-07-31: 20 commits2026-08-01: 12 commits2026-08-02: 8 commits2026-08-03: 22 commits2026-08-04: 58 commits2026-08-05: 15 commits2026-08-06: 17 commits2026-08-07: 4 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 12 commits2026-08-13: 6 commits2026-08-14: 3 commits2026-08-15: 2 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 3 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 1 commit2026-08-22: 1 commit2026-08-23: 0 commits2026-08-24: 1 commit2026-08-25: 4 commits2026-08-26: 0 commits2026-08-27: 2 commits2026-08-28: 1 commit2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 2 commits2026-09-01: 6 commits2026-09-02: 3 commits2026-09-03: 4 commits2026-09-04: 7 commits2026-09-05: 1 commit2026-09-06: 0 commits2026-09-07: 7 commits2026-09-08: 6 commits2026-09-09: 1 commit2026-09-10: 2 commits2026-09-11: 10 commits2026-09-12: 7 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 3 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 9 commits2026-09-19: 0 commits2026-09-20: 1 commit2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 1 commit2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
598 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    598 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What flint-chart does

Flint is a visualization language designed specifically for the AI era. It acts as an intermediate layer, allowing AI agents to generate polished, expressive charts from human-readable specifications. It simplifies the process of creating complex data visualizations by bridging the gap between raw data and visual output. It provides a structured format that both LLMs and humans can understand and modify. This enables seamless integration of data visualization capabilities into various AI-driven applications and workflows. The language abstracts away pixel-level rendering logic into high-level declarative design tokens.

Developers building AI agents, chatbots, or data tools that need to generate charts dynamically. Data scientists looking for a programmable, AI-friendly way to specify visualizations.

  • AI-native format: Designed to be easily generated and parsed by large language models.
  • Human-editable specs: Uses a simple specification format that developers can easily read and modify.
  • Polished visual output: Renders high-quality, expressive charts from the intermediate representation.
  • MCP Server support: Includes integration guides for Model Context Protocol servers.
  • Cross-platform design: Aims to be a universal intermediate language for data visualization tasks.

Where teams use it

Agentic dashboards

Enabling autonomous AI agents to generate and update data dashboards on the fly.

Chatbot data visualization

Allowing conversational interfaces to present structured data as intuitive charts.

Automated reporting

Generating visual reports from raw datasets without manual chart configuration.

Data exploration tools

Building interfaces where users can ask questions and receive visual answers instantly.

Getting started: Check out the Flint Project Site or MCP Server Guide for integration instructions.

README

main branch

Flint: A Visualization Language for the AI Era

npm: flint-chart npm: flint-chart-mcp arXiv: 2607.20775 CI License: MIT Discord WeChat

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 it in your agent

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.

A wall of charts produced by Flint across its supported visualization backends.

Features

  • Semantic chart specs. Flint captures what each field means using 70+ semantic types such as Rank, Temperature, Price, or Country.
  • Automatic layout. Flint adapts sizing, spacing, labels, marks, and legends to the data cardinality, chart design, and canvas constraints.
  • Formal visual themes. Define layout behavior, semantic presentation, and visual identity once, then apply them across a chart library with a preset, custom ThemeSpec, or inherited theme.
  • Multiple backends. Compile one input to backend-native output across Vega-Lite, ECharts, Chart.js, Plotly, and native Excel charts.
  • Agent-ready chart authoring. The MCP server gives agents Flint tools and chart guidance so they can choose a template, validate it, and open an interactive chart view in MCP-capable clients.

Updates

  • August 12, 2026 — Flint 0.5.1 extends visual themes to the Plotly backend and adds Vega-Lite Calendar Heatmap. (changelog)
  • August 5, 2026 — Flint 0.5.0 introduces a formal theme specification that allows designers and users to define a visual system once and apply it consistently across an entire chart library. (v0.5.0)
  • July 24, 2026 — Flint 0.4.0 adds 38 Plotly chart types and 18 native, editable Excel chart templates. (v0.4.0)
  • July 19, 2026 — Flint 0.3.0 adds dynamic chart widgets that switch chart types and edit chart properties in place. (v0.3.0)
  • July 15, 2026 — Flint 0.2.2 added compact dodge modes and grouped violin layouts.
  • July 13, 2026 — Flint 0.2.1 improved chart-property validation and backend consistency. (v0.2.1)

See the changelog for complete release notes.

Flint compiling a compact chart spec into a Vega-Lite spec and rendered heatmap visualization.
Flint turns compact chart specs into backend-native specs and rendered visualizations.

Install

# Use Flint in your JavaScript/TypeScript codebase
npm install flint-chart

# For agents and MCP clients
npx -y flint-chart-mcp

Python package: to be released. The current Python port is a source-only preview in this repo.

Use Flint As A Library

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);

Apply Visual Themes

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.

Twelve charts rendered with Flint's Economist theme.
Economist — compact editorial graphics with a strong red accent.

Twelve charts rendered with Flint's Swiss theme.
Swiss — typographic structure, restrained color, and a clear visual grid.

Twelve charts rendered with Flint's Pop theme.
Pop — bold color, emphatic marks, and playful graphic contrast.

See the API reference, backend references for Vega-Lite, ECharts, Chart.js, Plotly, and Excel, plus the live editor for more library examples.

Use Flint As An MCP Server

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.

Agent chat showing Flint Chart as an MCP App with a grouped bar chart preview and chart options.

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 MCP, use the standalone agent skill.

Repository overview

flint-chart/
├── packages/
│   ├── flint-js/            npm package `flint-chart` (TypeScript)
│   │   └── src/
│   │       ├── core/        semantics, themes, layout, decisions, shared types
│   │       ├── chart-types/ shared chart definitions and template metadata
│   │       ├── vegalite/    Vega-Lite backend
│   │       ├── echarts/     ECharts backend
│   │       ├── chartjs/     Chart.js backend
│   │       ├── plotly/      Plotly backend
│   │       ├── excel/       native Excel backend
│   │       ├── gallery/     gallery assembly and generated references
│   │       └── test-data/   fixtures and stress-test generators
│   ├── flint-mcp/           MCP server, MCP App UI, assets, and tests
│   └── flint-py/            Python port preview (package to be released)
├── site/                    Vite + React project site, gallery, editor, and docs
├── agent-skills/            chart- and theme-authoring skills for agents
├── agents/                  agent and MCP server configuration
├── shared/test-data/        JSON fixtures shared across JS and Python
├── scripts/                 reference generation and theme audit tooling
├── docs/                    user, API, backend, and architecture documentation
└── design-docs/             design proposals and implementation research

Documentation

The project site is the main entry point for examples, the live editor, and concept docs. For source-level references, start with the API reference, the theme guide, the Flint MCP project page, or the Development guide. See the changelog for notable changes in each release.


Contributing

Contributions are welcome! See .github/CONTRIBUTING.md and the Development guide.

git clone https://github.com/microsoft/flint-chart
cd flint-chart
npm install            # root workspaces: packages/flint-js + flint-mcp + site

npm run typecheck      # typecheck packages/flint-js + packages/flint-mcp
npm run test           # Vitest (packages/flint-js + packages/flint-mcp)
npm run build          # build packages/flint-js + packages/flint-mcp
npm run site           # demo site (gallery + editor) at http://localhost:5274/

Node 18+ is required. The demo site aliases flint-chart to packages/flint-js/src, so library edits hot-reload in the gallery and editor without rebuilding dist/.

We especially welcome contributions that add new chart templates or new rendering backends.

This project has adopted the Microsoft Open Source Code of Conduct. See SECURITY.md to report vulnerabilities.

Contributor

Flint is built by Microsoft Research in collaboration with the IDEAS Lab, Renmin University of China. We welcome you to join us — see Contributing to get involved.

Community

Chat with the team and other users:

  • Discord — join the server
  • WeChat — scan the QR code to join the user group

Flint WeChat user group QR code

A research paper describing Flint is coming soon.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos is subject to those third parties' policies.

License

MIT © Microsoft Corporation

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

6 total
  1. 0.5.10.5.1Aug 14, 2026

    ## flint-chart 0.5.1 **Added** - **Plotly theme support** — `theme_spec` now realizes onto Plotly figures. - **Calendar Heatmap** chart type for Vega-Lite. **Titles** - Headlines *and* decks are fitted instead of widening the graphic, with or without a theme. - Axis titles lie flat at the head of their own ruler; units are stated once. **Grid and scales** - Gridded axes round so the plot edge lands on a grid line, and the grid runs out to its number. - A chart is never left with no way to read a value — where nothing is printed, the grid returns. **Houses** — Economist type recalibrated; McKinsey's tick labels no longer outrank its subtitle. **Security** — react-router CSRF and two other high-severity dev alerts resolved; production audit clean. **Full changelog:** https://github.com/microsoft/flint-chart/compare/0.5...0.5.1 New contributor: @zl190

  2. Flint 0.5: ThemeSpec0.5Aug 6, 2026

    Flint 0.5 introduces `ThemeSpec`, a formal specification for applying a coherent design system across an entire chart library. Instead of requiring creators or agents to reproduce design guidance chart by chart, a ThemeSpec participates directly in compilation and adapts to the chart's semantics, data, cardinality, and available space. A ThemeSpec shapes compilation in three stages. Using resolved semantic information, it: - governs layout constraints and dynamics, including density, spacing, sizing, and stretch limits; - conditionally resolves visual preferences for labels, legends, axes, annotations, and semantic roles; and - supplies design fixtures such as typography, color, surfaces, mark geometry, and structural line styles to backend-specific code generation. <p align="center"> <img width="100%" alt="ThemeSpec shaping the Flint compilation process through resolved semantics, layout constraints, visual preferences, and design fixtures." src="https://raw.githubusercontent.com/microsoft/flint-chart/2f147ef3d068a8ecf26ec10ad0a50c01c862f0ab/docs/figs/theme-spec-expl.png" /> <br> <sub>ThemeSpec participates throughout compilation, from resolved semantics and la

  3. Flint 0.40.4.0Jul 24, 2026

    ### Update 1: new plotly backend <img width="1240" height="829" alt="image" src="https://github.com/user-attachments/assets/a3514130-ad06-48e8-8458-9e828f6e50f2" /> ### Update 2: dynamic widget for chart type switch in the mcp server <img width="1090" height="466" alt="image" src="https://github.com/user-attachments/assets/3039761c-6d6c-456b-b6ab-66cf94c8069f" /> ### Update 3: Research paper Read it here, maybe also share and cite.. [https://arxiv.org/abs/2607.20775](https://arxiv.org/abs/2607.20775) ### Update 4: new Excel backend <img width="925" height="745" alt="image" src="https://github.com/user-attachments/assets/c6007787-2a1d-4845-a574-ad5911f499cb" />

  4. Flint 0.30.3.0Jul 19, 2026

    Flint 0.3 makes charts easier to explore after they are created. The MCP App can now switch chart types and edit chart properties in place, while the original Flint spec stays compact and readable. ### Explore chart types Move between compatible views without rebuilding the chart. For example, turn a dense Line Chart of food prices into compact Sparkline rows for easier comparison. Flint preserves the data roles and derives the details for the new chart type. <img width="1086" alt="Switching a line chart to a Sparkline in the Flint MCP App" src="https://github.com/user-attachments/assets/f9194ec7-65ab-4120-aca7-09328db8d39a" /> ### Edit chart properties Edit common properties directly in the widget. For example, turn labels on in a correlation heatmap to reveal the value in every cell. Controls adapt to the selected chart and backend, and changes appear immediately. <img width="1091" alt="Turning labels on for a heatmap in the Flint MCP App" src="https://github.com/user-attachments/assets/2915bf55-a55d-4ad1-a7d7-e660732c0b46" /> ### Flint in Chinese The website and documentation are now available in Chinese, including guides for getting started, authoring ch

  5. Flint 0.20.2.1Jul 13, 2026

    ## What's Changed * Prepare 0.1.2 patch release by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/36 * Update Flint public title by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/38 * Restore AI-era title and simplify MCP setup by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/39 * MCP: trust-by-default file access via --disable-file-reference by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/41 * Dev by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/44 * Dev by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/46 * Fix Rose Chart area encoding: use sqrt radius on ECharts and Chart.js to match Vega-Lite by @Chenglong-MS with @Copilot in https://github.com/microsoft/flint-chart/pull/51 * Validate discrete chartProperties values; docs show accepted values not labels by @Chenglong-MS with @Copilot in https://github.com/microsoft/flint-chart/pull/52 * Dev by @Chenglong-MS in https://github.com/microsoft/flint-chart/pull/53 **Full Changelog**: https://github.com/microsoft/flint-chart/compare/0.1.1...0.2.1

Code frequency

additions and deletions
+3.8M-3.8MWeek of 2026-02-08: +12,107 linesWeek of 2026-02-08: -862 linesWeek of 2026-02-15: +32,750 linesWeek of 2026-02-15: -11,198 linesWeek of 2026-02-22: +12,816 linesWeek of 2026-02-22: -5,905 linesWeek of 2026-03-01: +10,575 linesWeek of 2026-03-01: -2,451 linesWeek of 2026-03-08: +1,198 linesWeek of 2026-03-08: -255 linesWeek of 2026-03-15: +1,000 linesWeek of 2026-03-15: -459 linesWeek of 2026-03-22: +803 linesWeek of 2026-03-22: -33 linesWeek of 2026-03-29: +461 linesWeek of 2026-03-29: -5,932 linesWeek of 2026-04-05: +21 linesWeek of 2026-04-05: -7 linesWeek of 2026-04-12: +17 linesWeek of 2026-04-12: -147 linesWeek of 2026-04-19: +2,362 linesWeek of 2026-04-19: -594 linesWeek of 2026-04-26: +24 linesWeek of 2026-04-26: -13 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +55,815 linesWeek of 2026-05-10: -42,046 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +3,010 linesWeek of 2026-05-24: -362 linesWeek of 2026-05-31: +766 linesWeek of 2026-05-31: -125 linesWeek of 2026-06-07: +3,801,154 linesWeek of 2026-06-07: -1,894,961 linesWeek of 2026-06-14: +73,186 linesWeek of 2026-06-14: -75,401 linesWeek of 2026-06-21: +21,074 linesWeek of 2026-06-21: -13,129 linesWeek of 2026-06-28: +1,350 linesWeek of 2026-06-28: -1,668 linesWeek of 2026-07-05: +559 linesWeek of 2026-07-05: -109 linesWeek of 2026-07-12: +19,361 linesWeek of 2026-07-12: -3,317 linesWeek of 2026-07-19: +141,211 linesWeek of 2026-07-19: -4,301 linesWeek of 2026-07-26: +75,142 linesWeek of 2026-07-26: -14,200 linesWeek of 2026-08-02: +22,608 linesWeek of 2026-08-02: -5,865 linesWeek of 2026-08-09: +7,865 linesWeek of 2026-08-09: -1,582 linesWeek of 2026-08-16: +2,212 linesWeek of 2026-08-16: -215 linesWeek of 2026-08-23: +22,972 linesWeek of 2026-08-23: -4,703 linesWeek of 2026-08-30: +21,807 linesWeek of 2026-08-30: -2,637 linesWeek of 2026-09-06: +9,682 linesWeek of 2026-09-06: -1,530 linesWeek of 2026-09-13: +2,510 linesWeek of 2026-09-13: -1,643 linesWeek of 2026-09-20: +148 linesWeek of 2026-09-20: -7 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesFeb 8, 2026Sep 27, 2026
+4.4M lines added, -2.1M removed over the last year.

Commits per week

last 52 weeks
1240Week of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 9 commitsWeek of 2026-02-15: 21 commitsWeek of 2026-02-22: 18 commitsWeek of 2026-03-01: 5 commitsWeek of 2026-03-08: 1 commitsWeek of 2026-03-15: 7 commitsWeek of 2026-03-22: 2 commitsWeek of 2026-03-29: 1 commitsWeek of 2026-04-05: 2 commitsWeek of 2026-04-12: 1 commitsWeek of 2026-04-19: 8 commitsWeek of 2026-04-26: 2 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 10 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 1 commitsWeek of 2026-05-31: 3 commitsWeek of 2026-06-07: 58 commitsWeek of 2026-06-14: 53 commitsWeek of 2026-06-21: 31 commitsWeek of 2026-06-28: 9 commitsWeek of 2026-07-05: 7 commitsWeek of 2026-07-12: 27 commitsWeek of 2026-07-19: 18 commitsWeek of 2026-07-26: 74 commitsWeek of 2026-08-02: 124 commitsWeek of 2026-08-09: 23 commitsWeek of 2026-08-16: 5 commitsWeek of 2026-08-23: 8 commitsWeek of 2026-08-30: 23 commitsWeek of 2026-09-06: 33 commitsWeek of 2026-09-13: 12 commitsWeek of 2026-09-20: 2 commitsWeek of 2026-09-27: 0 commitsOct 4, 2025Sep 27, 2026
598 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 2 commitsSun 2:00 — 1 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 1 commitsSun 7:00 — 4 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 2 commitsSun 11:00 — 1 commitsSun 12:00 — 2 commitsSun 13:00 — 3 commitsSun 14:00 — 2 commitsSun 15:00 — 0 commitsSun 16:00 — 3 commitsSun 17:00 — 8 commitsSun 18:00 — 2 commitsSun 19:00 — 3 commitsSun 20:00 — 0 commitsSun 21:00 — 1 commitsSun 22:00 — 0 commitsSun 23:00 — 0 commitsMon 0:00 — 7 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 1 commitsMon 9:00 — 0 commitsMon 10:00 — 2 commitsMon 11:00 — 3 commitsMon 12:00 — 3 commitsMon 13:00 — 11 commitsMon 14:00 — 4 commitsMon 15:00 — 6 commitsMon 16:00 — 6 commitsMon 17:00 — 5 commitsMon 18:00 — 5 commitsMon 19:00 — 3 commitsMon 20:00 — 1 commitsMon 21:00 — 9 commitsMon 22:00 — 3 commitsMon 23:00 — 2 commitsTue 0:00 — 1 commitsTue 1:00 — 2 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 1 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 2 commitsTue 9:00 — 2 commitsTue 10:00 — 6 commitsTue 11:00 — 5 commitsTue 12:00 — 4 commitsTue 13:00 — 8 commitsTue 14:00 — 6 commitsTue 15:00 — 5 commitsTue 16:00 — 5 commitsTue 17:00 — 27 commitsTue 18:00 — 8 commitsTue 19:00 — 0 commitsTue 20:00 — 1 commitsTue 21:00 — 4 commitsTue 22:00 — 17 commitsTue 23:00 — 26 commitsWed 0:00 — 9 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 1 commitsWed 4:00 — 1 commitsWed 5:00 — 1 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 0 commitsWed 10:00 — 3 commitsWed 11:00 — 4 commitsWed 12:00 — 1 commitsWed 13:00 — 5 commitsWed 14:00 — 6 commitsWed 15:00 — 9 commitsWed 16:00 — 3 commitsWed 17:00 — 9 commitsWed 18:00 — 4 commitsWed 19:00 — 2 commitsWed 20:00 — 2 commitsWed 21:00 — 4 commitsWed 22:00 — 14 commitsWed 23:00 — 11 commitsThu 0:00 — 4 commitsThu 1:00 — 5 commitsThu 2:00 — 0 commitsThu 3:00 — 1 commitsThu 4:00 — 3 commitsThu 5:00 — 2 commitsThu 6:00 — 3 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 6 commitsThu 10:00 — 3 commitsThu 11:00 — 3 commitsThu 12:00 — 1 commitsThu 13:00 — 12 commitsThu 14:00 — 3 commitsThu 15:00 — 5 commitsThu 16:00 — 8 commitsThu 17:00 — 6 commitsThu 18:00 — 9 commitsThu 19:00 — 2 commitsThu 20:00 — 3 commitsThu 21:00 — 8 commitsThu 22:00 — 3 commitsThu 23:00 — 8 commitsFri 0:00 — 9 commitsFri 1:00 — 2 commitsFri 2:00 — 0 commitsFri 3:00 — 1 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 3 commitsFri 8:00 — 5 commitsFri 9:00 — 5 commitsFri 10:00 — 4 commitsFri 11:00 — 3 commitsFri 12:00 — 5 commitsFri 13:00 — 4 commitsFri 14:00 — 7 commitsFri 15:00 — 7 commitsFri 16:00 — 4 commitsFri 17:00 — 9 commitsFri 18:00 — 3 commitsFri 19:00 — 4 commitsFri 20:00 — 5 commitsFri 21:00 — 6 commitsFri 22:00 — 7 commitsFri 23:00 — 5 commitsSat 0:00 — 4 commitsSat 1:00 — 2 commitsSat 2:00 — 1 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 4 commitsSat 6:00 — 2 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 3 commitsSat 10:00 — 4 commitsSat 11:00 — 4 commitsSat 12:00 — 2 commitsSat 13:00 — 0 commitsSat 14:00 — 3 commitsSat 15:00 — 8 commitsSat 16:00 — 2 commitsSat 17:00 — 16 commitsSat 18:00 — 2 commitsSat 19:00 — 0 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 4 commitsSat 23:00 — 17 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 17, 2026daily#20+5
Jul 9, 2026daily#18+4
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • anomalyco/opencode

    The open source coding agent.

    211.7K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript