原文(日本語に翻訳)
[VSCode] PowerShellのツール呼び出しが適切なコマンド表示とパーミッションダイアログではなくRaw JSONとして表示される問題を修正し、表示されるシェル出力からANSIエスケープコードを削除しました
原文(英語)
[VSCode] Fixed PowerShell tool calls rendering as raw JSON instead of a proper command display and permission dialog, and stripped ANSI escape codes from displayed shell output
概要
VS Code拡張機能でClaude Codeを使用しているWindowsユーザーに影響する2つの問題が修正されました。1つ目はPowerShellのツール呼び出し(コマンド実行)が読みやすいUI形式ではなく生のJSON文字列として表示される問題、2つ目はシェルの出力にANSIエスケープコード(\x1b[32m のような制御文字)がそのまま表示される問題です。
基本的な使い方
# VS CodeのClaude Code拡張機能でPowerShellコマンドを実行
claude
> Windowsのシステム情報を取得してください
# 修正前: ツール呼び出しがJSON形式で表示
# {"tool": "Bash", "input": {"command": "Get-ComputerInfo"}}
# 修正後: 通常のコマンド表示とパーミッションダイアログが表示される
# ┌─────────────────────────────┐
# │ Bash: Get-ComputerInfo │
# │ [Allow Once] [Always Allow] │
# └─────────────────────────────┘実践例
VS CodeでのPowerShell操作
powershell
# Claude CodeがPowerShellコマンドを実行する例
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
# 修正後:
# 1. 適切なパーミッションダイアログが表示される
# 2. 出力からANSIエスケープコードが除去されて読みやすく表示されるANSIエスケープコードの除去前後
修正前の表示:
\x1b[32mSuccess\x1b[0m: \x1b[1m3 files updated\x1b[0m
修正後の表示:
Success: 3 files updated注意点
- この修正はVS Code拡張機能を使用している場合のみ関係します
- PowerShell 5.x および PowerShell 7.x の両方で効果があります
- ターミナル版のClaude Codeには影響しません(元々正しく動作していました)