Copilot Actions works a folder of files from plain English, no script in sight. Your Sanity content lives in the Content Lake, not a folder, and the only way to bulk-edit it is a mutation script a developer writes and runs against the same content your site serves, with no review attached. So the pass you want, tighten every excerpt and fill the empty SEO descriptions, waits in someone's backlog.
Scratch pulls your dataset down, one file per published document. Copilot edits the fields on your laptop; Scratch shows each change as a diff; it publishes only the changes you approve, as sparse patches through Sanity's transactional Mutation API. Your schema, assets, and drafts stay untouched.
How it works
- Scratch pulls your dataset into files. Every published document becomes a local JSON file, organized by document type, with your deployed Studio schema keeping your authored field order and titles.
- Copilot edits the documents. Open the Copilot app on Windows and attach your Scratch folder to Copilot Actions. Describe the change in plain English and it works through the dataset in its own agent workspace while you watch. Tighten every excerpt to two sentences and fill the empty SEO descriptions. Copilot works the files, never the live Content Lake.
- You review every diff and publish. Back in the Scratch app, each changed field sits beside the original, word by word. Approve what holds up, and Scratch publishes only those changes through the Mutation API.
What people use it for
The content edits that wait for a developer because the Studio only does one document at a time:
- Run a tone or terminology pass across every post, page, and product.
- Fill empty SEO titles and meta descriptions across a document type.
- Normalize slugs and titles so published URLs are consistent.
- Rewrite Portable Text bodies without flattening them to plain text.
- Re-point references in bulk, like moving posts between authors or categories.
Run it on 50 documents to feel the loop, then hand Copilot the dataset.
Why not the Sanity MCP server?
The Sanity MCP, or a mutation script with a robot token, hands the AI a live write path to the Content Lake. Every mutation publishes immediately to the same content your site serves, with no review in between.
Scratch gives Copilot the same full read and write access, but against a local copy. The publish step is pulled out and handed to you. Copilot can change anything editable; only you can commit it. On the content your site renders to visitors, that is the difference that matters.
What Copilot edits in Sanity
- Titles, slugs, and string fields across every document type
- Portable Text rich text, kept as the structured blocks Sanity stores
- Numbers, booleans, datetimes, tags, and nested objects like SEO settings
- References between documents, single or arrays
Scratch edits field values, never your schema: document types, validation rules, and the Studio stay defined exactly as you wrote them. System fields are read-only, image and file assets are out of scope, and drafts are untouched. For the full picture, see Scratch for Sanity.
Questions people ask
Is this the Sanity MCP server?
No. The MCP hands the AI a live mutation path to your Content Lake. Scratch keeps it. Copilot gets the same access, and publishing is a separate step you approve, one document at a time.
Does it mangle Portable Text?
No. Portable Text stays the structured blocks Sanity stores, so marks, links, and nested lists survive the round trip. Images and custom blocks inside rich text stay as they are: Copilot edits the prose around them.
Can I roll a change back after it publishes?
Yes. Scratch keeps the original beside the rewrite, so every published change reverts per document. You decide which version stays.
How is this different from asking a developer for a mutation script?
A script does exactly what was spelled out and nothing smarter, publishes with no document-by-document review, and waits in a backlog first. Copilot takes the instruction in plain English today, and Scratch holds every change for your review before it commits.
Can it work through a whole dataset from one instruction?
Yes, that is the use case. Run it on 50 documents to feel the flow, then hand it the whole dataset. Copilot Actions works through it in its own agent workspace.
Do I need to be technical?
Connecting Sanity takes a robot token from sanity.io/manage, a copy-paste step your developer can do once. Scratch finds the project and dataset itself. After that, the loop is plain English: describe the change, then approve the diffs.
See it on your own dataset
The fastest way to trust it is to watch it run on your data. Book a 30-minute demo on your Sanity dataset →, or try Scratch free and take the first pass yourself.