The SEO Workspace chat can now run shell commands

What happened

  • SEO work has turned into file work. A single site plan now involves keyword lists, scraped pages, CSVs, drafts, images and exports, and there are hundreds of them per project.
  • The slow part is usually not writing the content. It is finding, sorting, renaming, merging and checking all of those files.

Why the old UI break

  • The old model gave each job its own button: one tool to scrape, one to spin, one to export. That works until the job you need has no button.
  • Chat assistants that can only see a text box cannot touch your files, so you end up copying and pasting between the assistant and a folder.

The operational problem

  • Before this update, our workspace chat had a separate small tool for each file action: list, search, edit, move, copy and delete. Each one did a single thing, and chaining them for a real job was slow and fragile.
  • Anything outside that set, such as counting rows across 40 CSVs or pulling every H2 out of a folder of drafts, meant doing it by hand.

The new approach

  • We replaced those six tools with one real shell. The chat now writes and runs the same commands a developer would use, including grep, sed, find and pipes, so it can combine steps in one go.
  • The shell is sandboxed. It can write only to the project’s scratchpad and your SCM files folder, and it cannot change anything else on your computer.
  • On Windows, SCM ships its own bash and runs it at low integrity, so you have nothing to install. On macOS and Linux, SCM runs your own shell inside a sandbox.
  • Fast file search (ripgrep) is built in on every platform.
  • A new view_image tool lets the chat look at images in your project, not just their file names.

What it looks like in practice

  • You can ask things like “find every draft that mentions the old brand name and list them”, “merge these keyword CSVs and remove duplicates”, or “rename the images in this folder to match their page slugs”.
  • The chat shows you each command before it runs, along with its output, so you can see exactly what it did.
  • Long output is saved to a file in the project rather than being cut off.

Where this goes next

  • Once the assistant can work with files directly, most one-off jobs no longer need a new feature from us. You describe the job and the chat puts it together.
  • This also sets up longer multi-step runs, where the chat researches, writes, checks and exports inside your workspace, and every intermediate file stays where you can inspect it.
  • We will keep the write sandbox tight as the chat takes on more of this work.