You want to point Claude at the content tables in your Supabase database and say rewrite every product blurb to under 60 words and fill the empty meta_description column. What stops you is that it is the production database. A bulk UPDATE has no review in between, the service role bypasses Row-Level Security, and there is no CMS in front to catch a bad write.
Scratch changes where the edit happens. Claude does 99% of the work, reading and rewriting the content rows as files on your laptop. The last 1%, deciding what actually writes back, stays with you. Nothing reaches the live table until you have seen the change as a diff and approved it.
How it works
- Scratch pulls a table into files. Pick a table and each row becomes a local file on your laptop, prose columns laid out as editable fields.
- Claude edits the rows. Open the folder in the Claude desktop app. Try a prompt on a few rows in Chat, then let Cowork or Code run it across the whole table. Rewrite every product blurb to under 60 words and fill the empty meta_description column. Claude edits the files, never the live table.
- You review every diff and publish. Scratch shows each changed column next to the original, word by word. Approve what ships, and Scratch updates only those rows through the standard Postgres driver.
What people use it for
Most people arrive with content that lives in Postgres with no CMS in front of it, so editing it means writing SQL by hand against production.
- Rewrite product copy or blog posts stored directly in the database.
- Fill empty meta_description, slug, or title columns across a content table.
- Tighten every blurb to a length your UI actually expects.
- Normalize a JSONB content field across rows.
- Clean up a knowledge-base table before it powers search.
Pull 50 rows to feel the loop, then point Claude at the whole table.
Why not an MCP server?
A Supabase MCP server or a direct service-role script hands Claude a live connection to your database. The write path is wired straight in, so one bad query rewrites every row at once, with no review and Row-Level Security bypassed.
Scratch gives Claude the same full read and write access, but against a local copy. The write-back step is pulled out and handed to you. Claude can change anything; only you can commit it. On a production database, that is the difference that matters.
What Claude edits in Supabase
- Text and rich-text columns in any user-defined table
- JSON and JSONB columns
- Slug, title, and description fields
- Row-level edits, no schema changes
Primary keys, foreign keys, timestamps, computed columns, and check constraints stay where they are. The auth and storage schemas are excluded from discovery, so user accounts and uploaded files are out of scope, and validators enforce your column constraints so Claude cannot write a value the database would reject. For the full picture, see Scratch for Supabase.
Questions people ask
Is this an MCP server or a direct database connection?
No. An MCP or a service-role script gives Claude a live write path to your database. Scratch does not. Claude gets the same access, but writing back is a separate step you approve, one row at a time.
Will Claude change my schema or my keys?
No. Primary keys, foreign keys, timestamps, computed columns, and check constraints stay locked, and the auth and storage schemas are excluded entirely. Claude edits content columns only, and validators reject anything the database would.
Can I undo a change after it writes back?
Yes. Every written row is reversible from Scratch, per row. The original sits next to the rewrite until you decide which one stays.
Why not just run an UPDATE or a migration?
A hand-written UPDATE does exactly what you spelled out and nothing smarter, and it writes straight to the live table with no row-by-row review. Scratch puts an agent on the edit, so it handles the rows a single statement cannot, and holds every change as a word-level diff you approve before it commits.
Can it handle a big table at once?
Yes, that is the use case. Pull 50 rows to feel the flow, then pull the whole table. Cowork and Code are built for table-scale jobs.
Do I need to be technical?
Connecting Supabase takes a connection string, so the setup is a developer step. After that, the loop is the same as any Scratch source: point Claude at the folder and approve the diffs.
See it on your own tables
The fastest way to trust it is to watch it run on your data. See it run on your Supabase tables →, or download Scratch free and run the first pass yourself.