Talk to your data.

www.tamedtable.com · 2026-08-02 · by Long Nguyen ·generic
TamedTable is an AI ETL (Extract, Transform, Load) tool: load tabular data, describe what you want, and watch it transform. No formulas, no code. Source-available, runs on your own API key.

Talk to your data.

Talk to your data.

Load tabular data, say what you want, and watch it happen. AI ETL: no formulas, no code.

Open Web App View on GitHub

No API key? Take a guided tour: it replays real sessions, free.

TamedTable

\> normalize the phone numbers

| Name | Phone | Country | | ----------- | -------------------------- | ------- | | John D. Doe | (200) 555-1234+12005551234 | USA | | Anna Müller | +49 555 6789+495556789 | Germany | | 张三 | +86 555 1234+865551234 | China |

Every common data job, in natural language

Transform with context

The AI understands context, so it cleans, enriches, classifies, and validates — things no formula can.

See everything

See changes as they happen. Nothing is hidden: TamedTable is source-available, and runs on your own API keys.

Reuse and automate

Every change saves as steps you replay on new data, or export as a Python script. Runs in browser and CLI.

Read many formats

Open CSV, JSONL, Parquet, and Arrow files — local, from a URL, or a bundled sample.

How it works

1

Add API keys

Just the first time you start the app.

2

Open a file

CSV, JSONL, Parquet, or Arrow. Local or from a URL.

3

Say what you want

Works in any language: English, Chinese, etc.

4

Watch changes

Dislike changes? Undo anything.

5

Automate

You made a recipe; replay it on new data.

Lazy AI execution

Preview for cents, run for real when you're sure. AI steps fill the page you are looking at; the rest waits until you ask.

open a 25,000-row fileStarts as a shuffled sample; saving keeps the original order "add a Category column"Fills the rows on screen right away; the pager marks what's pending Run on all rowsRows, cost, and time shown before you commit; finished rows are kept

Previewing an AI step on one page of a big file

Show me →

Clean up

Fix messy fields the way a person would. The AI reads each row's context before deciding.

"normalize the phone numbers"Dialing prefix inferred from regions "make the country names consistent"Folds UK / England / United Kingdom into one "fix the capitalization of names"Handles McDonald, van der Berg "clean up the birth dates"Knows 03/04 is March in the US, April in the EU

Cleaning a data table

Show me →

Enrich & extract

Add what isn't there yet. The model fills the gaps and pulls structure out of free text.

"split the address into Street, City, and Zip"Structures whatever mess they typed "fill the country from the city column"Knows Osaka → Japan "add the industry for each company"Inferred from company names "extract the amount and date from the memo, refunds negative"Pulled from free text, refunds signed

Enriching a data table

Show me →

Classify

Sort rows by what they mean. The AI reads what each row is about.

"label each ticket as billing, bug, or feature"Reads the ticket's meaning "classify the ticket sentiment into positive, negative and neutral"Reads the verdict, even in mixed tickets "sort the titles by seniority"Ranks senior → junior "split customers into men, women, and unknown"Gender inferred from first names

Classifying rows in a table

Show me →

Validate

Catch the wrong-looking rows before anyone else does.

"flag emails that look fake"bill.gates@microsoft.com probably didn't sign up "flag any impossible birth date, like Feb 30th or year 1873"Dates that parse can still be impossible "check the city matches the country"Paris, Japan gets a second look "flag prices that seem wrong"Catches the missing zero before Reddit does

Flagging suspicious rows

Show me →

Process language

Summarize, translate, and classify any language.

tap the micSay any command out loud, hands-free "tag the language of every comment"Language detected per row "translate the comments to English"From any source language "add a one-line Summary for each comment"Even the 500-word rant "normaliza los números de teléfono"Ask in any language, voice or text

Language tasks on a table

Show me →

Be exact

The everyday spreadsheet jobs are still here; deterministic and repeatable.

"Remove the duplicate rows"Dedupe "Join with join-country-codes.csv on Country to add ISO and Region"Join two tables "Show only customers in Europe"Filter rows — on the column the join just added "Pivot Quarter into columns, with Revenue as the value"Reshape tall to wide "Sort by Q4, descending"Sort or top-N

Filtering and reshaping a table

Show me →

Load, save & reuse

Your work is yours to keep. Load from anywhere, save the data or the recipe, undo anything.

a file or a URLLoads CSV, JSONL, Parquet, Arrow from web or CLI :save clean.csvSave data to CSV, JSONL, Parquet, or Arrow :save-flow tidy.flowSave transformations as a TamedTable script :save-py tidy.pySave transformations as a Python script :undo / :redoUndo/redo any change

Loading, saving and replaying steps

Trustworthy by design

A repeatable recipe

Each request becomes a small spec you can read. Deterministic steps run in a real SQL engine, and the same recipe replays on next month's file.

Undo anything

Every change lands in the history. Step back one change or all of them; the original file on your disk is never touched.

Leave anytime

Export any recipe as a plain Python script and run it without TamedTable. Your data stays in open formats; there is no lock-in to defend.

Tested & benchmarked

CI replays 606 test scenarios on every commit. In our benchmark, the default model matched hand-checked labels 96.7% of the time, at $0.15 per 1,000 rows classified.

Try it in two minutes

Source-available. Runs on your own API key, or take the guided tour without one.

Open the web app View on GitHub

www.tamedtable.com · 8 images · 8 links

Comments (0)

No comments yet