Simon Willison’s Weblog

Subscribe

First impressions of Claude Cowork, Anthropic’s general agent

12th January 2026

New from Anthropic today is Claude Cowork, a “research preview” that they describe as “Claude Code for the rest of your work”. It’s currently available only to Max subscribers ($100 or $200 per month plans) as part of the updated Claude Desktop macOS application.

I’ve been saying for a while now that Claude Code is a “general agent” disguised as a developer tool. It can help you with any computer task that can be achieved by executing code or running terminal commands... which covers almost anything, provided you know what you’re doing with it! What it really needs is a UI that doesn’t involve the terminal and a name that doesn’t scare away non-developers.

“Cowork” is a pretty solid choice on the name front!

What it looks like

The interface for Cowork is a new tab in the Claude desktop app, called Cowork. It sits next to the existing Chat and Code tabs.

It looks very similar to the desktop interface for regular Claude Code. You start with a prompt, optionally attaching a folder of files. It then starts work.

I tried it out against my perpetually growing “blog-drafts” folder with the following prompt:

Look at my drafts that were started within the last three months and then check that I didn’t publish them on simonwillison.net using a search against content on that site and then suggest the ones that are most close to being ready

Screenshot of Claude AI desktop application showing a "Cowork" task interface. Left sidebar shows tabs for "Chat", "Code", and "Cowork" (selected), with "+ New task" button and a task titled "Review unpublished drafts for pu..." listed below. Text reads "These tasks run locally and aren't synced across devices". Main panel header shows "Review unpublished drafts for publication". User message in green bubble reads: "Look at my drafts that were started within the last three months and then check that I didn't publish them on simonwillison.net using a search against content on that site and then suggest the ones that are most close to being ready". Claude responds: "I'll help you find drafts from the last three months and check if they've been published. Let me start by looking at your drafts folder." Below is an expanded "Running command" section showing Request JSON with command: find /sessions/zealous-bold-ramanujan/mnt/blog-drafts -type f \\( -name \"*.md\" -o -name \"*.txt\" -o -name \"*.html\" \\) -mtime -90 -exec ls -la {} \\;, description: Find draft files modified in the last 90 days. Response text begins: "Found 46 draft files. Next let me read the content of each to get their titles/topics, then". Right sidebar shows Progress section with three circular indicators (two checked, one pending) and text "Steps will show as the task unfolds.", Artifacts section listing "publish-encouragement.html", Context section with "Selected folders" showing "blog-drafts" folder, Connectors showing "Web search", and Working files listing "llm-digest-october-2025.md", "tests-not-optional-coding-agen...", and "digest-november-2025.md". Bottom shows reply input field, "Opus 4.5" model selector, user "Simon Willison" with "Max plan", and disclaimer "Claude is AI and can make mistakes. Please double-check responses."

It started by running this command:

find /sessions/zealous-bold-ramanujan/mnt/blog-drafts \
  -type f \( -name "*.md" -o -name "*.txt" -o -name "*.html" \) \
  -mtime -90 -exec ls -la {} \;

That /sessions/zealous-bold-ramanujan/mnt/blog-drafts path instantly caught my eye. Anthropic say that Cowork can only access files you grant it access to—it looks to me like they’re mounting those files into a containerized environment, which should mean we can trust Cowork not to be able to access anything outside of that sandbox.

It turns out I have 46 draft files from the past three months. Claude then went to work with its search tool, running 44 individual searches against site:simonwillison.net to figure out which of my drafts had already been published.

Here’s the eventual reply:

Based on my analysis, here are your unpublished drafts that appear closest to being ready for publication:


🔥 Most Ready to Publish (substantial content, not yet published)

  1. freq-argued-llms.md—“Frequently Argued Questions about LLMs” (22,602 bytes)
    • This is a meaty piece documenting common arguments about LLMs with your counterpoints
    • Well-structured with a TL;DR and multiple sections
    • No matching published article found on your site
    • Very close to ready—just needs a final review pass
  2. claude-code-timeline.md—“Claude Code Timeline and Codex Timeline” (3,075 bytes)
    • About viewing JSONL session logs from Claude Code and Codex
    • You published claude-code-transcripts on Dec 25, but this appears to be a different/earlier piece about timeline viewing tools
    • Shorter but seems complete
  3. datasette-1a20-upgrade-instructions.md—Plugin Upgrade Guide (3,147 bytes)
    • Technical guide for plugin authors
    • You published the main 1.0a20 announcement but this companion upgrade guide appears unpublished
    • Would be valuable for plugin maintainers

That’s a good response! It found exactly what I needed to see, although those upgrade instructions are actually published elsewhere now (in the Datasette docs) and weren’t actually intended for my blog.

Just for fun, and because I really like artifacts, I asked for a follow-up:

Make me an artifact with exciting animated encouragements to get me to do it

Here’s what I got:

Screenshot of the same Claude AI desktop application Cowork interface, now showing completed task results. Left panel shows "1 step >" with link "View your animated encouragement page". Claude's response reads: "I created an over-the-top animated encouragement page with:" followed by bullet points: "🚀 Pulsing rockets and bouncing stats", "✨ Falling emoji rain and confetti", "🔥 Dancing fire emojis around your draft title", "💫 Sparkles that follow your mouse", "📊 An animated '95% ready' progress bar", "💬 Rotating motivational quotes", "🎉 A 'I'M GONNA DO IT!' button that triggers an explosion of confetti when clicked". Center shows an artifact preview of the generated HTML page with dark background featuring animated rocket emojis, large white text "PUBLISH TIME!", stats showing "22,602 bytes of wisdom waiting", "95% ready to ship", infinity symbol with "future arguments saved", and a fire emoji with yellow text "Frequently" (partially visible). Top toolbar shows "Open in Firefox" button. Right sidebar displays Progress section with checkmarks, Artifacts section with "publish-encouragement.html" selected, Context section showing "blog-drafts" folder, "Web search" connector, and Working files listing "llm-digest-october-2025.md", "tests-not-optional-coding-agen...", and "digest-november-2025.md". Bottom shows reply input, "Opus 4.5" model selector, and disclaimer text.

I couldn’t figure out how to close the right sidebar so the artifact ended up cramped into a thin column but it did work. I expect Anthropic will fix that display bug pretty quickly.

Isn’t this just Claude Code?

I’ve seen a few people ask what the difference between this and regular Claude Code is. The answer is not a lot. As far as I can tell Claude Cowork is regular Claude Code wrapped in a less intimidating default interface and with a filesystem sandbox configured for you without you needing to know what a “filesystem sandbox” is.

Update: It’s more than just a filesystem sandbox—I had Claude Code reverse engineer the Claude app and it found out that Claude uses VZVirtualMachine—the Apple Virtualization Framework—and downloads and boots a custom Linux root filesystem.

I think that’s a really smart product. Claude Code has an enormous amount of value that hasn’t yet been unlocked for a general audience, and this seems like a pragmatic approach.

The ever-present threat of prompt injection

With a feature like this, my first thought always jumps straight to security. How big is the risk that someone using this might be hit by hidden malicious instruction somewhere that break their computer or steal their data?

Anthropic touch on that directly in the announcement:

You should also be aware of the risk of "prompt injections": attempts by attackers to alter Claude’s plans through content it might encounter on the internet. We’ve built sophisticated defenses against prompt injections, but agent safety---that is, the task of securing Claude’s real-world actions---is still an active area of development in the industry.

These risks aren’t new with Cowork, but it might be the first time you’re using a more advanced tool that moves beyond a simple conversation. We recommend taking precautions, particularly while you learn how it works. We provide more detail in our Help Center.

That help page includes the following tips:

To minimize risks:

  • Avoid granting access to local files with sensitive information, like financial documents.
  • When using the Claude in Chrome extension, limit access to trusted sites.
  • If you chose to extend Claude’s default internet access settings, be careful to only extend internet access to sites you trust.
  • Monitor Claude for suspicious actions that may indicate prompt injection.

I do not think it is fair to tell regular non-programmer users to watch out for “suspicious actions that may indicate prompt injection”!

I’m sure they have some impressive mitigations going on behind the scenes. I recently learned that the summarization applied by the WebFetch function in Claude Code and now in Cowork is partly intended as a prompt injection protection layer via this tweet from Claude Code creator Boris Cherny:

Summarization is one thing we do to reduce prompt injection risk. Are you running into specific issues with it?

But Anthropic are being honest here with their warnings: they can attempt to filter out potential attacks all they like but the one thing they can’t provide is guarantees that no future attack will be found that sneaks through their defenses and steals your data (see the lethal trifecta for more on this.)

The problem with prompt injection remains that until there’s a high profile incident it’s really hard to get people to take it seriously. I myself have all sorts of Claude Code usage that could cause havoc if a malicious injection got in. Cowork does at least run in a filesystem sandbox by default, which is more than can be said for my claude --dangerously-skip-permissions habit!

I wrote more about this in my 2025 round-up: The year of YOLO and the Normalization of Deviance.

This is still a strong signal of the future

Security worries aside, Cowork represents something really interesting. This is a general agent that looks well positioned to bring the wildly powerful capabilities of Claude Code to a wider audience.

I would be very surprised if Gemini and OpenAI don’t follow suit with their own offerings in this category.

I imagine OpenAI are already regretting burning the name “ChatGPT Agent” on their janky, experimental and mostly forgotten browser automation tool back in August!

bashtoni on Hacker News:

Simple suggestion: logo should be a cow and and orc to match how I originally read the product name.

I couldn’t resist throwing that one at Nano Banana:

An anthropic style logo with a cow and an ork on it

This is First impressions of Claude Cowork, Anthropic’s general agent by Simon Willison, posted on 12th January 2026.

Previous: My answers to the questions I posed about porting open source code with LLMs

Monthly briefing

Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

Pay me to send you less!

Sponsor & subscribe