
Data Formulator
https://github.com/microsoft/data-formulator- Category
- Developer Tools
- Rank
- No. 449Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- microsoft
- GitHub
- 17.1k stars
- Latest release
- 0.8b1
- Date
About
Microsoft Research's AI-assisted visualization tool — describe the chart you want in plain English, drag fields in, and it generates the data transforms and renders the visualization.
What it does
Data Formulator is a browser-based workspace for exploratory analysis. It ingests files, screenshots, text, websites, and connected data systems, then keeps questions, explanations, tables, and charts in a branching conversation. Analysts can refine visual styles, preserve workspaces, and assemble reports.
Why it's ranked here
The compelling part is the complete analysis loop, not merely chart generation. Source connectors, persistent workspaces, editable branches, chart refinement, and reports keep exploration inspectable. Its research-prototype label, large dependency surface, and deployment safety caveats make it better suited to evaluation than unquestioned production adoption.
What's good
It accepts unusually varied inputs and supports many governed systems, including relational databases, document stores, object storage, query engines, and Databricks. Flint compiles semantic chart specifications into multiple rendering systems. Persistent attachments and conversation branches let analysts revisit assumptions instead of restarting an exploration.
Tradeoffs
Local installation requires Python 3.11 or newer and pulls in a broad set of database, cloud, authentication, and analysis packages by default. Browser rendering needs an optional Playwright installation. Multi-user deployments require an isolated sandbox, yet unsafe sandbox configuration currently produces a critical warning rather than blocking startup.
How to use it well
Use it when analysts need a visual, conversational workspace spanning source discovery, exploration, chart refinement, and report creation. Platform teams can configure shared data connections, while analysts branch and preserve findings. It is not presented as a general-purpose data engineering system or an embeddable analytics library.
Technical notes+
pyproject.toml packages a Python 3.11+ Flask application from py-src, exposes the data_formulator console script, and bundles runtime skill definitions. package.json defines a private React 18 and TypeScript frontend built with Vite, with Redux persistence, Material UI, Vitest, Vega-Lite, ECharts, Chart.js, and Flint dependencies. src/index.tsx mounts the React application with Redux persistence. src/i18n/index.ts initializes English and Chinese resources. src/api/knowledgeApi.ts shows an internal JSON-over-HTTP client for knowledge CRUD, search, and workflow distillation. docs/dev-guides/8-path-safety.md specifies confined path resolution, deployment restrictions for local filesystem loaders, isolated sandboxes for multi-user operation, and names backend security tests.
Observed
- License
- MIT
- Languages
- Python backend with a TypeScript and React frontend
- Packaging
- Installable Python package with a console script; frontend is a private Vite package
- Install surfaces
- uvx, pip, Docker Compose, and GitHub Codespaces
- Interface
- Locally served browser application with command-line launch options
- Model providers
- OpenAI, Azure, Ollama, and Anthropic through LiteLLM
- Platform requirement
- Python 3.11 or newer
- Testing structure
- Vitest frontend scripts and documented pytest backend security tests
Read from README.md, package.json, pyproject.toml, requirements.txt, src/index.tsx, src/icons.tsx, src/types.d.ts, src/app/App.tsx, src/i18n/index.ts, src/app/AuthButton.tsx, src/api/knowledgeApi.ts, src/i18n/locales/index.ts, src/i18n/locales/en/index.ts, src/i18n/locales/zh/index.ts, docs/dev-guides/8-path-safety.md.
What it can do
Generate data visualizations from plain English descriptions
Natural language description of desired chart → Data visualization/chart
Create data transformations automatically
Raw data and visualization requirements → Transformed data ready for visualization
Map data fields to visualization elements
Data fields dragged by user → Configured chart with mapped data elements
Render interactive visualizations
Processed data and chart specifications → Interactive data visualization
Interpret user intent for chart creation
User's natural language requests and data context → Chart configuration and parameters
Tags
Tech Stack
Media

Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.