TL;DR — Cowork hands Claude a real keyboard, Claude Code finally speaks PowerShell and supports drop-in policy fragments, hooks get conditional filtering, mobile renders interactive charts, and Shopify lets you branch checkout per market. Seven releases, one theme: the boring gaps are getting filled.
The theme
This is not the week Anthropic or Shopify announced a headline product. It is the week both companies quietly shipped the parts they had been avoiding. Computer use moves from research paper to a button inside Cowork. Claude Code stops pretending Bash is universal and lands PowerShell, policy-fragment directories, and conditional hooks — the three things a platform team actually needs to roll it out across an org. Claude mobile catches up to the web's interactive apps. Shopify gives non-Plus merchants per-market checkout customization inside the editor, and a new app puts LLM-driven shoppers against your theme before you ship it.
The pattern is platforms meeting their power users where the friction actually lives. Last year's story was "can the model do it at all." This year's story is "can a team of ten deploy it without writing a wrapper first." Every item below answers that second question with a yes.
1. Computer Use Lands in Cowork: Claude Drives Your Desktop (original)
Overview
On March 23, Anthropic shipped a research preview of computer use inside Cowork for Pro and Max plans. Claude gets a virtual keyboard, a virtual mouse, and visual access to an isolated VM running on your machine. You ask it to open a file, it opens the file. You ask it to update a slide in the Q1 deck, it launches the deck, finds the slide, types the new numbers, exports to PDF. The research-preview version of computer use has existed for a while, but standing it up meant containers, screen-grab daemons, and a virtual display server. Cowork hides every bit of that plumbing behind a toggle.
Technical
The sandbox is the same isolated VM Cowork has shipped since its original preview. What is new is the input surface inside it: keyboard, mouse, and a streaming display the model can actually see. The VM is provisioned on first use and sandboxed from your host filesystem by default — if you want Claude to touch a real file, you mount it in. Cowork's text agent thread is bidirectional with the computer-use session: start a task as text, and when Claude decides it needs to click through a GUI, the VM display pops up and the thread continues after the work is done.
Latency on the visual loop is the dominant cost. Every click costs a screen capture, a model inference, and a coordinate prediction. A 30-second task for a human is a 2–3 minute task for Claude. I ran a test that asked it to update CAC numbers on a board deck and export to PDF. Six minutes end to end, two cursor mispredictions that it self-corrected, one clean export dropped back into the thread as an attachment. Recovery from dialog misclicks is still rough, so watch sessions closely.
Takeaway
Computer use in Cowork changes what counts as delegable. The bar is no longer "is there an API?" — it is "can a person do it visually?" Pick one recurring click-through task you would rather not do and hand it over once. If the latency budget works, you have bought back an hour a week. If it does not, you have mapped the boundary of where this capability earns its keep today.
2. Claude Code Adds PowerShell Tool for Windows (original)
Overview
Running Claude Code on Windows has meant one of two bad compromises: install Git Bash and let the harness pretend it is on Linux, or work inside WSL and pay for virtualized filesystem friction on every call. Claude Code 2.1.84 shipped a real fix — an opt-in PowerShell tool that runs as native PowerShell, with permission rules that understand PowerShell syntax. If your stack is .NET, if your dev scripts end in .ps1, or if you manage Windows infrastructure at all, this is the release where Claude Code stops fighting your environment.
Technical
The tool is preview and opt-in via config. Once enabled, Claude Code routes shell tool calls through PowerShell instead of Bash. The model prompt gets version-aware syntax guidance — PowerShell 5.1 (the default on Windows 10 and 11) and 7+ differ enough to matter. Permission checks are PowerShell-aware, and the hardening work across 2.1.84 and 2.1.90 closes several real holes: trailing & background-job bypass, -ErrorAction Break hangs, archive-extraction TOCTOU, and a parse-fail fallback that used to quietly degrade to deny. Get on 2.1.90 or later before you turn this on for a team.
Adjacent fixes land in the same window. /env now propagates to PowerShell calls, not just Bash. External commands with arguments containing both a double-quote and whitespace prompt instead of auto-allowing — friction is correct here given PowerShell 5.1's argument-splitting quirks. A 2.1.89 fix stopped treating stderr progress from commands like git push as a failure, which was the kind of bug that wastes an hour before you realize the harness is lying to you. CLAUDE_STREAM_IDLE_TIMEOUT_MS, an x-client-request-id header for proxy debugging, a TaskCreated hook, and improved detection for dangerous removals of C:\ and C:\Windows all land alongside.
Takeaway
If you have a Windows-first project, enable the PowerShell tool in a test session this week, run your three most common workflows, and grep your skills and slash commands for hardcoded Bash idioms. Move the ones that break. The year of "Claude Code is a Linux tool you run on Windows" is over.
3. Claude Code managed-settings.d Lets Teams Ship Policy Fragments (original)
Overview
Every org running Claude Code across multiple teams hits the same wall: managed-settings.json is a single file owned by a single team, and every other team's policy lives as comments on a pull request. Claude Code 2.1.83 adds a managed-settings.d/ drop-in directory that merges JSON fragments alphabetically, exactly the way /etc/sudoers.d and /etc/sysctl.d have worked on Linux for twenty years. The same release added CwdChanged and FileChanged hook events, which together give you the primitives for direnv-style environment management inside a session.
Technical
Drop fragments next to the existing managed-settings.json (10-security.json, 20-permissions.json, 30-mcp.json) and the harness composes the final config. Later files win on conflicting keys, arrays concatenate where the schema allows it, and the legacy file continues to work. The pattern it enables is per-team ownership: security owns 10-security.json, platform owns 20-permissions.json, the MCP team owns 30-mcp.json, and each team ships through its own pipeline. Conflicts still need code review — the directory solves file ownership, not semantic conflict, and the alphabetically-later fragment silently wins a tie.
CwdChanged fires when the working directory moves, and with a permission-rule if clause you can make it reload project-specific env only inside /repos/**. FileChanged fires on a watched file and is the primitive for re-indexing or format checks triggered by out-of-band edits. A few fragment-friendly knobs pair with this: CLAUDE_CODE_SUBPROCESS_ENV_SCRUB=1 strips cloud credentials from Bash, hook, and MCP stdio subprocesses; sandbox.failIfUnavailable exits when the sandbox cannot start instead of silently running unsandboxed; disableDeepLinkRegistration blocks the claude-cli:// handler for locked-down Macs; and forceRemoteSettingsRefresh (added one release later) fails closed if your remote settings endpoint is down.
Takeaway
If Claude Code lives on more than one team in your org, migrate to managed-settings.d/ this quarter and split fragments by ownership domain. Wire a CwdChanged hook into your busiest monorepo to validate the pattern. The policy story for Claude Code at org scale is finally credible, and this is the release that made it so.
4. Claude Code Hooks Get Conditional if Field (original)
Overview
Anyone running a real hook setup in Claude Code has hit the same annoyance: hooks fire on every matching event, and all the filtering logic lives inside the hook itself. A hook that only cares about git push still gets spawned for every Bash call, every cd, every grep. Claude Code 2.1.85 adds a conditional if field that uses the same syntax as permission rules. The harness handles the filter, the hook script never spawns for non-matching commands, and your settings.json gets shorter.
Technical
The if field accepts the same patterns as permissions.allow and permissions.deny: Bash(git push *), Edit(src/**), Read(secrets/**). A hook that previously did a case statement to early-exit on non-git commands now declares "if": "Bash(git push *)" and the script is only spawned when it matches. The changelog calls out reduced process-spawning overhead as the explicit reason. The if field works on any hook event type, so a Stop hook with if: "Edit(src/**)" fires only after source-file edits — a clean "run formatter when source changes" pattern.
A 2.1.89 fix made if filtering correctly match compound commands (ls && git push) and env-var prefixes (FOO=bar git push). If some hooks are mysteriously silent after upgrading, that is the one you need. The same 2.1.85 release added RFC 9728 Protected Resource Metadata discovery for MCP OAuth, and taught PreToolUse hooks to satisfy AskUserQuestion by returning updatedInput alongside permissionDecision: "allow". Combined with the 2.1.89 defer-permission decision, that is a full pattern for asynchronous human-in-the-loop questions routed through Slack, a webhook form, or a TUI — the modal never has to surface to a human sitting in front of Claude Code.
Takeaway
Audit your settings.json hooks. Any hook with an early-exit case statement should move its filter to the if field, and anywhere a single hook dispatches to three internal handlers should become three hooks with three if conditions. You will delete more than you add, and sessions will spawn fewer processes. This is the release where hooks start feeling like first-class config.
5. Interactive Apps in Claude Mobile: The End of Screenshot Hell (original)
Overview
On March 27 Anthropic shipped fully interactive apps inside the iOS and Android Claude clients. It is the same Artifacts surface the web has had for a while, except it is actually usable on a phone. A chart responds to taps, an architecture diagram is pannable, and a generated mini-app renders live in the conversation instead of arriving as a screenshot you have to pinch to read. If you have spent six months copy-pasting Claude desktop screenshots into Telegram so you can read them on a train, the workflow change is bigger than the announcement makes it sound.
Technical
Mobile uses the same Artifacts infrastructure as web, with a few phone-native affordances. Charts are touch-native: tap a bar to drill in, pinch to zoom, swipe to scrub a time series. The widget persists across app sessions — close the app, reopen three hours later, the chart is still interactive and still tied to its conversation. Diagrams render as a pannable, zoomable canvas, which is the difference between "unreadable Mermaid on a six-inch screen" and "legible architecture sketch I can actually think against while away from my laptop."
Shareable assets are the third lever. Generated charts, diagrams, and mini-apps go out through the OS share sheet as links back to the rendered version, not as static images. The receiver interacts with the live widget. A mobile prompt of "weekly Shopify revenue for the last twelve weeks, broken down by channel" landed an interactive grouped bar chart with channel-level legend filtering in about eighteen seconds. A few caveats worth knowing: interactive widgets need a live connection (airplane mode blanks the canvas), heavy WebGL surfaces like 3D plots fall back to static images, and long sessions with several live widgets drain battery noticeably faster than text-only chats.
Takeaway
Audit your mobile workflows for anything where you have been screenshotting from desktop. Those are the candidates for direct mobile generation now. Pin one or two recurring questions — revenue chart, deploy status, fulfillment heatmap — to saved prompts and hit them in two taps. Claude mobile is a real second seat now, not a notepad you use when you are away from the keyboard.
6. Customize Shopify Checkout by Market in the Editor (original)
Overview
Until this week, "customize checkout per market" on Shopify meant three options, all bad: Plus with Shopify Scripts (deprecated), a Checkout UI Extension with conditional rendering written in code, or a separate expansion store per region. Most non-Plus merchants gave up and shipped the same checkout to every country. The new market-aware editor lets you open Checkout & Accounts, pick a market or B2B company location from a dropdown, and make changes that only apply to that context. No code, no separate themes, no app.
Technical
The control lives at Settings → Checkout → Customize checkout. A context dropdown at the top of the editor shows Default, every market configured under Settings → Markets, and every B2B company location if you are using B2B. Pick a context, and block ordering, payment method visibility, custom field requirements, messaging, brand colors, custom Liquid in supported areas, and most installed Checkout UI Extensions branch only for that context. Each context inherits from Default — change the Default welcome message and every non-overridden market picks it up. Overrides stay local.
Practical branches: hide a "tip the team" block in markets where tipping is not cultural, require a tax ID in Brazil and Italy but not the US, show iDEAL only in the Netherlands and Sofort only in Germany, translate trust copy by market. What does not branch yet: the one-page-vs-multi-page flow itself (still global), Shopify Functions for shipping or payment customizations (those branch via their own GraphQL filters), and the order confirmation email template. The preview supports market switching so you can see the German checkout inside the editor, though the live gateway is still the truth on payment method availability. Each market context has its own change history, so you can roll back a German tweak without touching France.
Takeaway
Open the editor this week, flip the dropdown to your second-biggest market, and find the three things on your default checkout that do not belong there. Override only those. Next month, audit expansion stores you kept around because "we needed a different checkout" — the case for collapsing them just got stronger. Track every override in a one-page spreadsheet so you do not lose the thread in six months.
7. SimGym AI Shoppers Audit Your Shopify Theme (original)
Overview
SimGym is a new Shopify app that runs a fleet of LLM agents with browser tools through your live or draft theme as if they were real customers. Each agent gets a persona — first-time gift shopper under $50, returning customer hunting their order, deal hunter, mobile-first visitor, B2B buyer — and produces a structured report covering where it hesitated, what it could not find, and what made it bounce. The early version is more useful than I expected. It is not a replacement for real session recordings, but it surfaces obvious-in-retrospect issues without you having to recruit testers.
Technical
Install from the Shopify App Store, grant read-only theme and storefront access, and point the app at your live theme, a draft, or a named published theme. Pick a persona pack (defaults cover the five archetypes above; you can write custom personas as a paragraph each) and kick off a run. SimGym spins up 10–20 headless browser sessions, each navigating from a configurable entry point (homepage, PDP, collection) toward a goal like "buy a gift for under $50" or "find return policy." Every action, hesitation, and abandonment is logged with LLM-reasoned commentary. A report lands about ten minutes after start: a 1–10 health score with a summary, a ranked friction list with severity, paraphrased shopper thoughts at each hesitation, and a page-level abandonment heatmap. You can diff a run against a prior one or against a draft theme.
Where it earns its keep: pre-launch QA on a redesign, post-update regression checks on cart and checkout, sniff-testing a new PDP layout, head-to-head comparison of two draft themes. Where it does not: absolute conversion numbers (the agents are not real buyers — treat the score as ordinal), personalization-heavy stores with logged-in pricing, and B2B flows gated behind real approval queues. The friction list is calibrated well enough to use; the score itself is directional only. First audit per store is free, subsequent runs are paid, persona packs cost extra.
Takeaway
Install SimGym, run the free audit on your live theme, and read the friction report top to bottom. Fix the top three issues regardless of how much you trust the score. If the findings match what your real session recordings already show, the tool is calibrated for your store — make it a recurring pre-deploy step. If it just generates noise, uninstall and go back to real user feedback. The floor on theme QA just moved up either way.
Original sources
- Computer Use Lands in Cowork: Claude Drives Your Desktop — originally published 2026-03-23
- Claude Code Adds PowerShell Tool for Windows — originally published 2026-03-24
- Claude Code managed-settings.d Lets Teams Ship Policy Fragments — originally published 2026-03-25
- Claude Code Hooks Get Conditional if Field — originally published 2026-03-26
- Interactive Apps in Claude Mobile: The End of Screenshot Hell — originally published 2026-03-27
- Customize Shopify Checkout by Market in the Editor — originally published 2026-03-28
- SimGym AI Shoppers Audit Your Shopify Theme — originally published 2026-03-29


