Your coding agent connects your data, shapes it, and serves it live to your team — deterministic, self-hostable, built for millions of rows.
No AI bundled · bring Claude Code, Codex or Cursor · your model key
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.
Postgres, MySQL, Mongo, CSV/Excel, HTTP feeds — even a published Google Sheet by its CSV link. Linked live, auto-syncing, resilient.
Joins, rollups, formulas, dedupe — derived tables that recompute incrementally.
Invite teammates into the workspace — same tables, same views, formulas intact, updating in realtime. No exports, no stale screenshots.
Your agent turns questions into queries — deterministic, generation-stamped answers.
Ask the same thing 100 times, get the same number 100 times — with lineage you can replay.
A single Rust binary on your infra, or embedded in-process over a C ABI. No data leaves.
Publish the workbook's tabs to the web as CSV (File → Share → Publish to web), hand the links to channels, and they stay synced. If the source flakes, the channel backs off, breaks the circuit, and keeps serving the last good rows.
Three flaky CSV feeds in. One merged, generation-stamped daily P&L out — and the ops team watches it live in the workspace, formulas intact. You kept the spreadsheet; it just stopped being a file.
The coding agent you already run drives tabledi three ways — write once, both Claude Code and Codex eat it.
A columnar slot+pool engine in Rust — predicate pushdown, generation-stamped lineage, Arrow snapshots. The numbers are from its own benchmarks.
Columnar pushdown — 215× over row-based. COUNTIF lands 411×.
Same query, same answer, every run — generation-stamped.
75,000-row import — columnar-native, no row↔column thrash.
Your infra, or in-process over a C ABI. WASM next.
Install the command surface, log in, then hand it to your agent.
Deterministic, self-hostable, built for millions of rows — driven by the coding agent you already use.