An Airtable base is where the data drifts. The tags get entered four different ways. The single-select has three values that mean the same thing. The long-text fields fill up with inconsistent copy, and the company names never quite match. Airtable's built-in AI helps with a handful of records and then stops, so a real hygiene pass across a few thousand rows stays a slow, cell-by-cell job nobody volunteers for.
Scratch pulls the whole base down as files on your computer. Your AI reads, rewrites, and cleans up every record there, not a sample, and about 10x faster than it works over the Airtable API, because it reads the files directly instead of making a call per record. Every change comes back as a word-level diff next to the original. Nothing reaches Airtable until you approve it, per record.
Scratch is the companion app to Whalesync: Whalesync keeps your Airtable bases in sync with your other tools, and Scratch is where you clean the records up first, so what syncs is already clean.
What Scratch edits in Airtable
- Long-text and rich-text fields
- Single-line text, including titles
- Single-select and multi-select tags
- Date, currency, and number fields
- Attachment captions
- Linked-record references
How it works
- Scratch pulls a base into files. Pull a whole base or a single table into a folder on your laptop, one file per record. Nothing touches the live base.
- Your AI edits the fields you point it at. Open the folder in the agent you already use. Try a prompt on a few records, then let it run across the whole table. The AI edits long-text and rich-text, single-line text and titles, single-select and multi-select tags, date, currency, and number fields, attachment captions, and linked-record references. Formulas, rollups, lookups, autonumber fields, and created/last-modified timestamps pass through untouched. Validators check your option sets so the AI cannot invent a new select value that breaks a view.
- You review every diff and publish. In the Scratch desktop app, each changed field shows next to the original, word by word. Approve what ships, and Scratch pushes only the records you approved back through the Airtable API. Deletions are supported when you want them.
What teams use it for
- Run a data-hygiene pass across a base: normalize company names, fix inconsistent fields, dedupe.
- Collapse near-duplicate single-select and multi-select values down to one agreed option.
- Standardize long-text and rich-text columns after a long stretch of mixed edits.
- Rewrite titles and descriptions in one consistent tone across a whole table.
- Tidy linked-record references and attachment captions that drifted as the base grew.
- Reconcile a base after a migration, so the fields and copy line up again.
Why not let AI write straight to Airtable?
An MCP server or a direct Airtable API write hands the AI the publish button straight to the live base. It is also the slow path: every record is an API call, and on a real base it falls over. There is no diff, no review queue, no rule layer, no rollback. One confident pass rewrites every record at once, and a single select value the AI invented can quietly break a view, an automation, or an interface that filters on it. By the time you notice, it is live for everyone, and the original field value is often gone.
Scratch gives the AI the same full read and write access, but against a local copy. The publish step is pulled out and handed to you. The AI can change any editable field; only you commit it. And every published record is reversible on its own, so a bad pass is never a one-way door.
What's safe, and what's locked
Formulas, rollups, lookups, autonumber fields, and created/last-modified timestamps are pass-through: the AI can read them for context, but they are never edited and never write back. Validators check your option sets, so the AI cannot invent a new single-select or multi-select value that breaks a view configuration. You bring your own AI: Scratch holds no AI credentials and runs no model, so you sign into Claude, Claude Code, Codex, Cursor, Copilot, Cline, or Windsurf the way you already do. Nothing leaves your machine until you publish, every published record is reversible per record, and the whole thing is Git-backed from the first sync. Optional Python validators, which the AI can author, flag edits that break a rule or touch a field you protected, right next to the diff.
See Airtable connected to your AI agent
Questions Airtable users ask
Will it overwrite my formula and rollup fields?
No. Formulas, rollups, lookups, autonumber fields, and created/last-modified timestamps pass through untouched. The AI can read them for context, but they are never edited and never write back, so the values Airtable computes for you are left exactly as they were.
Can the AI invent a select value that breaks my views?
It is guarded against. Validators check against your existing option sets, so the AI cannot quietly introduce a new single-select or multi-select value that breaks a view, an automation, or an interface that filters on it. Anything questionable is flagged next to the diff, and nothing writes back until you approve it.
Does it work on a base with thousands of records?
Yes. Big tables work the same as small ones. Pull 50 records to feel the flow, then pull 5,000. On local files the AI reads every record at once and works about 10x faster than over the API, because it reads files directly instead of making a call per record. The exception is write-back, which runs at the Airtable API's own speed for the records you approve.
Can it delete records, or only edit them?
Both. Editing is the common case, but deletions are supported when you want them. Like every other change, a deletion shows in the review queue and writes back through the Airtable API only after you approve it, so nothing is removed without your sign-off.
See it on your own Airtable
The fastest way to trust it is to watch it run on one of your own bases. Pull a table down, point your agent at it, and read the first diff.