Data Formulator

Explore data with AI agents in a visual workspace: connect sources, ask follow-ups, and get editable charts.

Stars
★ 18k
Last updated
today
License
MIT
Primary language
Python

At a glance

How it runs
CLIWeb appDesktop app
Works with
Universal · cross-platformOpenAI API · Claude API
Cost
Free software; you pay for model usage
Setup effort
Low · running in minutes
You'll need
Python (uv or pip) or DockerLLM API access (OpenAI, Azure, Anthropic via LiteLLM, or local Ollama)Shell / CLINetwork accessLocal filesystem
Typical use
An analyst with a pile of CSV/Excel sales data wants to ask follow-ups about regional and time trends instead of writing SQL first.
Not a fit if
  • Users who only want static BI dashboards, not conversational exploration
  • Teams unwilling to configure model keys and data source connections themselves

What does this agent do, and when should you use it?

Data Formulator is a Microsoft Research open-source tool that blends natural-language conversation with a visual workspace for data exploration. Analysts can start from CSV, Excel, JSON, screenshots, text, or databases, then build charts and reports step by step. It runs as a local Python service plus a browser UI, launched with a single uvx or pip command, via Docker Compose, or as CI-built Windows/macOS desktop packages. Models are reached through LiteLLM (OpenAI, Azure, Anthropic, or a local Ollama), DuckDB handles larger datasets, and charts are compiled by the open-source Flint chart language. The central interaction is the Data Thread: questions, explanations, tables, and editable charts live in one history you can branch from and finally compose into a shareable report. Built-in connectors cover files, local folders, databases, and platforms such as Databricks, with external loaders for MySQL, PostgreSQL, MSSQL, Azure Data Explorer, S3, and Azure Blob.

You load data by uploading CSV/TSV/Excel/JSON, screenshots, or text, or by choosing a data loader for a database or cloud store; the analyst agent can discover sources, clarify the request, propose a loading plan, and add data to the workspace after your review. In the Data Thread you ask questions in natural language; the agent calls the configured model through LiteLLM (OpenAI, Azure, Anthropic, or Ollama) and returns explanations, tables, and chart specs based on the Flint chart language, rendered as editable charts. Multi-table inputs support automatic joins, DuckDB backs larger data, and any result can be refined, branched from an earlier step, or assembled into a report. The app serves a local web UI on port 5567.

  1. An analyst with a pile of CSV/Excel sales data wants to ask follow-ups about regional and time trends instead of writing SQL first.
  2. A business user only has a screenshot or a text table and needs to extract structured data before visualizing it.
  3. A team with several databases (MySQL, PostgreSQL, MSSQL, Databricks, S3) wants one workspace with automatic join handling.
  4. Someone preparing a briefing wants the exploration trail, including each chart and reasoning step, kept and shared as a report.
  5. Organizations that prefer to self-host and point the tool at their own model keys, including a local Ollama instance.
  6. Cases with larger datasets that should be aggregated in DuckDB rather than pulled entirely into the browser.

How do you install or deploy this agent?

uv is the recommended path and needs no prior setup:

uvx data_formulator

With pip (a virtual environment is recommended):

pip install data_formulator
python -m data_formulator

Or build and run with Docker Compose:

docker compose up --build

To preview the 0.8 beta, pin the pre-release explicitly:

pip install --pre data_formulator==0.8.0b1
uvx [email protected]

Desktop builds for Windows and macOS are downloaded from the Artifacts of the desktop-build workflow or the matching GitHub Release; extract the archive, then run Data Formulator.exe or move Data Formulator.app into Applications. These preview builds are unsigned and not notarized, so bypass OS warnings only after verifying the download source.

How do you use this agent?

After launch, open http://localhost:5567 in a browser. Configure a model provider (OpenAI, Azure, Anthropic, or a local Ollama, unified through LiteLLM), then bring in data by uploading CSV/TSV/Excel/JSON, screenshots, or text, or by picking a database/platform connector and letting the analyst agent find and load it for you.

uvx data_formulator --help

The help output lists options such as a custom port, sandboxing mode, and the data storage location. Then ask questions in the Data Thread, review explanations, tables, and editable charts, branch from any earlier step, and compose results into a report to share.

What are this agent's strengths and limitations?

Pros
  • Natural-language questions and editable charts share one history, so you can branch from any step instead of losing context in a long chat.
  • Charts are compiled by the open-source Flint chart language, covering 30+ chart types with themes and style refinement.
  • LiteLLM keeps model choice open across OpenAI, Azure, Anthropic, and local Ollama.
  • DuckDB support means larger datasets can be aggregated without loading everything into the browser.
  • Broad connectivity: files, local folders, databases, Databricks, plus external loaders for MySQL, PostgreSQL, MSSQL, Azure Data Explorer, S3, and Azure Blob.
  • Several documented ways to run it: one-command uvx/pip, Docker Compose, a self-hosted web service, and CI-built desktop packages.
Limitations
  • No model is bundled: you must supply an OpenAI, Azure, Anthropic, or Ollama endpoint and keys, so spend scales with usage.
  • Desktop packages are CI preview builds that are not code-signed or notarized, requiring a manual security-warning bypass on first launch.
  • The 0.8 line is still beta (0.8.0b1), so flows and interfaces may change; production use should pin the stable 0.7 release.
  • External data source connectors require you to manage credentials and network access yourself, and failures surface through model explanations rather than explicit diagnostics.
  • Desktop installers cover only Windows and macOS, and CI artifacts expire from Actions after 30 days.

How does this agent compare with similar options?

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Data Formulator This agent 58 · Major gaps CLIFree + model costs ★ 18k today Python OpenAI API · Claude API
Flint Chart Language 60 · Some gaps Library / SDKFree ★ 4.4k 27d ago TypeScript Claude.ai
Business Analytics Agent 60 · Some gaps Desktop appFree + model costs ★ 2.6k 11d ago JavaScript OpenAI API
WhoDB 51 · Major gaps Self-hosted serviceFreemium ★ 5k today Go —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Major gaps
58/ 100 5-point scale 2.9 / 5
Trust 17/29
Reliability 8/14
Adaptability 10/18
Convention 13/18
Effectiveness 7/13
Verifiability 3/8
Why each dimension lost points
Trust17 / 29 · 2.9/5

Sandbox docs show process isolation, audit hooks blocking worker file writes, per-turn namespace cleanup, and per-user workspace confinement, indicating some least-privilege design; however the SSO guide examples use verify=False, disable Talisman, and allow the token-exchange endpoint when no shared secret is set, which are concrete weaknesses, so least_privilege and sensitive_data_handling are capped at 2. User confirmation exists for data loading review but no explicit confirmation for destructive or external writes, score 2. Data-flow transparency is supported by the Data Thread and diagnostics structures, score 2. Dependency security shows a litellm CVE-fix pin and resolutions overrides, but the dependency surface is very broad with no SBOM or audit record, score 2. External effects include web fetching, database writes, and unsigned desktop builds without a consolidated side-effect inventory, score 1. Rollback is limited to namespace save/restore and scratch cleanup, with no rollback story for data-source writes or config changes, score 1. Source attribution has MIT copyright, Microsoft trademark, and CLA notes, score 2.

Reliability8 / 14 · 2.9/5

Docs and code structure (sandbox session, agent diagnostics, language injection) are internally consistent and tests mirror documented behavior, score 2. Dependency availability covers uv/pip/docker/desktop paths with litellm platform notes, score 2. Failure messages: save/restore failures only log warnings and degrade, with no user-facing error taxonomy, score 1.

Adaptability10 / 18 · 2.8/5

README targets analysts, developers, and desktop users across files, databases, and platforms, score 2. Capability boundaries are documented (sandbox limits, type coverage limits, Gamma role limits), score 2. Trigger precision: agents are natural-language driven with no precise tool-call boundary specification, score 1. Environment fit covers Python>=3.11, Node 20, Windows/macOS builds, and HTTPS requirements, score 2.

Convention13 / 18 · 3.6/5

Information architecture spans README, docs/dev-guides, docs-cn, and CHANGELOG references, score 2. Install notes are thorough (uvx/pip/docker/desktop/dev), score 3. Naming stability is weak: package.json version 0.1.0 conflicts with pyproject 0.8.0b1 and the project is beta, score 1. Examples and FAQ include demo videos, changelog, and usage notes but no dedicated FAQ, score 2. Known limitations appear in sandbox docs and README warnings, score 2. License is full MIT text, score 3. Versioning/changelog has CHANGELOG references and News entries, score 2. Maintenance responsibility shows Microsoft authors, SECURITY.md, and code of conduct, score 2.

Effectiveness7 / 13 · 2.7/5

Output usability includes charts, reports, editable results, and a diagnostics viewer, score 2. Marginal value comes from unified data connectors and branch-based analysis, but differentiation from many BI/AI analysis tools is limited, score 2. Cost-benefit is weakened by heavy dependencies (many cloud SDKs, LLM calls, desktop packaging), score 1.

Verifiability3 / 8 · 1.9/5

claim_traceability: README claims mostly map to docs/tests but lack per-claim evidence links, score 1. cross_source_corroboration: README, dev-guides, and tests corroborate some capabilities but coverage is incomplete, score 1. fact_inference_separation: docs mix design intent with implementation description without marking verified versus inferred, score 1.

Risks and how to mitigate them
  • SSO examples use verify=False and disable Talisman; fix before production deployment.
  • The token-exchange endpoint allows requests when no shared secret is configured, risking unauthorized exchange.
  • Desktop builds are unsigned/unnotarized and README asks users to bypass OS warnings; treat with caution.
  • package.json and pyproject versions disagree, which can confuse releases and dependency resolution.
  • The dependency surface is very broad (many database and cloud SDKs), raising supply-chain risk and install cost.
Evidence confidence: Low Reviewed Oct 20, 2026 Reviewed revision 5477f0e23642
See the full review method →

FAQ

Does using it cost money?
The software is MIT-licensed and free to install and run. A model provider is required, so OpenAI, Azure, or Anthropic API usage is billed per call, while a local Ollama instance avoids that cost.
Does my data leave my machine?
The app runs as a local web service on port 5567 and reads data through the loaders you configure, but inference requests go to whichever model provider you select, so egress depends on whether that provider is self-hosted.
Should I install the stable release or the 0.8 beta?
0.8.0b1 adds the unified Data Thread flow, more data sources, and Flint chart enhancements; for real analysis the README points to stable 0.7 via pip install data_formulator or uvx data_formulator.
Which data sources can it connect to?
File uploads (CSV, TSV, Excel, JSON), local folders, databases, and platforms such as Databricks, plus external data loaders for MySQL, PostgreSQL, MSSQL, Azure Data Explorer, S3, and Azure Blob.
Why does my OS block the desktop build?
The Windows and macOS packages are automated CI builds that are not currently code-signed or notarized, so after confirming the download came from the official workflow artifacts or release you follow the README steps to run it anyway.
View on GitHub ↗ Install ↓

Related agents