<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sunshinemice</title>
    <description>The latest articles on DEV Community by sunshinemice (@sunshinemice).</description>
    <link>https://dev.to/sunshinemice</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4021338%2F64388212-fb33-40ba-a5fc-77e9ee9560b5.png</url>
      <title>DEV Community: sunshinemice</title>
      <link>https://dev.to/sunshinemice</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sunshinemice"/>
    <language>en</language>
    <item>
      <title>I got tired of SQL chatbots, so we built an open-source data agent workbench</title>
      <dc:creator>sunshinemice</dc:creator>
      <pubDate>Thu, 09 Jul 2026 13:48:48 +0000</pubDate>
      <link>https://dev.to/sunshinemice/i-got-tired-of-sql-chatbots-so-we-built-an-open-source-data-agent-workbench-1ob1</link>
      <guid>https://dev.to/sunshinemice/i-got-tired-of-sql-chatbots-so-we-built-an-open-source-data-agent-workbench-1ob1</guid>
      <description>&lt;p&gt;Most SQL chatbot demos make me optimistic for about 30 seconds.&lt;/p&gt;

&lt;p&gt;Then the practical questions arrive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tables did it use?&lt;/li&gt;
&lt;li&gt;Did it understand what "revenue" means in &lt;em&gt;our&lt;/em&gt; company?&lt;/li&gt;
&lt;li&gt;Can I see the SQL?&lt;/li&gt;
&lt;li&gt;Can I replay the analysis later?&lt;/li&gt;
&lt;li&gt;Did the model ever see credentials?&lt;/li&gt;
&lt;li&gt;Can I reuse the chart, table, or report somewhere else?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And suddenly the magic starts to look a lot like a prototype.&lt;/p&gt;

&lt;p&gt;That is the problem we are trying to solve with &lt;strong&gt;DataFoundry&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;DataFoundry is an open-source AI workbench for data analysis. It turns a natural-language question into a governed data task: schema inspection, semantic alignment, read-only execution, SQL audit, artifacts, charts, reports, and replayable run history.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/datagallery-lab" rel="noopener noreferrer"&gt;
        datagallery-lab
      &lt;/a&gt; / &lt;a href="https://github.com/datagallery-lab/datafoundry" rel="noopener noreferrer"&gt;
        datafoundry
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      DataFoundry is an open-source AI workbench for data analysis, unifying data sources, knowledge, tools, and agent runtime into a governed workspace for interactive analytics.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;DataFoundry&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;
  An enterprise-grade Data Agent workbench — it reads business definitions through unified semantics, runs complex multi-table, multi-step analysis inside read-only boundaries,&lt;br&gt;
  and keeps every step auditable and replayable, turning one question into a trustworthy analysis
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;28 datasource types out of the box · Enterprise semantics &amp;amp; context · Self-hosted · Multi-model · Fully auditable&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;strong&gt;English&lt;/strong&gt; · &lt;a href="https://github.com/datagallery-lab/datafoundry/README_zh.md" rel="noopener noreferrer"&gt;简体中文&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/datagallery-lab/datafoundry#-run-it-in-5-minutes" rel="noopener noreferrer"&gt;&lt;strong&gt;Quick Start&lt;/strong&gt;&lt;/a&gt;
  ·
  &lt;a href="https://datagallery-lab.github.io/datafoundry/" rel="nofollow noopener noreferrer"&gt;&lt;strong&gt;Docs&lt;/strong&gt;&lt;/a&gt;
  ·
  &lt;a href="https://github.com/datagallery-lab/datafoundry/docs/en/reference/supported-datasources.md" rel="noopener noreferrer"&gt;&lt;strong&gt;Supported Data Sources&lt;/strong&gt;&lt;/a&gt;
  ·
  &lt;a href="https://github.com/datagallery-lab/datafoundry#%EF%B8%8F-roadmap" rel="noopener noreferrer"&gt;&lt;strong&gt;Roadmap&lt;/strong&gt;&lt;/a&gt;
  ·
  &lt;a href="https://github.com/datagallery-lab/datafoundry#-contributing" rel="noopener noreferrer"&gt;&lt;strong&gt;Contributing&lt;/strong&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/35b94db23d3ed026343335f74d52ce31e74b77ad7dab4e4b89f49f2026e0937f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4170616368652d2d322e302d626c7565"&gt;&lt;img src="https://camo.githubusercontent.com/35b94db23d3ed026343335f74d52ce31e74b77ad7dab4e4b89f49f2026e0937f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4170616368652d2d322e302d626c7565" alt="Apache-2.0"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/1458424293510e86bea8820bed5647e85d3a27d98218355288b198fc68903082/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e782d3331373863363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465"&gt;&lt;img src="https://camo.githubusercontent.com/1458424293510e86bea8820bed5647e85d3a27d98218355288b198fc68903082/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e782d3331373863363f6c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465" alt="TypeScript"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/82a6b0d31686f5f153f6dcf28597e4169e3ddec5519b59b069c42bda51fa64e3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73656c662d2d686f737461626c652d6c6f63616c25323066697273742d326561343466"&gt;&lt;img src="https://camo.githubusercontent.com/82a6b0d31686f5f153f6dcf28597e4169e3ddec5519b59b069c42bda51fa64e3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73656c662d2d686f737461626c652d6c6f63616c25323066697273742d326561343466" alt="Self-hostable"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/924e0edd21388c3853b4c5ee8c71e5ebc84bb06fb5f10ffb8cd08ee6398fefad/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d666636396234"&gt;&lt;img src="https://camo.githubusercontent.com/924e0edd21388c3853b4c5ee8c71e5ebc84bb06fb5f10ffb8cd08ee6398fefad/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d666636396234" alt="PRs welcome"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/ca28a4c2ef31ee46fefe6b384da91c4fc9dde5be79493864e6fb15e3bde6afbc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374617475732d6561726c79253230627574253230757361626c652d6f72616e6765"&gt;&lt;img src="https://camo.githubusercontent.com/ca28a4c2ef31ee46fefe6b384da91c4fc9dde5be79493864e6fb15e3bde6afbc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374617475732d6561726c79253230627574253230757361626c652d6f72616e6765" alt="Status"&gt;&lt;/a&gt;
  &lt;br&gt;
  &lt;a href="https://github.com/mastra-ai/mastra" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/bcd0d4fb1ab93d6bd993ff2d94d55e29cf1062f49a69ddb9b6cab38022b917b4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61737472612d6167656e7425323072756e74696d652d313131383237" alt="Mastra agent runtime"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/ag-ui-protocol/ag-ui" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4c44e28bb05d4eaf930947ba624e19658ab2f4e392e9d6b107440b57fa12c2f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41472d2d55492d6576656e7425323073747265616d2d366634326331" alt="AG-UI event stream"&gt;&lt;/a&gt;
  &lt;a href="https://github.com/vadimdemedes/ink" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9c15ded46c24ac2e2de701244bc9dc625c6f29b9fb83be342b158e386dba68f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f496e6b2d7465726d696e616c25323055492d306637363665" alt="Ink terminal UI"&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/datagallery-lab/datafoundry/docs/assets/readme/gui-demo.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fdatagallery-lab%2Fdatafoundry%2FHEAD%2Fdocs%2Fassets%2Freadme%2Fgui-demo.gif" alt="DataFoundry Web workbench demo" width="100%"&gt;&lt;/a&gt;
&lt;/p&gt;




&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🤔 What Is DataFoundry&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;When teams let AI query enterprise databases, the real worry is never "can the model write SQL." It is: &lt;strong&gt;does it understand business definitions? Could it mutate production data? Could credentials leak into context? Can a conclusion be verified after the fact?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most tools reduce the problem to &lt;code&gt;prompt → SQL → answer&lt;/code&gt; — impressive in a demo, dead on arrival in the enterprise. DataFoundry takes a different path: &lt;strong&gt;it puts the agent inside a semantic,&lt;/strong&gt;…&lt;/p&gt;&lt;/div&gt;


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/datagallery-lab/datafoundry" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  The problem: data analysis is not a chat message
&lt;/h2&gt;

&lt;p&gt;A lot of Data Agent products follow the same pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;prompt → SQL → answer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is great for demos.&lt;/p&gt;

&lt;p&gt;But real data analysis usually looks more like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ask → inspect schema → clarify metric → query → check result → drill down → compare → explain → save output → review later
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The final answer matters, but the path matters too.&lt;/p&gt;

&lt;p&gt;For example, if someone asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why did revenue drop last month?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A useful agent may need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;find the right datasource,&lt;/li&gt;
&lt;li&gt;inspect table schemas,&lt;/li&gt;
&lt;li&gt;resolve business definitions,&lt;/li&gt;
&lt;li&gt;generate SQL,&lt;/li&gt;
&lt;li&gt;run joins safely,&lt;/li&gt;
&lt;li&gt;compare time periods,&lt;/li&gt;
&lt;li&gt;detect outliers,&lt;/li&gt;
&lt;li&gt;create intermediate tables,&lt;/li&gt;
&lt;li&gt;draw a chart,&lt;/li&gt;
&lt;li&gt;explain the conclusion,&lt;/li&gt;
&lt;li&gt;and leave evidence that someone else can review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not a one-turn Q&amp;amp;A problem. It is a workflow problem.&lt;/p&gt;

&lt;p&gt;So we stopped thinking about the agent as a chatbot and started thinking about it as something closer to a &lt;strong&gt;data workbench&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fms3feapqhamw5e0ah4uo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fms3feapqhamw5e0ah4uo.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The goal is not to make databases better chat partners. The goal is to make data analysis controllable, inspectable, and reusable.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;DataFoundry puts the agent inside a governed workspace for data tasks.&lt;/p&gt;

&lt;p&gt;Instead of only returning text, each run can leave behind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQL queries,&lt;/li&gt;
&lt;li&gt;event streams,&lt;/li&gt;
&lt;li&gt;schema inspection steps,&lt;/li&gt;
&lt;li&gt;table outputs,&lt;/li&gt;
&lt;li&gt;charts,&lt;/li&gt;
&lt;li&gt;reports,&lt;/li&gt;
&lt;li&gt;files,&lt;/li&gt;
&lt;li&gt;and replayable task history.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current project includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Web workbench&lt;/strong&gt; for interactive data tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TUI&lt;/strong&gt; for terminal and remote-server workflows&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Gateway&lt;/strong&gt; for controlled datasource access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;28 datasource types&lt;/strong&gt; out of the box&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenAI-compatible model support&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;read-only execution by default&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL audit, row limits, timeouts, and masking&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;artifacts and file outputs&lt;/strong&gt; that do not disappear into chat history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is important. If an agent produces a useful table, chart, or report, it should become an asset — not a paragraph buried in a conversation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0l3a6jzv1j85d6j2rktu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0l3a6jzv1j85d6j2rktu.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Natural language is only the entry point. The useful part is the task lifecycle around it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not just use a coding agent?
&lt;/h2&gt;

&lt;p&gt;Coding agents are great. I use them too.&lt;/p&gt;

&lt;p&gt;But databases have a different risk profile from code repositories.&lt;/p&gt;

&lt;p&gt;A coding agent works with files, tests, diffs, commits, and pull requests. A data agent works with datasources, schemas, credentials, permissions, metrics, SQL, intermediate results, and business conclusions.&lt;/p&gt;

&lt;p&gt;Those need a different runtime boundary.&lt;/p&gt;

&lt;p&gt;With DataFoundry, the model does not need raw database credentials. Datasource access goes through &lt;strong&gt;Data Gateway&lt;/strong&gt;, which is designed around read-only execution, SQL guardrails, row limits, timeouts, masking, and audit records.&lt;/p&gt;

&lt;p&gt;In other words:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;The agent can work.
The data boundary still belongs to the system.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxsmfz7zdftpk82cj2lq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxsmfz7zdftpk82cj2lq4.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The model gets governed context. Credentials and datasource execution stay behind the runtime boundary.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I care about most: replayability
&lt;/h2&gt;

&lt;p&gt;When an AI system gives a data answer, the most important question is not always:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is this answer impressive?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is often:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can I trust how it got there?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DataFoundry treats every analysis as a run.&lt;/p&gt;

&lt;p&gt;A run has state, steps, tool calls, SQL, outputs, and artifacts. That means you can inspect the process after the fact:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tables did the agent inspect?&lt;/li&gt;
&lt;li&gt;Which fields did it select?&lt;/li&gt;
&lt;li&gt;What SQL did it run?&lt;/li&gt;
&lt;li&gt;Was the query limited, masked, or truncated?&lt;/li&gt;
&lt;li&gt;Which output became the final chart or report?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the experience feel less like "the AI said so" and more like a task that can be reviewed, debugged, continued, and shared.&lt;/p&gt;

&lt;p&gt;For teams, that is where adoption usually begins.&lt;/p&gt;

&lt;h2&gt;
  
  
  The longer-term direction: datagraph
&lt;/h2&gt;

&lt;p&gt;The most interesting data context is often not written down anywhere.&lt;/p&gt;

&lt;p&gt;It lives in repeated questions, old SQL, analyst habits, naming conventions, metric definitions, dashboard logic, and team-specific language.&lt;/p&gt;

&lt;p&gt;That is why we are exploring the idea of a &lt;strong&gt;datagraph&lt;/strong&gt;: a semantic layer that grows as people use the workbench.&lt;/p&gt;

&lt;p&gt;Each analysis should not only consume context. It should also leave context behind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;table relationships,&lt;/li&gt;
&lt;li&gt;field meanings,&lt;/li&gt;
&lt;li&gt;metric definitions,&lt;/li&gt;
&lt;li&gt;common business questions,&lt;/li&gt;
&lt;li&gt;useful query patterns,&lt;/li&gt;
&lt;li&gt;evidence trails,&lt;/li&gt;
&lt;li&gt;lineage,&lt;/li&gt;
&lt;li&gt;and policy hints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next run should not start from zero.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkgpdhkjx66ouwqbz87ws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkgpdhkjx66ouwqbz87ws.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The workbench should understand the business a little better after every useful analysis.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it locally
&lt;/h2&gt;

&lt;p&gt;You do not need to prepare a database just to try the basic flow. DataFoundry includes a built-in DuckDB demo datasource.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/datagallery-lab/datafoundry.git
&lt;span class="nb"&gt;cd &lt;/span&gt;datafoundry
npm &lt;span class="nb"&gt;install
cp&lt;/span&gt; .env.example .env
&lt;span class="nb"&gt;cp &lt;/span&gt;apps/web/.env.example apps/web/.env.local
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:3000/data-tasks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Try asking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Show me the tables in this datasource and explain the main fields of each.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything is configured correctly, you should see the full chain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;schema inspection → read-only SQL → SQL audit → table output → replayable run history
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, try connecting your own data stack: PostgreSQL, MySQL, CSV, Excel, Snowflake, BigQuery, ClickHouse, MongoDB, Redis, Elasticsearch, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  What kind of feedback we want
&lt;/h2&gt;

&lt;p&gt;DataFoundry is still moving quickly, and we would love feedback from people who are building or using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;internal data copilots,&lt;/li&gt;
&lt;li&gt;BI agents,&lt;/li&gt;
&lt;li&gt;analytics workbenches,&lt;/li&gt;
&lt;li&gt;Text-to-SQL systems,&lt;/li&gt;
&lt;li&gt;data governance tools,&lt;/li&gt;
&lt;li&gt;semantic layers,&lt;/li&gt;
&lt;li&gt;AI product runtimes,&lt;/li&gt;
&lt;li&gt;or self-hosted enterprise AI tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Especially useful feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which datasource should we improve next?&lt;/li&gt;
&lt;li&gt;What does your real analysis workflow look like?&lt;/li&gt;
&lt;li&gt;What would make you trust an AI-generated SQL result?&lt;/li&gt;
&lt;li&gt;Which audit or replay features are missing?&lt;/li&gt;
&lt;li&gt;What should the datagraph store?&lt;/li&gt;
&lt;li&gt;Where does the UX still feel too much like a chatbot?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have ever built a Text-to-SQL demo that looked great but became hard to trust in real work, I’d love your feedback. Issues, PRs, Stars and brutal comments are all welcome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/datagallery-lab/datafoundry" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;⭐ Star DataFoundry on GitHub&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;If you do not want to star it yet, give us one hard question in the comments: what would make you trust or reject an AI-generated SQL result?&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>database</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
