Your agent ran it once.
tabledi is why you can trust it tomorrow.
A process ledger for agent-produced data: collect raw (append-only), LLM-clean in pulled batches, accept only what passes server-side golden spot-checks — a row in the result table means it was accepted. Every attempt, batch and model is accounted, and the rules live server-side where no agent can quietly rewrite them. Self-hostable, built for millions of rows.
No AI bundled · bring your coding agent — Claude Code, Codex, Cursor or any other · your model key
Say it in plain English. Your agent makes it real.
tabledi ships no AI of its own — your coding agent drives it. One tool surface underneath, so every step is the same whether it comes from chat, CLI, or MCP.
Connect anything
Postgres, MySQL, Mongo, Google Sheets, CSV — imported and kept in sync.
Merge & shape
Joins, rollups, formulas, dedupe — derived tables that recompute incrementally.
A result table you can trust
Accepted rows only — server-side golden checks gate every batch, and the clean table re-materialises on every write.
Ask in plain language
Your agent turns questions into queries — same answer every time, generation-stamped.
Same answer, every time
Ask the same thing 100 times, get the same number 100 times — each answer tagged with its exact data version, so you can replay it later.
Run it yourself
One Rust server binary on your own infrastructure — your data never leaves your network.
Point it at anything — even last night's eval logs.
No schema, no ETL. Your agent reads the scattered run logs, understands them, and ships a typed, queryable leaderboard — then you can pivot, chart, or share it.
| variant | pass | $/run | verdict |
|---|---|---|---|
| baseline | 86.5% | $0.012 | shipped |
| few-shot | 91.2% | $0.018 | candidate |
| chain-of-thought | 93.8% | $0.024 | candidate |
| + tools | 95.1% | $0.031 | ✓ winner |
| + self-check | 96.4% | $0.042 | too slow |
| + rerank | 94.0% | $0.029 | candidate |
480 scattered jsonl logs in. One typed, queryable, versioned leaderboard out — the same engine that ships your daily P&L.
Your agent. Your model key. tabledi's data.
The coding agent you already run drives tabledi three ways — from the command line, through MCP, or as a built-in skill. Same tools underneath, so they never drift.
Built for scale you can verify.
A columnar engine in Rust — handles millions of rows fast, with a versioned answer on every query so you can replay and verify it. The numbers below are from its own benchmarks.
1M-row rollup
Columnar pushdown — 215× over row-based. COUNTIF lands 411×.
Same answer
Same query, same result, every run — versioned for replay.
Bulk ingest
75,000-row import — columnar-native, no row↔column thrash.
Self-hostable
One Rust server on your infra, with your storage backend.
// representative numbers from the engine's own benchmarks — columnar predicate pushdown vs row-based fallback
From zero to a verified pipeline in 60 seconds.
Install the command surface, log in, then hand it to your agent.
Start free. Self-host when it matters.
Same engine on every tier. You only move up a rung when your workload does.
- ✓ multi-tenant shared base
- ✓ full CLI + MCP + skill
- ✓ evicted on logout
- ✓ dedicated, suspend-on-idle
- ✓ persistent workspaces
- ✓ priority refresh + channels
- ✓ true private deployment
- ✓ on your own infrastructure
- ✓ your infra, your data
Give your agent data it can be held to.
Golden rows gate every batch, the ledger records who and under which recipe, and the pipeline picks up where it left off. Same answer every time, self-hostable, millions of rows — driven by the coding agent you already use.