microsoft/data-formulatorPublic

๐Ÿช„ Data Formulator is an interactive AI-powered data analysis system makes it easy to connect, explore and visualize data.

Stars
17.1K
Forks
1.7K
Watchers
114
Open issues
54
Open PRs
50
Contributors
~37
Commits
1.4K
Branches
69

PythonMITCreated Jun 7, 2024Last push todayLatest release 0.8b1

Star history

since Sep 28, 2025
05K10K15KSep 2025Jan 2026May 2026Sep 2026
17.1K stars as of Sep 14, 2026, tracked back to Sep 28, 2025. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Signals and awards

derived from tracked data
  • Widely adopted

    17,136 stars

  • Actively maintained

    Pushed within 48 hours

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

README

main branch

Data Formulator iconย  Data Formulator: AI-powered Data Visualization

๐Ÿช„ Explore data with visualizations, powered by AI agents.

Try Online Demo ย  Install Locally

PyPIโ€‚ License: MITโ€‚ YouTubeโ€‚ buildโ€‚ Discord

Why Data Formulator?

Working with data is hard for two simple reasons:

  1. Data lives everywhere. Connecting agents to files, databases, warehouses, and BI tools takes time. It is even harder when agents start answering before the relationships between data sources are clear.
  2. Questions evolve as you explore. Each answer can lead to follow-up questions, comparisons, and new directions. A long chat history makes it hard to see where you are and how you got there.

Data Formulator provides one visual workspace for exploring and analyzing data:

  1. Data connectors give agents a common way to connect to different data sources and maintains a data memory to remember the relationships between them.
  2. Data Threads let you branch into different questions, compare paths, and use visualizations to discover deeper insights without losing context.
Data.Formulator-0.7-1080p.mp4

Tip

Love the charts? They're built on Flint. It's an open-source visualization language that compiles compact chart specs into polished visualizations.

News ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

[08-15-2026] Data Formulator 0.8 beta 1 (0.8.0b1) introduces:

  • One unified flow: load data, ask questions, review results, and branch in the Data Thread.
  • More data sources: use files, local folders, databases, and platforms such as Databricks.
  • Better charts: explore more Flint-powered charts, recommendations, themes, and styling tools.

Preview with pip install --pre data_formulator==0.8.0b1 or uvx data_formulator@0.8.0b1. Install the latest stable release (0.7) with pip install data_formulator or run instantly with uvx data_formulator.

See the changelog for release details.

Previous Updates

Here are milestones that lead to the current design:

  • v0.7 (05-28-2026): Turn ANY data into insights in five steps โ€” connect governed data sources, load via agents, explore with the unified DataAgent + Data Thread, refine 30+ chart types (semantic chart engine powered by Flint) with a style-refinement agent, and share as reports. Plus persistent sessions & workspaces and a multilingual (English/Chinese) UI.
  • v0.6 (Demo): Real-time insights from live data โ€” connect to URLs and databases with automatic refresh
  • uv support: Faster installation with uv โ€” uvx data_formulator or uv pip install data_formulator
  • v0.5.1 (Demo): Community data loaders, US Map & Pie Chart, editable reports, snappier UI
  • v0.5: Vibe with your data, in control โ€” agent mode, data extraction, reports
  • v0.2.2 (Demo): Goal-driven exploration with agent recommendations and performance improvements
  • v0.2.1.3/4 (Readme | Demo): External data loaders (MySQL, PostgreSQL, MSSQL, Azure Data Explorer, S3, Azure Blob)
  • v0.2 (Demos): Large data support with DuckDB integration
  • v0.1.7 (Demos): Dataset anchoring for cleaner workflows
  • v0.1.6 (Demo): Multi-table support with automatic joins
  • Model Support: OpenAI, Azure, Ollama, Anthropic via LiteLLM (feedback)
  • Python Package: Easy local installation (try it)
  • Visualization Challenges: Test your skills (challenges)
  • Data Extraction: Parse data from images and text (demo)
  • Initial Release: Blog | Video

Overview

Data Formulator is a Microsoft Research project for data exploration with visualizations powered by AI agents. It combines UI interactions with natural language so analysts can communicate intent, branch into alternative analyses, and share results โ€” starting from any data format (screenshot, text, CSV, or database).

Get Started

Play with Data Formulator with one of the following options.

Desktop downloads

CI builds self-contained Windows and macOS applications for pull requests and every update to main. Download the latest archives from the Artifacts section of the most recent desktop builds workflow. Workflow artifacts are retained for 30 days. Tagged builds are also attached as permanent downloads to the corresponding GitHub Release.

Extract the archive, then launch Data Formulator using the instructions for your operating system:

  • Windows: Run Data Formulator.exe. If Microsoft Defender SmartScreen appears, select More info, verify that you downloaded the archive from this repository, and then select Run anyway.
  • macOS: Move Data Formulator.app to Applications. The first time you open it, macOS may report that Apple could not verify the app. Open System Settings โ†’ Privacy & Security, scroll to Security, and select Open Anyway for Data Formulator. Confirm by selecting Open when prompted.

Warning

These are automated preview builds and are not currently code-signed or notarized. Only bypass the operating-system warning when the archive was downloaded directly from this repository's workflow artifacts or releases.

  • Option 1: Install via uv (recommended)

    uv is an extremely fast Python package manager. If you have uv installed, you can run Data Formulator directly without any setup:

    uvx data_formulator

    Run uvx data_formulator --help to see all available options, such as custom port, sandboxing mode, and data storage location.

  • Option 2: Install via pip

    Use pip for installation (recommend: install it in a virtual environment).

    pip install data_formulator # install
    python -m data_formulator # run

    Data Formulator will be automatically opened in the browser at http://localhost:5567.

  • Option 3: Run with Docker

    docker compose up --build

    Open http://localhost:5567 in your browser. To stop, press Ctrl+C or run docker compose down.

  • Option 4: Working as developer

    You can build Data Formulator locally and develop your own version. Check out details in DEVELOPMENT.md.

Using Data Formulator

Start with the data you already have: upload CSV, TSV, Excel, JSON, screenshots, or text; connect to databases and data platforms; or ask the analyst to find and load the data you need. The analyst can discover sources, clarify your request, propose a loading plan, and let you review the data before adding it to the workspace.

Continue the conversation in the Data Thread. Ask questions in natural language and follow the reasoning through explanations, tables, and editable charts in one history. Refine a result directly, branch from any earlier step to explore an alternative, or delegate the next investigation to the analyst. When the analysis is ready, compose the results into a report to share.

data-formulator-tutorial.mp4

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

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 are subject to those third-party's policies.

View on GitHub

Recent activity

commits and pull requests

Discussions

all 4

Releases and announcements

14 total
  1. Data Formulator 0.8b10.8b1Aug 15, 2026414 downloads

    This beta introduces a more polished and consistent Data Formulator experience, with improved workspace and session management, streamlined data connector workflows, responsive high-resolution layouts, and refined chart themes and controls. It also expands connector and authentication support, improves persistence and desktop packaging, and includes broad reliability, accessibility, and release automation updates. We welcome feedback as we work toward the stable 0.8 release. <img width="1477" height="932" alt="image" src="https://github.com/user-attachments/assets/1bc525c4-dfb8-4884-a3c0-6a81896a84f1" /> ## What's Changed * readme by @Chenglong-MS in https://github.com/microsoft/data-formulator/pull/355 * test: keep zh locale keys aligned by @cat0825 in https://github.com/microsoft/data-formulator/pull/357 * Mini analyst agent by @Chenglong-MS in https://github.com/microsoft/data-formulator/pull/367 * Dev by @Chenglong-MS in https://github.com/microsoft/data-formulator/pull/370 * fix(security): systematic Dependabot & code-scanning follow-up by @Chenglong-MS with @Copilot in https://github.com/microsoft/data-formulator/pull/380 * fix(mysql-loader): refresh REPEATABLE RE

  2. Data Formulator 0.70.7.0May 28, 2026

    # Data Formulator 0.7 ๐ŸŽ‰ https://github.com/user-attachments/assets/8e4f8a08-6423-4227-a1f7-559e0126ce31 **Turn any data into insights in five easy steps.** Try it at [data-formulator.ai](https://data-formulator.ai/) ยท Install with `pip install data-formulator==0.7.0` **1. ๐Ÿ”Œ Connect.** Persistent connectors for Superset, Kusto, Cosmos DB, MySQL, PostgreSQL, MSSQL, BigQuery, S3, Azure Blob โ€” with SSO, search, and smart filters. New plugin framework makes adding more a drop-in folder. **2. ๐Ÿค– Load.** Ask the new **data-loading agent** to find the right tables, plan multi-table loads, and pull data in โ€” straight from chat. **3. ๐Ÿ’ฌ Explore.** A unified **conversational agent** with thread memory weaves explanation, exploration, visualization, and recommendation into one fluid conversation. **4. ๐ŸŽจ Refine.** 30+ chart types via a new semantic chart engine, plus a **style-refinement agent** that turns rough charts into presentation-ready visuals through natural language. **5. ๐Ÿ“ค Share.** Build and export reports as image or PDF to tell the story. โž• ๐Ÿ—‚๏ธ **Persistent sessions & workspaces** โ€” identity-isolated, saved across restarts. Data Formulator is now you

  3. Data Formulator 0.7-alpha 20.7-alpha.2May 13, 2026

    Can't explain how exited we are. :) Data Formulator now supports persistent data connection (easy data loading), session management (easy switch and save sessions), full agentic experience, and ability to custom chart styles. ๐Ÿ˜„ If you are one of the few reading this release note, please play with it! I might actually be really good. :) * play with it at [https://data-formulator.ai/](https://data-formulator.ai/). * but for full experience, install it with `pip install data-formulator==0.7.0a2` to test out. The full release will come soon.... -- a message from @Chenglong-MS and @zhb-ai (also thanks to contributions from @WolffM @IAMkecheng) ## A new chapter for AI-powered data exploration - ๐Ÿ”Œ **Data connectors** โ€” first-class persistent connection to Superset, Kusto, Cosmos DB, MySQL, PostgreSQL, MSSQL, S3, Azure Blob, BigQuery, and more, with SSO, lazy catalog loading, search, and smart filters. - ๐Ÿ’ฌ **Conversational agent with thread memory** โ€” a unified `DataAgent` that weaves explanation, exploration, visualization, and recommendation into one fluid conversation, carrying context across turns so the agent stays in sync with your train of thought. - ๐Ÿ—‚๏ธ **P

  4. Data Formulator 0.7-alpha0.7-alphaMar 3, 2026

    # More Charts, New Experience, Enterprise-Ready ๐Ÿšง *This version is in fact a big redesign, probably deserves v1.0. But for now, we're shipping this as 0.7-alpha for fun --- a proper, detailed write-up on the new architecture is coming soon. * <img width="1200" alt="Data Formulator 0.7.0 Alpha" src="https://github.com/user-attachments/assets/3ffb15aa-93ce-42b8-92cf-aaf321f9a06a" /> > **Version**: `0.7.0a1` (alpha) ยท **Files changed**: ~282 ยท **+84k / โˆ’16k lines** --- ## What's New ### ๐Ÿ“Š Dramatically Expanded Visualization Support The chart template system has been rebuilt with a new semantic engine, expanding from ~15 chart types to **30 Vega-Lite chart types**: <img width="600" alt="Chart types overview" src="https://github.com/user-attachments/assets/c1c20223-882e-4081-9b86-d5e1ece8a1ca" /> | Category | Chart Types | |---|---| | **Scatter & Point** | Scatter Plot, Regression, Boxplot, Strip Plot *(new)*, Ranged Dot Plot | | **Bar** | Bar Chart, Grouped Bar Chart, Stacked Bar Chart, Histogram, Lollipop Chart *(new)*, Pyramid Chart, Heatmap | | **Line & Area** | Line Chart, Dotted Line Chart, Bump Chart *(new)*, Area Chart *(new)*, Streamgraph *(ne

  5. ### โšก โšก Real-time insights from live data - Connect to URLs and databases with automatic refresh intervals. - Visualizations update automatically as your data changes to provide you live insights. ### Demo: Track International Space Station Position Speed Live (unmute for audio intro) https://github.com/user-attachments/assets/791c8fe5-154f-4b2f-99df-c21ab1342a52 ### How to work with live data When loading data from URLs and databases, enable watch mode so it automatically loads new data when updates are available. <img width="1790" height="502" alt="Watch mode settings for live data" src="https://github.com/user-attachments/assets/a9f45f1c-ce7c-4b28-ae30-89487137f200" /> Explore data as you typically do, using agent mode or interactive mode. And enjoy a set of live visualizations that provides you real-time insights as data gets updated. When you create a report from the visualization, you also benefit from the live updates in the report. To make it easier to play with live features, we created a few examples in the Load Data from URLs section, so you can play with live data easily: - **Stock data** (based on [yfinance](https://github.com/ranaroussi/yfin

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 โ€” 6 commitsSun 1:00 โ€” 3 commitsSun 2:00 โ€” 1 commitsSun 3:00 โ€” 3 commitsSun 4:00 โ€” 0 commitsSun 5:00 โ€” 3 commitsSun 6:00 โ€” 0 commitsSun 7:00 โ€” 0 commitsSun 8:00 โ€” 0 commitsSun 9:00 โ€” 5 commitsSun 10:00 โ€” 2 commitsSun 11:00 โ€” 3 commitsSun 12:00 โ€” 3 commitsSun 13:00 โ€” 3 commitsSun 14:00 โ€” 7 commitsSun 15:00 โ€” 4 commitsSun 16:00 โ€” 6 commitsSun 17:00 โ€” 9 commitsSun 18:00 โ€” 7 commitsSun 19:00 โ€” 7 commitsSun 20:00 โ€” 1 commitsSun 21:00 โ€” 5 commitsSun 22:00 โ€” 2 commitsSun 23:00 โ€” 3 commitsMon 0:00 โ€” 2 commitsMon 1:00 โ€” 1 commitsMon 2:00 โ€” 7 commitsMon 3:00 โ€” 6 commitsMon 4:00 โ€” 2 commitsMon 5:00 โ€” 3 commitsMon 6:00 โ€” 0 commitsMon 7:00 โ€” 0 commitsMon 8:00 โ€” 0 commitsMon 9:00 โ€” 1 commitsMon 10:00 โ€” 5 commitsMon 11:00 โ€” 6 commitsMon 12:00 โ€” 3 commitsMon 13:00 โ€” 5 commitsMon 14:00 โ€” 16 commitsMon 15:00 โ€” 13 commitsMon 16:00 โ€” 16 commitsMon 17:00 โ€” 22 commitsMon 18:00 โ€” 25 commitsMon 19:00 โ€” 5 commitsMon 20:00 โ€” 11 commitsMon 21:00 โ€” 7 commitsMon 22:00 โ€” 2 commitsMon 23:00 โ€” 6 commitsTue 0:00 โ€” 6 commitsTue 1:00 โ€” 8 commitsTue 2:00 โ€” 8 commitsTue 3:00 โ€” 3 commitsTue 4:00 โ€” 0 commitsTue 5:00 โ€” 0 commitsTue 6:00 โ€” 0 commitsTue 7:00 โ€” 3 commitsTue 8:00 โ€” 3 commitsTue 9:00 โ€” 3 commitsTue 10:00 โ€” 10 commitsTue 11:00 โ€” 8 commitsTue 12:00 โ€” 2 commitsTue 13:00 โ€” 7 commitsTue 14:00 โ€” 7 commitsTue 15:00 โ€” 15 commitsTue 16:00 โ€” 15 commitsTue 17:00 โ€” 19 commitsTue 18:00 โ€” 16 commitsTue 19:00 โ€” 4 commitsTue 20:00 โ€” 6 commitsTue 21:00 โ€” 6 commitsTue 22:00 โ€” 13 commitsTue 23:00 โ€” 11 commitsWed 0:00 โ€” 11 commitsWed 1:00 โ€” 2 commitsWed 2:00 โ€” 4 commitsWed 3:00 โ€” 3 commitsWed 4:00 โ€” 3 commitsWed 5:00 โ€” 0 commitsWed 6:00 โ€” 0 commitsWed 7:00 โ€” 0 commitsWed 8:00 โ€” 3 commitsWed 9:00 โ€” 6 commitsWed 10:00 โ€” 7 commitsWed 11:00 โ€” 10 commitsWed 12:00 โ€” 6 commitsWed 13:00 โ€” 7 commitsWed 14:00 โ€” 17 commitsWed 15:00 โ€” 21 commitsWed 16:00 โ€” 25 commitsWed 17:00 โ€” 23 commitsWed 18:00 โ€” 12 commitsWed 19:00 โ€” 4 commitsWed 20:00 โ€” 4 commitsWed 21:00 โ€” 7 commitsWed 22:00 โ€” 9 commitsWed 23:00 โ€” 4 commitsThu 0:00 โ€” 16 commitsThu 1:00 โ€” 4 commitsThu 2:00 โ€” 7 commitsThu 3:00 โ€” 3 commitsThu 4:00 โ€” 3 commitsThu 5:00 โ€” 3 commitsThu 6:00 โ€” 5 commitsThu 7:00 โ€” 0 commitsThu 8:00 โ€” 7 commitsThu 9:00 โ€” 5 commitsThu 10:00 โ€” 11 commitsThu 11:00 โ€” 9 commitsThu 12:00 โ€” 8 commitsThu 13:00 โ€” 17 commitsThu 14:00 โ€” 11 commitsThu 15:00 โ€” 21 commitsThu 16:00 โ€” 11 commitsThu 17:00 โ€” 25 commitsThu 18:00 โ€” 17 commitsThu 19:00 โ€” 11 commitsThu 20:00 โ€” 3 commitsThu 21:00 โ€” 8 commitsThu 22:00 โ€” 7 commitsThu 23:00 โ€” 15 commitsFri 0:00 โ€” 14 commitsFri 1:00 โ€” 9 commitsFri 2:00 โ€” 12 commitsFri 3:00 โ€” 12 commitsFri 4:00 โ€” 7 commitsFri 5:00 โ€” 3 commitsFri 6:00 โ€” 0 commitsFri 7:00 โ€” 1 commitsFri 8:00 โ€” 8 commitsFri 9:00 โ€” 9 commitsFri 10:00 โ€” 8 commitsFri 11:00 โ€” 9 commitsFri 12:00 โ€” 7 commitsFri 13:00 โ€” 4 commitsFri 14:00 โ€” 6 commitsFri 15:00 โ€” 21 commitsFri 16:00 โ€” 14 commitsFri 17:00 โ€” 14 commitsFri 18:00 โ€” 11 commitsFri 19:00 โ€” 6 commitsFri 20:00 โ€” 2 commitsFri 21:00 โ€” 4 commitsFri 22:00 โ€” 5 commitsFri 23:00 โ€” 15 commitsSat 0:00 โ€” 10 commitsSat 1:00 โ€” 7 commitsSat 2:00 โ€” 10 commitsSat 3:00 โ€” 13 commitsSat 4:00 โ€” 6 commitsSat 5:00 โ€” 3 commitsSat 6:00 โ€” 2 commitsSat 7:00 โ€” 3 commitsSat 8:00 โ€” 0 commitsSat 9:00 โ€” 2 commitsSat 10:00 โ€” 2 commitsSat 11:00 โ€” 5 commitsSat 12:00 โ€” 5 commitsSat 13:00 โ€” 5 commitsSat 14:00 โ€” 2 commitsSat 15:00 โ€” 10 commitsSat 16:00 โ€” 12 commitsSat 17:00 โ€” 7 commitsSat 18:00 โ€” 7 commitsSat 19:00 โ€” 6 commitsSat 20:00 โ€” 1 commitsSat 21:00 โ€” 8 commitsSat 22:00 โ€” 3 commitsSat 23:00 โ€” 10 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Sep 14, 2026monthly#14+1,141