Skip to content
DataTug.ai
GitHub

Your data has meaning.
Let AI understand it.

DataTug is an open-source workspace where you and AI investigate connected data: in the web app, in the terminal, or inside your own coding agent with the DataTug AI skills. Answers across sources, with their evidence, work today. Shared meaning and memory are what we are building next.

  • Open source · Apache-2.0
  • CLI v0.52.0
  1. Chinook · Invoice.BillingCountry"Ireland"
  2. MeaningGeo.CountryPlanned
  3. ISO 3166 codesIE · IRL
  4. World BankPopulation 5.48 million
  5. Answer8.3 per million

Sales per million people

Real demo run
  1. Ireland8.3
  2. Czech Republic8.3
  3. Finland7.4
  4. Canada7.3
  5. Portugal7.1
  6. USA1.5

The USA buys the most in total, yet ranks number 17 per person.

Ask a follow-up

Result: sales per million people

CountrySales, USDPopulation (2025)USD per million people
Ireland45.625,484,3678.32
Czech Republic90.2410,886,8788.29
Finland41.625,646,4367.37
Canada303.9641,651,6537.30
Sort and filter it

Investigation

  1. Works out what the question needsPlanned
  2. BillingCountry means a countryPlanned
  3. Finds population data elsewherePlanned
  4. 24 of 24 country names mappedReal run
  5. Three sources joined, metric computedReal run
Inspect any step

Swipe for the other views

  • 24countries
  • 3sources joined
  • 0AI tokens
  • 0.3 srun time

From the real demo run: one saved query, no model.

One platform, four ways in.

Work in the browser or the terminal, or let your coding agent do it. Each part shows how finished it is.

The whole platform: datatug.io

  • DataTug.app

    The web app: explore, query and chat over your data in the browser.

    • Available
  • Terminal app

    The same projects in a keyboard-driven terminal UI: run datatug.

    • Available
  • AI skills

    Your coding agent uses DataTug as a tool: skills for the CLI, and an MCP server.

    • Skills pluginAvailable
    • MCP serverPlanned
  • MCP web app

    Interactive DataTug views inside your agent's chat.

    • Planned

How DataTug assembles an answer. Open any step.

Not a chain of thought: a record of actions, decisions and evidence. First, exactly what the real run did. Then the investigation as DataTug shows it, with the steps that still depend on features ahead marked.

What the real run did

Real demo run

The DataTug CLI executed one saved DTQL query. It joins three sources and calls no model.

Command

$ datatug query run sales/chinook-sales-per-capita

What it printed

query download: 412 rows chinook
query download: 24 rows geo
query download: 216 rows geo
query process: 24 rows
Chinook invoices read
412
country names in the alias table
24
equal the ISO name
21
matched by hand
3
World Bank population records in the snapshot
216
result rows, one per country
24
AI tokens
0

Cross-source DTQL joins in the CLIAvailable

Reproduce it: datatug/datatug-demo-projects, commit 0e5b98f, DataTug CLI 0.51.0.

What the investigation shows

Available

The same question as an investigation in DataTug.app. Every step is marked: it either happened in the real run, or it depends on a feature still ahead, shown with its status.

Investigation: music sales relative to populationReal and planned steps

Which countries buy the most music relative to their population?

Steps: 7. In the real run: 4. Target behaviour: 3.

  1. Works out what the question needs.Music sales grouped by country: the Invoice table, its Total and its BillingCountry. In the real run a person chose these when writing the query. In the product, Jev, a decision model by TypeSafe AI, will propose them and the schema will check them.Target behaviourDecisions by Jev, a decision model by TypeSafe AIPlanned
    Table
    Invoice
    Rows
    412
    Measure
    Invoice.Total
    Grouped by
    Invoice.BillingCountry
    How it is decided
    Proposed by Jev, a decision model by TypeSafe AI, then checked against the schema
    Known from schemaAI suggested
  2. Recognises BillingCountry as a country.MeaningGraph will say this field means Geo.Country, so nobody has to guess from the column name.Target behaviourMeaningGraph integrationPlanned
    Field
    Invoice.BillingCountry
    Meaning
    Geo.Country
    Distinct values
    24
    How it is decided
    Looked up in MeaningGraph
  3. Finds population data outside Chinook.Chinook has no population. OVDB Directory will find a source that does. In the real run the World Bank snapshot was already in the project.Target behaviourOVDB Directory APIPlanned
    Source
    World Bank
    Dataset
    SP.POP.TOTL · 2025
    Rows
    216
    How it is decided
    Found through OVDB Directory
    Declared
  4. The sources spell countries differently.Chinook stores names such as "USA". The population data is keyed by ISO country. They cannot be joined as they are.In the real run
    Chinook says
    "USA"
    ISO country key
    us
    ISO name
    "United States"
    How it is decided
    A difference in the data the run read. The run itself compared nothing: the alias table bridges the names
    No modelNeeds reconcilingVerifiedInspect this value
  5. A table of country names bridges them.All 24 Chinook names map to an ISO country. Equal to the ISO name: 21. Matched by hand: 3.In the real runProject data in inGitDBPlanned
    Reference data
    country_aliases
    Resolved
    24 / 24
    Equal to the ISO name
    21
    Matched by hand
    Czech Republic, Netherlands, USA
    How it is decided
    Looked up in reference data kept as files in the project
    No modelVerifiedHuman confirmedInspect this value
  6. Joins the three sources.Invoices to aliases to population, in one DTQL query. No model is involved.In the real runCross-source DTQL joins in the CLIAvailable
    Join path
    Invoice.BillingCountry → country_aliases.alias → population_wb.country
    Source
    Chinook + World Bank
    How it is decided
    One deterministic DTQL query
    From the saved query (DTQL)
    from:
      database: chinook
      name: Invoice
      alias: i
      joins:
        - from:
            database: geo
            name: country_aliases
            alias: a
            joins:
              - from: {database: geo, name: population_wb, alias: p}
                on: [{left: {field: country, source: a}, op: '==', right: {field: country, source: p}}]
          on: [{left: {field: BillingCountry, source: i}, op: '==', right: {field: alias, source: a}}]
    No modelVerified
  7. Computes sales per million people.One row per country, ready to sort, filter and chart. Zero AI tokens.In the real run
    Formula
    sum(Total) / population * 1000000
    Rows
    24
    AI tokens used
    0
    How it is decided
    Arithmetic inside the query, no model
    No modelVerifiedSee the result

Where knowledge comes from

  • Known from schema
  • Declared
  • Human confirmed
  • Verified
  • Observed
  • Inferred from data
  • AI suggested
  • Hypothesis

Steps marked "In the real run" happened. Steps marked "Target behaviour" depend on features that are still ahead, and each carries its status.

The answer is data you can keep working with.

Sort it, filter it, resize it, select a bar to find the row. The grid and the chart are two views of the same result.

Cross-source DTQL joins in the CLIAvailableCross-source DTQL joins in the browserAvailable

Result: sales per million peopleReal demo run
24 of 24 countriesTry sorting by Sales: the USA buys the most, yet ranks number 17 per person.
Skip the table
Sales and population by country
CountrySales, USDPopulation (2025)Sales per million people
Ireland45.625,484,3678.32
Czech Republic90.2410,886,8788.29
Finland41.625,646,4367.37
Canada303.9641,651,6537.30
Portugal77.2410,804,8717.15
Norway39.625,610,8707.06
Denmark37.626,009,1696.26
Hungary45.629,514,2514.79
Austria42.629,208,1634.63
Sweden38.6210,596,6203.64
Belgium37.6211,941,7813.15
France195.1068,720,3372.84
Chile46.6219,859,9212.35
Netherlands40.6218,087,6332.25
Germany156.4883,491,2491.87
United Kingdom112.8669,487,0001.62
USA523.06341,784,8571.53
Australia37.6227,614,4111.36
Poland37.6236,435,8611.03
Brazil190.10212,812,4050.89
Argentina37.6245,851,3780.82
Spain37.6249,355,1430.76
Italy37.6258,915,6560.64
India75.261,463,865,5250.05

Loading the interactive grid…

End of the table

Sales per million people

USD per million people

  1. Ireland8.3
  2. Czech Republic8.3
  3. Finland7.4
  4. Canada7.3
  5. Portugal7.1
  6. Norway7.1
  7. Denmark6.3
  8. Hungary4.8
  9. Austria4.6
  10. Sweden3.6

Showing the top 10 of 24 rows in the current order

From the real demo run: Chinook sales joined to World Bank population (SP.POP.TOTL, 2025). A recorded result, not a live query.

A follow-up question Prototype

What can you say about this data?

Three things stand out. Each one is computed from the rows it points at.

  • The USA has the largest total ($523.06) but ranks number 17 of 24 per person: 1.53 per million.Rows: 1
  • Ireland and Czech Republic lead per person at 8.32 and 8.29, almost tied.Rows: 2
  • 9 of the top ten have fewer than 11 million people. Canada is the exception, with 41.7 million.Rows: 10

Hover or select an observation to highlight its rows in the grid and the chart. Observations grounded in your dataIn development

The grid uses the DataTug AG Grid theme from the site kit. The demo runs this cross-source query in the browser, and the CLI runs it too.

Three ways to use DataTug with AI.

Pick the one that fits how you already work. Each card says what to do first and how finished it is.

  1. Inside your own agent

    Claude Code runs the datatug CLI through the skills plugin; other coding agents are planned. The MCP server and MCP web apps (our UIBubbles) are planned.See the skills and how to install them

    Your agentIllustrative

    › /plugin install datatug@sneat-co

    ✓ Skills for the datatug CLI are installed.

    › Which countries buy the most music relative to their population?

    Running datatug query run sales/chinook-sales-per-capita

    Ireland           8.32
    Czech Republic    8.29
    Finland           7.37

    ✓ Done. The result is back in the conversation.

    ›

    Start with/plugin marketplace add sneat-co/ai-marketplace

    • Skills plugin for coding agentsAvailable
    • MCP serverPlanned
    • UIBubbles runtimePlanned
  2. DataTug AI chat

    Ask about your data in plain words, in the terminal or in the web app. It is one session: start in one place and carry on in the other.

    DataTug chatIllustrative

    Session: chinook-countries

    Which countries buy the most music relative to their population?

    Joined Chinook sales with World Bank population.

    • Ireland
    • Czech Republic
    • Finland

    datatug chatDataTug.appThe same session in the terminal and in the web app

    Start withdatatug chat

    • Chat in the CLI and TUIAvailable
    • Browser chat with your own API keyAvailable
    • Terminal-to-web session hand-offAvailable
  3. An assistant where you build

    Suggested joins, a plain explanation of a table and a proposed query, inside the query builder and schema discovery. This is planned, not built yet; until then the chat can already propose joins along your schema's foreign keys.

    Query builderConcept

    FromInvoice

    AI suggested

    Join InvoiceLine

    Suggested join, by foreign keyInvoiceLine.InvoiceId → Invoice.InvoiceId

    About this table: Invoice

    One row per sale, linked to a customer.

    Until thendatatug chat

    • AI assistant in the query builderPlanned
    • AI assistant in schema discoveryPlanned

Give AI meaning, not just schema.

A schema says BillingCountry is text. A meaning says it is a country, which other systems know as IE or IRL, and how sure we are of each fact. That is the job of MeaningGraph. Connecting it to DataTug is planned.

MeaningGraph integrationPlanned
  • Knowledge has a source

    Each fact says whether it came from the schema, a person, the data, or a model.

  • It goes both ways

    DataTug will read MeaningGraph before it asks a model, and write back what you confirm.

  • Meaning crosses systems

    The same country can be a name, an alias, an ISO code. Meaning is what connects them.

One value, followed across three sourcesReal values, concept view
Choose a country as Chinook stores it.
Chinook value"Ireland"Invoice.BillingCountry
MeaningConceptGeo.Countrywhat this value is
Alias row"Ireland" → iecountry_aliases
ISO 3166 codesIE · IRLcountries
World Bankiepopulation_wb · Population 5.48 million

Evidence

Alias row: "Ireland" → ie

  • VerifiedThe alias "Ireland" equals the ISO country name and maps to the key ie. Aliases like this: 21 of 24.

Select a node to see its evidence.

The values, the alias table and the population figures are from the real run. The Geo.Country meaning node is a concept: MeaningGraph integration is planned.

It learns while you work, and checks before it believes.

Queries, joins and the way you navigate leave evidence. The idea: DataTug turns repeated evidence into knowledge you can confirm, then reuses it without asking a model again.

MeaningGraph learning loopExploring
A relationship DataTug noticedConcept

Invoice.BillingCountry → Geo.Country

ObservedHuman confirmed
  • Used as a country in every saved query that touches it
  • Values checked against the reference list. Matches: 24 of 24
  • Not yet confirmed by anyone

Confirmed by you. The next investigation looks this up instead of asking a model.

Infer once. Verify. Remember. Reuse.

  1. InferA pattern or a model proposes what something means.
  2. VerifyDataTug checks the proposal against the real data.
  3. RememberWhat holds is saved, with its evidence, in the project.
  4. ReuseThe next investigation starts from what is known.

Every investigation makes the next one smarter.

The design target for a question asked again and again:

  1. First timeA model helps plan. A person confirms the mapping.Model calls: several
  2. Second timeThe mapping is looked up. No model for that step.Model calls: fewer
  3. Known pathEvery step is known. This is what the real demo run already is.Model calls: none

Learning from your work is an idea we are testing. The loop is the design target, not shipped behaviour.

Not every step needs a large model.

DataTug is designed to reach for the lightest dependable mechanism first, and to say which one it used: what is already known, then a small decision model, then a large model, then you.

Decisions by Jev, a decision model by TypeSafe AIPlanned
  1. Deterministic knowledge

    Schema, confirmed meanings, reference data, saved queries. Free, instant, repeatable.

  2. A lightweight decision model

    Jev, a decision model by TypeSafe AI, ranks candidate tables, fields and join paths. The schema then checks the pick.

  3. Generative AI

    New questions, plans nobody has seen, explanations in plain language.

  4. A person

    You confirm what will be trusted from then on.

Which tables are relevant to this question?Concept

Which countries buy the most music relative to their population?

  1. InvoiceChosen
  2. InvoiceLine
  3. Customer
  4. Track
  5. Album

Ranked by Jev, a decision model by TypeSafe AI. The chosen table is then validated against the schema.

Humans and AI build understanding together.

Not all knowledge deserves the same trust. DataTug is designed to keep the difference visible on every claim, so you can tell what was declared from what was guessed.

Authoritative

Reused without asking.

  • Known from schemaDeclared by the database itself: types, keys, constraints.
  • DeclaredWritten down by a person or an API description.
  • Human confirmedSomeone on the team checked it and said yes.
  • VerifiedChecked deterministically against the actual data.

Corroborated

Reused, with the evidence in view.

  • ObservedSeen repeatedly in queries and navigation.
  • Inferred from dataPatterns in the values point to it.

Suggested

Shown, never trusted silently.

  • AI suggestedA model proposed it. It still needs checking.
  • HypothesisA guess worth testing, never reused silently.
orders.customer_ref → customers.idExample
  1. ObservedSeen in repeated queries
  2. VerifiedValues verified against data
  3. Human confirmedConfirmed by the team

Reuse then needs no model call.

Investigate, don't just generate SQL.

A query is one move in an investigation. DataTug is built around the whole thing: the question, the path you took, the evidence, and what you learned along the way.

A database client

  1. You
  2. SQL
  3. Database

An AI database client

  1. You or an agent
  2. Generated SQL
  3. Database

DataTug

  1. You + AI
  2. Investigation
  3. Meaning
  4. Connected data
  5. Evidence
  6. Reusable knowledge

Ways in

  • Natural language
  • SQL
  • DTQL
  • Navigation
  • Grids
  • Charts
  • CLI
  • TUI
  • Agents

They complement each other. Use whichever is quickest for the next step, whether or not you write SQL.

What is different

  • The agent sees meaning

    Not only table and column names, but what they stand for.

    Planned
  • It works across sources

    Join a database with an outside dataset in one query.

    Available
  • It remembers between sessions

    What you confirmed is there next time, with its evidence.

    Exploring
  • One session, three interfaces

    Web, terminal UI and CLI work on the same session.

    Available

Don't make AI guess what it can look up.

Chinook says "USA", the population data says "us", and ISO calls the same country USA and "United States". That is a fact to look up, not something for a model to work out again on every question. So keep it as a table: stored once, versioned, reviewed like code.

Reference data: country_aliasesReal demo data
aliascountryhow it was matched
Czech Republicczmatched by hand
Netherlandsnlmatched by hand
USAusmatched by hand
Irelandieequals the ISO name

The three names that needed a person, and one that did not. The mapping is first-class data, not something a model re-infers on every question.

The same row, as a file in GitReal file
# data/geo/country_aliases/$records/usa.json
{
  "alias": "USA",
  "country": "us",
  "source": "chinook-database Invoice.BillingCountry; manual match: Chinook spells it 'USA'; countries.names.en is 'United States'"
}

Four kinds of durable investigation data

  • Reference data

    Countries, currencies, internal ids and standards, status mappings, lookups.

  • Snapshots

    Point-in-time copies for incidents, test failures, migration rehearsals and regression fixtures.

  • Cached data

    Outside or expensive data kept so it is fetched once, not on every run.

  • Session data

    Selected records, suspicious transactions, intermediate joins and temporary mappings.

Where it lives

inGitDB

Project data in inGitDBPlanned

Persist and version data

Human-readable files in Git: branchable, reviewable in a pull request, reproducible in CI. The demo already reads its country data from an inGitDB directory. Managing project data this way from inside DataTug is planned.

inGitDB

OVDB

OVDB Directory APIPlanned

Access and share

One way to reach very different sources. In the demo, OVDB serves the same two databases to the web app. Discovering sources through its Directory is planned.

OVDB

One intelligence, many interfaces.

The session belongs to DataTug, not to the interface. Start in the terminal, open the grid in the browser, and come back with the same context. Or the other way round.

Terminal-to-web session hand-offAvailable
TerminalIllustrative

$ datatug

Session chinook-countries ● synced

› Which countries buy the most music relative to their population?

✓ Joined Chinook with World Bank population.

o open grid in browser

DataTug.appIllustrative

Session: chinook-countries

Continued from your terminal

  • Ireland
  • Czech Republic
  • Finland

Return to the terminal anytime; it is the same session.

Two more ways in

  • CLI

    One-shot commands for pipelines and scripts, with managed AI built in.

    Managed AI in the CLIAvailable
  • Embeds

    Put a live grid or chart on any page.

    <datatug-grid> and <datatug-chart> embedsAvailable

Your model, or ours.

DataTug AI is not tied to one provider.

  • Bring your own key

    Use your own API key with the provider you already trust, in the browser or the CLI.

    Browser chat with your own API keyAvailable
  • Managed AI

    DataTug-managed AI with no key to set up: in the CLI today, in the web app next. Your prompts, the schema and the query text go to the cloud. Row values do not.

    Managed AI in the CLIAvailableManaged AI in the web appIn development

When an answer needs more than text, pop a Bubble.

A Bubble is a small interactive surface, such as a grid, a chart or an inspector, that appears inside the conversation and composes with others into richer tools. UIBubbles is the open standard for them.

UIBubbles runtimePlanned
Chat with BubblesConcept

Show the top countries as a grid.

Here are the countries, sorted by sales per million people.

CountryPer million
Ireland8.3
Czech Republic8.3
Finland7.4
Canada7.3

Chart that.

Charted, and linked to the grid.

Why does Ireland map to IRL?

Here is the evidence for that mapping.

  • Mapped from "Ireland" through project reference data
  • Names checked: 24. Resolved: 24.
Pop a Bubble

This is a hand-built concept of the experience. The Bubble runtime is planned. About UIBubbles

Knowledge should not reset at every stage of development.

What one stage learns about the data should be there for the next. The aim of DataTug and MeaningGraph is to carry it from first idea to day-to-day support.

  1. Envision

    Explore the data and domain knowledge that already exist.

  2. Design

    Define entities, meanings, identifiers, relationships and mappings.

  3. Develop

    Developers and agents use what is known, and feed discoveries back.

    Incident possible
  4. Test

    Investigate failures, compare environments, keep the edge cases you find.

    Incident possible
  5. Operate

    Support and agents investigate real behaviour with everything learned so far.

    Incident possible

Incident is a state, not a sixth stage.

It can happen while you develop, in test, in staging or in production. An early incident is a gift: it shows a problem before customers do, while it is still cheap to fix.

Each one starts a focused investigation, and what it teaches flows back into the work ahead.

The best production incident is the one already caught in test.

Pressure reveals truth. Keep it.

Incidents are high-pressure moments when important truths about systems and data surface. Preserve those truths instead of losing them when the incident ends.

Incidentius integrationPlanned

  • DataTug

    Helps you investigate while it is happening.

  • MeaningGraph

    Preserves what was established: meanings, relationships and diagnostic knowledge.

  • Incidentius

    Holds the incident itself: the event, the context and the response.

The idea: discoveries keep their link back to the incident that taught them, and come back in future incidents, in development, in regression tests and in prevention.

Visit Incidentius.com

Control comes first.

Pointing AI at production data should be safe by design. This is exactly what holds today and what is still ahead, claim by claim.

  • Local execution

    Run DataTug on your own machine, next to your data: queries run locally. With managed AI, your prompts, the schema and the query text go to the cloud. Row values do not.

    Available
  • Access policies

    Scope what a role may read through policy-enforced saved queries, on SQLite and inGitDB sources today. With no policy set, access is unrestricted, and the terminal database viewer does not apply policies yet.

    Available
  • Read-only connections

    Connect to a source as read-only, so an investigation cannot change it.

    Planned
  • Approve an investigation step

    Approve an investigation step before it runs, instead of trusting a whole plan at once.

    Planned
  • Meaning-driven masking on the server

    Mask sensitive values on the server, driven by what a field means rather than by its name.

    Planned
  • Control over what reaches a model

    Decide what reaches an external model, down to field level.

    Planned
  • Audit trail merged with provenance

    An audit trail that is the same record as provenance: who or what did this, from which evidence.

    Planned

How the pieces fit.

You met them one at a time above. Each has one job, and none of them is required to start.

  • Investigate and learn

    DataTug

    The workspace where you and AI work through connected data.

    The workspace
  • Understand

    MeaningGraph

    What fields, values and relationships mean, with the evidence for each.

    meaninggraph.io
  • Access and share

    OVDB

    One way to reach and publish data across very different sources.

    openvaultdb.com
  • Persist and version data

    inGitDB

    Reference data and snapshots as readable files in Git.

    ingitdb.com
  • Interact and extend

    UIBubbles

    Grids, charts and inspectors that appear right inside an answer.

    uibubbles.org
  • Keep what incidents teach

    Incidentius

    Incident context and response, so the learning outlives the incident.

    incidentius.com

Who it is for today, and who should wait.

DataTug is early. Here is who it already serves well, and who should wait.

Best fit today

  • You investigate data that lives in more than one place.
  • You switch between terminal and browser and want the same session in both.
  • You want to bring your own model key, or use managed AI from the CLI.
  • You like tools you can inspect, script and run yourself.
  • You would rather shape meaning and provenance with us than wait for them.

Not the best fit yet

  • You need AI that already knows what your fields mean. MeaningGraph integration is planned.
  • You need to keep and share an investigation in the app today. Keeping an investigation and cloning the demo project are planned.
  • You need a dashboard builder for many teams. DataTug investigates; it is not a BI suite.
  • You need managed AI in the browser today. It is in development; bring your own key, or use the CLI.
  • You want one-click MCP for every agent. The MCP server is planned; the skills plugin and the CLI are available.
  • You need server-side masking and approval gates for production data. Both are planned.

What works today, and what is still ahead.

One list, kept in one place. Every status label on this page reads from it, so the page cannot disagree with itself.

Available

Shipped. You can use it today.

  • DataTug.app, the web app
  • Terminal app (TUI)
  • Chat in the CLI and TUI
  • Browser chat with your own API key
  • Managed AI in the CLI
  • Terminal-to-web session hand-off
  • <datatug-grid> and <datatug-chart> embeds
  • Skills plugin for coding agents
  • Cross-source DTQL joins in the CLI
  • Cross-source DTQL joins in the browser
  • Inspectable investigation trace
  • Local execution
  • Access policies
  • Anonymous web demo
Preview

Works from start to finish, but not everywhere yet.

    In development

    Being built now. Do not plan on it yet.

    • Observations grounded in your data
    • Managed AI in the web app
    Planned

    Designed and scheduled, not started.

    • MCP server
    • AI assistant in the query builder
    • AI assistant in schema discovery
    • Decisions by Jev, a decision model by TypeSafe AI
    • MeaningGraph integration
    • OVDB Directory API
    • Project data in inGitDB
    • UIBubbles runtime
    • Incidentius integration
    • Read-only connections
    • Approve an investigation step
    • Meaning-driven masking on the server
    • Control over what reaches a model
    • Audit trail merged with provenance
    • Clone the demo project
    Exploring

    An idea we are testing. It may change or be dropped.

    • MeaningGraph learning loop

    See it first. Install when you are convinced.

    The demo needs no account and no install. Ask a question, see the answer as a grid and a chart, and open the steps behind it.

    Star on GitHubDataTug is open source under Apache-2.0.

    What happens next

    1. AskRun a question in the live demo, with no sign-up.Available
    2. InspectOpen any step of the investigation and see the result as a grid and a chart.Available
    3. Keep itKeeping an investigation, cloning the demo project and connecting your own data are planned.Planned
    Ask DataTugLive demo, no account