◉CLAUDE LABJP
●CODE 2.1.319 — Claude Code now moves MCP tasks to the background automatically, and a denyInsteadOfPrompting setting denies calls that would wait on a prompt●CONSOLE — Console IP allowlist is in beta (11/5): requests from addresses not on the list are refused●SONNET 4.5 — Retires on the Claude API on 11/30, 23 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST — Opus 4.8 fast mode is deprecated and will be removed on 11/30. Migrate to Opus 5.5●NEW — I Put a Ten-Line Promise File at the To…●CODE 2.1.319 — Claude Code now moves MCP tasks to the background automatically, and a denyInsteadOfPrompting setting denies calls that would wait on a prompt●CONSOLE — Console IP allowlist is in beta (11/5): requests from addresses not on the list are refused●SONNET 4.5 — Retires on the Claude API on 11/30, 23 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST — Opus 4.8 fast mode is deprecated and will be removed on 11/30. Migrate to Opus 5.5●NEW — I Put a Ten-Line Promise File at the To…
Articles/Claude Code
⟐ Claude Code/2026-04-02Intermediate

Claude Code PowerShell Tool: How to Enable It on Native Windows (No WSL)

The one setting that actually enables the Claude Code PowerShell tool, why auto mode's new default leaves Windows users still approving prompts, and what August's three permission changes left standing. With WSL2 trade-offs and unattended-run safety gates.

Claude Code283PowerShellWindows5SetupDevelopment Environment3Automation45

✦ Premium Article

When the WSL2 Round-Trip Started Feeling Slow — v2.1.84

I wanted Claude Code to run one Windows-side .ps1 script, and instead I caught myself translating paths to \\wsl$\ and back again. The bridge was taking more of my attention than the job itself.

Then v2.1.84 added the PowerShell tool as an opt-in preview. You can use PowerShell as a native tool inside Claude Code sessions, without routing everything through WSL (Windows Subsystem for Linux).

Until now, Windows users typically relied on WSL2 and Bash to interact with Claude Code. The PowerShell tool opens up native Windows capabilities — file system operations, registry access, Azure/Active Directory integration, and more — directly from your Claude Code workflow.


The Short Answer First

If you landed here because you enabled the PowerShell tool and nothing seems to happen, these are the three things I would check, in this order.

  • Enabling is one line: add "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1" to the env block of settings.json (the value is the string "1", not a boolean)
  • Bash stays registered, and Claude will not pick PowerShell on its own. Ask for it explicitly, or route with defaultShell or a hook's shell field
  • Prompts keep appearing even with auto mode as the default. That is a preview-stage limitation, not a broken setup

The reasons and the diagnostic steps follow below. I mixed up all three at once the first time and spent half a day reopening the same config file.


✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦Diagnose why enabling the tool appears to do nothing — the env var format, the Bash-first default, and three distinct shell-routing paths
✦Understand why PowerShell still prompts after auto mode became the default, and design deliberately around where you want to be stopped
✦Tell apart which of August's Windows permission fixes held and which were reverted, so you know what silently passes today
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

Related Articles

⟐ Claude Code2026-10-15
The Hook That Was Meant to Guard My Japanese Folder Never Blocked Anything — Python Was Reading stdin as cp932
A PreToolUse hook guarding folders like 経理 or 議事録 silently lets edits through when Python's stdin defaults to cp932. How I reproduced it, the three-line fix, and one command to check your own hooks.
⟐ Claude Code2026-09-01
Drop the quotes on a heredoc and the prices in your log quietly change
An unquoted heredoc runs the variables and backticks inside its body. Here are the four ways my log got rewritten, how the three quoting forms compare, a safe placeholder-and-sed pattern, and a small script for auditing what you already have.
⟐ Claude Code2026-08-22
Handing a long job to another session — and the completion marker for when the notification never arrives
How to use notify_when_idle to hear when another Claude Code session finishes, and a small completion marker that keeps you from waiting forever when the notification is dropped.