Skip to content

原文(日本語に翻訳)

[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には影響しません(元々正しく動作していました)

関連情報