🧭 Cowork Is Outpacing Claude Code's Early Adoption — Anthropic CCO
While the Claude Code source leak dominated headlines on April 1, Bloomberg reported on a separate, quieter story: Anthropic's Chief Commercial Officer Paul Smith said that Cowork — the general-purpose file-managing agent launched in January 2026 — is already seeing stronger early adoption than Claude Code did at the same point in its lifecycle. The comparison is striking given that Claude Code's early growth was itself considered exceptional, reaching developer audiences rapidly after launch.
Why Cowork's trajectory matters
Smith's explanation is straightforward: engineers typically represent just 2–5% of a large organisation's workforce. Claude Code targets that small slice. Cowork targets everyone else — the product managers, analysts, marketers, HR teams, and executives who work with files but have never run a terminal command. By going horizontal, Anthropic has opened a much larger total addressable market with a single product.
- Launched: January 12, 2026, integrated into Claude Desktop for Pro and Max plans
- Core capability: Designate a folder; issue read/write instructions in plain English; no code required
- Early coverage framing: TechCrunch called it "Claude Code without the code"; Fortune noted it could threaten dozens of file-management and productivity startups
- Latest: Cowork added persistent agent threads (March 22) and Mac computer use in research preview (March 23), extending its reach further
What this means for teams evaluating AI tools
If your organisation has a Claude Code pilot running for engineers, consider a parallel Cowork pilot for non-technical staff. The productivity gains in one group tend to generate internal demand in the other — and both are now covered under the same Pro or Max subscription.
Cowork
enterprise adoption
Claude Desktop
AI agents
product growth
🧭 The Leak’s Other Revelation: Claude Code Tracks User Sentiment in Real Time
Yesterday’s diary covered Proactive Mode and autonomous payment rails hidden in the leaked Claude Code source. But engineers who read deeper found a third surprise: the codebase contains active pattern matching on user messages to detect emotional state. Phrases like “so frustrating,” “this sucks,” and profanity trigger internal flags that log a frustration signal against the session. Scientific American reported this as one of the more unexpected discoveries in the leaked code — and it raises genuine questions about what Anthropic does with that signal.
What the sentiment tracking does (as far as we know)
- Pattern matching: A list of negative-sentiment phrases and profanity triggers a frustration flag in the session metadata
- Scope: The logging appears to be session-level telemetry, not stored per-user or linked to account identity in the visible code paths
- Likely purpose: Aggregate frustration signals help Anthropic identify which workflows or model behaviours are most friction-prone, guiding future improvements
- Not confirmed: Anthropic has not publicly commented on this specific feature from the leak
The $2.5B run-rate context
Bloomberg’s April 1 coverage of the leak also cited Claude Code’s annualised revenue run-rate at approximately $2.5 billion as of February 2026 — a figure that, if accurate, represents extraordinary growth for a product launched as a research preview less than a year earlier. This figure was attributed to unnamed sources familiar with Anthropic’s finances; Anthropic has not confirmed it. Treat it as an estimate.
Transparency consideration for developers
If you are building Claude-powered products and collecting sentiment signals from user interactions, consider disclosing this in your privacy policy. Users generally accept that AI products analyse interaction quality — but they expect to be told.
claude code
user sentiment
telemetry
source leak
observability
🧭 Build Your Own AI Observability Layer: Lessons from the Leak
The discovery that Claude Code monitors user frustration internally is a reminder that good AI products treat observability as a first-class concern, not an afterthought. If Anthropic is doing it at the infrastructure level, you should be doing it at the application level — and you have more control over what you capture and how you use it. Here is a practical pattern for adding sentiment and quality observability to any Claude API application.
Three signals worth instrumenting
- User satisfaction proxy: Detect negative-sentiment follow-ups — re-prompts that start with “that’s wrong,” “not what I meant,” or “try again” — as a proxy for response quality failure
- Turn count per goal: Count how many assistant turns it takes to resolve a user intent. High turn counts signal either a complex task (expected) or a friction point (actionable)
- Session abandonment: Track sessions where the user stops responding mid-task without a natural completion. High abandonment rates on specific task types pinpoint where your product is losing users
# Minimal frustration-signal detector (Python)
FRUSTRATION_PATTERNS = [
"that's wrong", "not what i meant", "try again",
"that doesn't work", "still wrong", "you misunderstood",
"this is useless", "terrible", "awful",
]
def is_frustrated(user_message: str) -> bool:
msg = user_message.lower()
return any(p in msg for p in FRUSTRATION_PATTERNS)
# Log the signal alongside session metadata
def log_turn(session_id, turn_index, user_msg, assistant_msg):
frustrated = is_frustrated(user_msg)
# Write to your telemetry system (Datadog, Mixpanel, a DB table…)
telemetry.record({
"session_id": session_id,
"turn": turn_index,
"frustrated": frustrated,
"user_msg_len": len(user_msg),
"response_len": len(assistant_msg),
})
Privacy-first design
Capture the signal, not the content. Log a boolean frustrated=True and the turn index — not the full message text. You get the quality signal you need for product decisions without storing sensitive user prose. If you must log message content for debugging, store it encrypted with a short TTL (7–14 days) and ensure your privacy policy discloses it clearly.
Aggregate, don’t individualise
The most actionable use of sentiment signals is aggregate: “Task type X has a 34% frustration rate; task type Y has 8%.” Surfacing individual user frustration scores creates privacy risk and rarely leads to better product decisions. Build dashboards that roll up to task type, model version, or feature area — not to user identity.
observability
best practices
user sentiment
telemetry
API
privacy