🎼

WindowsでもCore Utilitiesを使いたい!

に公開

logo

はじめに

Agentic Codingの時代、Claude CodeなどのAIコーディングツールが活躍していますが、Windows(PowerShell)環境ではUnix系コマンドとの違いから、AIがコマンドを間違えることがしばしばあります。

AGENTS.mdやAGENT SKILLSで対策する方法もありますが、毎回設定するのは手間です。そこで、PowerShell自体をCoreutils互換にしてしまうアプローチを試してみました。

採用したのはuutils/coreutilsで、GNU Coreutilsをクロスプラットフォーム対応でRust製に再実装したプロジェクトです。Ubuntu 25.10にも採用されており、十分な実用性があります。

wingetを使って簡単にインストールできます。

winget install -e --id uutils.coreutils

PowerShellで直接コマンドを使えるようにする

インストール直後は coreutils ls のようにプレフィックスが必要です。これを ls だけで使えるようにするため、PowerShellプロファイルにエイリアスを設定します。

以下のスクリプトを $PROFILEMicrosoft.PowerShell_profile.ps1)に追加してください。

if (Get-Command coreutils -ErrorAction SilentlyContinue) {
    $excluded_commands = @("ls", "cat", "cd", "less", "grep")
    $coreutilsExe = (Get-Command coreutils.exe).Source
    $all_commands = (coreutils --list) -replace '\[|\]' -split "`n" |
        Where-Object { $_ -match '\w+' } |
        ForEach-Object { $_.Trim() }

    foreach ($command in $all_commands) {
        if ($excluded_commands -notcontains $command) {
            $function_definition = "function global:$command { & '$coreutilsExe' $command `$args }"
            Invoke-Expression $function_definition
        }
    }
}

$excluded_commandsには、別のツールで置き換え済みのコマンドや除外したいコマンドを指定できます。お好みで調整してください。
それではWindowsで快適なAIコーディング生活を!

GitHubで編集を提案

Discussion