Five tabs. Five logins. No single number.

All your marketing data.
One dashboard
your AI can read.

Search Console, Google Ads, GA4 — each in its own tab, none of them adding up. TableBI pulls them into one set of numbers and one live dashboard that refreshes itself. Nothing goes on your site: no tracking script, no tag — it reads each platform’s own data. And your Claude Code can query all of it in plain language.

See a live demo — no sign-up →

Paste it into your Claude Code or Codex — it installs itself and walks you through connecting your first source. Read the prompt first · Prefer the web app?

$0 inference · your own Claude Code is the brain

Claude Code ● live
✦ thinking…
artifact tablebi
Clicks
48.2k
Impr.
1.4M
Avg pos
8.3
Clicks · daily
Top queries · clicks · pos
running shoes4,210 · 6.2
trail running shoes2,830 · 8.1
best running shoes 20261,940 · 11.4
marathon shoes1,120 · 9.7
↑ “best running shoes 2026” — striking distance
Shared · read-only
tablebi.com/d/k7f2qa ↗
live · refreshes itself · no login

Illustration — the numbers in this animation are made up. See a dashboard on real data →

› Paste & go

Your agent installs its own hands.

Paste this into Claude Code or Codex. It installs the CLI, plants the skill, and connects your account — you just answer a prompt or two.

$0 inference · your agent is the brain

tablebi — paste into Claude Code or Codex
Set up TableBI as my Claude Code's data backend — so you can connect my marketing sources, query them, and publish live dashboards for me.

1. Install:  npm i -g @tablebi/cli
2. Run tablebi install — it adds the tablebi skill so you'll know to use these commands next time.
3. Run tablebi login — it opens the browser to authorize; the first login also creates my account. Walk me through it.
4. Run tablebi context — confirm you're connected and show my sources + metric definitions.

Then tell me what's ready — always read the numbers from the CLI (never invent them), and ask before spending money or emailing a real person.
02 · Why your agent hits a wall

Claude Code is flow, not stock.

It's brilliant in the moment — and gone when you close the tab. It can't keep a source connected, can't refresh, can't keep the analysis, can't hand it to a client. And across five tools with five definitions of "conversion," it will compute a blended number — confidently, and wrong.

01

Can't hold the sources

OAuth, rate limits, schema drift across Google Ads, Meta, GA4, Search Console. The dirty work your agent shouldn't own.

02

Gets the numbers wrong

No shared metric definitions, so blended ROAS and CPA across platforms come out confidently miscalculated — the bug you can't see.

03

Can't keep it

The analysis evaporates: no refresh, no history, no link to send. Flow, never stock — so you redo it every Monday.

03 · The spine: Pipe → Ask → Pin

Connect once. Ask in two altitudes. Pin it live.

One backend under your agent. One trusted set of numbers runs through all three — so the number you ask is the number you pin is the number that refreshes. No LLM in the loop: reproducible and free.

01Pipe

Connect + unify

Search Console, GA4 and Google Ads today; Meta Ads in beta; any other channel as a CSV upload. TikTok Ads and Google Sheets are on the roadmap. OAuth once, kept synced. Normalized into one trusted set of numbers, with the rows each platform returns kept next to them.

02Ask

Two altitudes

Your Claude Code queries unified metrics (trusted, cross-channel) and raw (single-platform, full-granularity). $0 inference — your agent is the brain.

03Pin

Publish live

dashboard publish → a hosted read-only URL. Stores the query, not a snapshot — so it refreshes itself.

⌘

It's a CLI. tablebi install plants a skill into Claude Code / Codex — your agent learns the commands and your metric definitions, then drives everything in plain English. No prompt-engineering. Read the five-step quickstart in the docs →

04 · Trust and granularity, not either/or

Trusted numbers. Full granularity. Both.

Most tools make you pick: a clean blended number you can't drill into, or raw data your agent miscomputes. TableBI keeps both — your agent moves between them in one breath. The rows each connector pulls are kept as the platform reported them.

unified · cross-channel · trusted

One set of numbers you can trust.

One definition of cost, conversions, ROAS — reconciled across every platform. The number you quote the client.

$ tablebi query --kind breakdown --view metrics \
--metrics roas --by campaign --json
Blended ROAS · by campaignall sources
Prospecting4.6×
Retargeting3.9×
Brand Search0.9×
raw · native · single-platform · lossless

The platform's own fields, intact.

The native columns each connector pulls — Meta's reach and frequency, GA4's channels and AI sources, Search Console's queries and pages. Read-only SQL, one platform at a time.

$ tablebi context --sample --json
→ meta_ads_raw: reach, frequency, cpm…
$ tablebi ask --json \
"SELECT campaign, SUM(reach) AS reach \
FROM meta_ads_raw GROUP BY campaign"
Meta Ads · by campaign · nativesingle source
CampaignReach
Prospecting · Q3154,900
Retargeting · Q3126,500

Same files underneath. Unified metrics for the cross-channel story; raw when you need the platform's own metric. Your agent reads context to see what each altitude offers, then picks — you never trade trust for power.

05 · Your agent learns your data

No prompt-engineering. It interrogates the data.

An agent only knows what's in its context. So TableBI hands it the map, then lets it read the territory — install plants the skill, and a handful of bounded commands let it learn your metrics and your data before it ever queries.

tablebi install

Plant the skill

Drops a skill into Claude Code / Codex so the agent knows TableBI exists and when to reach for it. Binary on PATH ≠ agent knows.

tablebi context

Rehydrate in one call

Metric definitions, connected sources, freshness, dashboards, command signatures — --sample adds a few real rows. The live manifest the agent reads first.

query · ask

Interrogate the data

query asks for a metric by name and returns rows, the SQL it generated and the caveats; ask runs read-only SQL for anything the grammar can't express. Always bounded — safe to read into context.

06 · Why believe it

The moat is trust + persistence, not AI.

"We added AI" is a moving target — everyone's bolting it on. The hard, load-bearing layer is the boring one underneath: the cleaning and unified definitions that make a number defensible, and the persistence that keeps it alive. That's what we built first.

Instead of Their gap TableBI
Claude Code on a raw DB
just point your agent at the data
Multi-source breaks; the metrics get miscomputed; nothing persists. Raw SQL is powerful and dangerous. Trust without losing granularity (raw), plus persistence (Pin) and managed connectors.
Dashboard tools
Looker Studio · AgencyAnalytics
Hand-built, GUI-first; you decode the charts yourself. Agent-driven, two altitudes, trusted numbers + the agent's read. Entry is the agent, not a GUI.
Traditional BI Heavy, expensive, needs a data model before it does anything. Agent-native, metric definitions ready, opens to value — marketing connectors out of the box.
06.5 · Boundaries

What TableBI is not

Not a site analytics tool

It never touches your site — no script, no tag. Visitors, funnels, session replay: that is what Plausible and PostHog are for. TableBI reads what happens before the click — spend, impressions, rank — which no tracking script can see.

Not an ad manager

It reads your ad accounts. It never changes a bid, a budget or a campaign — nothing here can spend your money.

Not a content generator

It hosts no model and writes no copy. Your own agent does the thinking; TableBI keeps the numbers it thinks with honest.

07 · Start now

Stop opening five tabs
to answer one question.

Connect your sources once. One set of numbers, one live dashboard, and an agent that can query all of it. Your key, your agent, your numbers. The free plan covers one source and one live dashboard.

Open the app →

Not ready to connect anything? Open the live demo dashboard — real data, no sign-up.

$0 inferenceYour agent is the brainConnect · Ask · Pin