Claude Media
Claude CodeのWSL2で画像貼り付けができない原因と回避策

Claude CodeのWSL2で画像貼り付けができない原因と回避策

WSL2のClaude Codeで画像を貼り付けできず「No image found in clipboard」と出る原因に、WSLgのBMP形式が報告されています。Alt+V・パス指定・wl-clipboardを外す回避策を紹介します。

WindowsでスクリーンショットをコピーしてWSL2上のClaude Codeに貼ろうとすると、Ctrl+Vを押しても何も起きない。あるいは「No image found in clipboard」と出る。これはWSL2とWSLgの組み合わせで報告されている既知の症状です。報告では、WSLgがクリップボードの画像をBMP形式で渡し、Claude Code側の変換が失敗することが原因とされています。画像がクリップボードに載っていないわけではありません。

先に回避策を挙げます。試す順に次の4つです。LinuxでAlt+Vが無反応になる場合は、既定の割り当てが原因です。対処はLinuxでAlt+V画像貼り付けが効かないときにあります。

回避策

試す順番

  1. 1

    Alt+Vで貼る

    端末がCtrl+Vを横取りしているケースに効きます。

  2. 2

    保存してパスで渡す

    貼り付け経路を通りません。

  3. 3

    wl-clipboardを外す

    PowerShell経路にフォールバックさせる、利用者の報告にある方法です。

  4. 4

    BMPをPNGに変換して渡す

    wl-clipboardを残したまま使えます。

症状: 貼っても画像が付かない

Windows 11のWSL2(Ubuntu)で、Windows Terminalまたはwsl.exeからClaude Codeを起動し、Windows側でコピーした画像を貼る場面です。GitHubのissue #61609に上がっている再現手順は次のとおりです。

  • エクスプローラーで画像ファイルをコピー、またはブラウザーで画像をコピーする
  • プロンプトでCtrl+Vを押す
  • 何も入らない、もしくは空や文字化けの文字列だけが入る。画像は添付されない

報告者はVS Codeの統合ターミナルではなく、ネイティブのターミナルで再現したと明記しています。期待する動作としては、macOSやVS Codeの統合ターミナルと同じように貼れることを挙げています。バージョンはv2.1.145で、後続のコメントではv2.1.199、v2.1.238でも同じ症状が出ています。issueのラベルにはplatform:wslとarea:tuiが付いています。

「No image found in clipboard」と出るときの見方

貼り付けに失敗すると、環境によって表示が分かれます。

  • 「No image found in clipboard. Use ctrl+v to paste images.」と出る(#50552)
  • 何も表示されず、画像のチップも付かない(#61609)

「画像が無い」という文面でも、実際にはクリップボードに画像があり、変換で失敗している場合があります。まずwl-paste --list-typesの結果を見てください。

Alt+Vでも添付されないことがある

コメントの1つでは、Alt+Vを押すと「Pasting...」と出たあと、何も添付されません。

端末や撮影ツールを変えても起きる

3件のissueを並べると、症状は特定の端末や撮影ツールに限りません。

報告端末撮影・コピー元Claude Code
#50552端末Windows Terminal、MobaXterm 26.3(独自のXサーバー)撮影・コピー元ShareX、Snipping Tool、Snip & Sketch、PrtScClaude Codev2.1.114
#61609端末Windows Terminal(1.24系)、wsl.exe撮影・コピー元エクスプローラーのファイルコピー、ブラウザーの画像コピーClaude Codev2.1.145、v2.1.199、v2.1.238
#77102端末WSLg上のghostty(tmux経由)撮影・コピー元Snipping ToolClaude Codev2.1.207

端末を替えても直らないなら、原因は端末側ではなく、WSLgから先の経路にあると見るのが筋です。

なぜ貼れないのか: WSLgのクリップボードが画像をBMPで渡す

原因の手がかりは、issue #61609のコメントと、先行する#50552に書かれています。ここからは、報告者が自分の環境で確認した内容で、Claude Code側の公式な説明ではありません。バージョンが上がれば処理順が変わる可能性もあります。

WSLgはWayland側にBMPだけを出す

報告によれば、WSLgはWindowsのクリップボードにある画像をWaylandにだけ橋渡しし、しかも形式はimage/bmpだけです。X11側には画像のターゲットが出ません。xclip -t TARGETS -oはTIMESTAMP TARGETS UTF8_STRING TEXTしか返さなかった、とあります。

#50552の報告では、Windows側のクリップボードにPNG、Bitmap、DIB(デバイス非依存ビットマップ)の3形式が載っていました(Snipping Tool)。ShareXの既定のコピーではBitmapとDIBです。WSLgはこのうちDIBだけを、image/bmpとして渡します。wl-paste --type image/pngはexit code 1で失敗した、とも書かれています。

コメントで示された確認手順は次のとおりです。

wl-paste --list-types
wl-paste --type image/bmp > /tmp/clip.bmp
xxd -l 4 -s 30 /tmp/clip.bmp

1行目がimage/bmpだけを返し、3行目の出力が03 00 00 00なら、BMPの圧縮方式がBI_BITFIELDSです。#50552では、同じ書き出し済みファイルにfileを使い、3 compressionと表示される例が載っています。このBMPをImageMagickで変換すると通る、という点も#61609のコメントに書かれています。

wl-paste --type image/bmp | convert bmp:- /tmp/clip.png

自分のWSLで貼り付けが失敗するとき、この3行でBMPを受け取っているかを切り分けられます。

#61609のコメントには、もう1つ手がかりがあります。失敗した貼り付けのあとに、一時ディレクトリへclaude_cli_latest_screenshot.pngという名前のファイルが残るというものです。拡張子は.pngでも、先頭2バイトは42 4d(文字でBM)で、中身はBMPでした。

file "${TMPDIR:-/tmp}/claude_cli_latest_screenshot.png"

出力がPC bitmapなら、保存までは成功して変換で止まっています。このファイルは成功時に削除されるため、残っていること自体が失敗の目印になる、という報告です。

貼り付け処理はBMPで止まり、PowerShell経路に届かない

changelogでは、v2.1.136に「xclipやwl-pasteが画像データを読めないとき、PowerShellのフォールバックでWindowsクリップボードの画像を貼れる」旨の項目があります。#61609が立つ2週間ほど前に入った変更です。BMPで貼れない問題には、v2.1.47にも修正の記載があります(#25935)。

#61609の報告者の見立ては次のとおりです。WSLgではwl-pasteがBMPを返すので、「読めない」扱いにならず、PowerShellのフォールバックまで処理が進みません。BMPからPNGへの変換がBI_BITFIELDSのBMPで例外になり、画面には「No image found in clipboard」と出ます。issue #50552も同じ見立てで、変換失敗が表に出ないため、メッセージが実態と合っていないと指摘しています。

つまり、WSLにWindowsクリップボードへ届く経路が無いわけではありません。フォールバックの手前で、使えない形式を返すwl-pasteが先に答えてしまっています。Windowsネイティブで貼れても遅い場合は、Alt+V画像貼り付けが遅い理由を参照してください。

公式の位置づけ: WSLではAlt+Vも使える

公式ドキュメントのショートカット表には、画像貼り付けはCtrl+V(iTerm2ではCmd+V)、Windows・WSLではAlt+Vと書かれています。挿入されるのは[Image #N]のチップで、プロンプトの中で「[Image #1]を見て」のように位置を指定して参照できます。WSLではCtrl+VとAlt+Vのどちらも割り当て済みで、端末がCtrl+Vを横取りするならAlt+Vを使うとされています。macOSのTerminal.appでCmd+Vが効かない場合は、Terminal.appの画像貼り付けとOption+-の症状にまとめています。

ただし、先ほどのコメントのとおり、Alt+Vでも「Pasting...」のあとに何も付かないケースがあります。Alt+Vは入力キーの問題を避ける手段であって、BMP変換の失敗までは避けられません。

ファイルに保存してパスで渡す

確実なのは、貼り付けを使わないことです。公式の画像の扱い方には、ドラッグ&ドロップ、貼り付けに並んで、Claudeに画像のパスを伝える方法が載っています。例は「Analyze this image: /path/to/your/image.png」です。

WSLからWindows側のドライブは/mnt/c/以下に見えます(Microsoftのドキュメントでは/mnt/c/Users/<user name>/の形で例示されています)。Windowsのスクリーンショット保存先を決めておけば、パスだけを渡せます。

ls /mnt/c/Users/<ユーザー名>/Pictures/Screenshots/ | tail -3

そのうえでプロンプトを次のように書きます。

/mnt/c/Users/<ユーザー名>/Pictures/Screenshots/example.png を見て、
このエラーダイアログの原因を推測して

/mnt/c越しのファイル読み取りは、WSL2のLinux側ファイルシステムより遅くなることがあります。画像1枚なら気にならない範囲ですが、大量に扱うなら、Linux側の作業ディレクトリへコピーしてから渡す運用もあります。

クリップボードにしか無い画像は、この方法だとスクリーンショットを保存する一手間が要ります。保存せずに済ませたい場合は、後述のBMP変換のようにクリップボードの画像をファイルへ書き出す手があります。

wl-clipboardを外してPowerShell経路に落とす

#61609のコメントによると、次の作業で貼り付けが復旧しました。

sudo apt remove wl-clipboard

wl-pasteがPATHに無ければ、PowerShellのフォールバックに回ります。同じ環境・同じクリップボード画像で比べた結果は次のとおりです。

くらべる

同じ画像で比べた結果

wl-paste経路

wl-pasteあり

3,342,402バイトのBMPが保存され、変換で例外になって貼れません。

PowerShell経路

wl-pasteなし

81,204バイトのPNGが保存され、貼れます。

失うのはPythonのPillowが使うImageGrab.grabclipboard()くらいで、コピー側はxclipが引き続き担えます。

注意点が2つあります。

  • wl-clipboardは他のツールが依存していることがあります。外す前にapt removeの確認画面で、一緒に消えるパッケージを見てください
  • 依存を外すだけなので、いつでもsudo apt install wl-clipboardで戻せます

BMPをPNGに変換してパスで渡す

wl-clipboardを外したくない場合は、切り分けで使った変換コマンドをそのまま回避策にできます。ImageMagickが入っていなければ、先に導入します。

sudo apt install imagemagick
wl-paste --type image/bmp | convert bmp:- /tmp/clip.png

手順は2つです。Windowsで画像をコピーした直後に上の変換を実行し、できた/tmp/clip.pngのパスをプロンプトに書きます。

/tmp/clip.png を見て、このエラーダイアログの原因を推測して

ファイルパス指定との違いは、Win+Shift+Sで撮ってクリップボードにしか無い画像でも、ファイルに書き出せる点です。WindowsのPicturesフォルダーを探しに行く必要もありません。Claude Code自身の貼り付け経路は使わないので、Ctrl+VやAlt+Vの失敗とは無関係に動きます。

コマンドのbmp:-は標準入力のBMPを読む指定で、出力先が同じ/tmp/clip.pngなら新しい画像を撮るたびに上書きされます。残しておきたい画像は、ファイル名を変えて書き出してください。撮るたびに変換コマンドを打つ手間は残るため、頻繁に貼るならシェルのエイリアスにしておく手があります。

症状が出ないケースとの切り分け

同じ症状に見えて原因が別のケースは、次の確認で見分けられます。

確認結果の見方
wl-paste --list-types結果の見方image/bmpが出るならWSLgのBMP経路。上の症状に該当
wl-pasteが無い結果の見方取得はPowerShellのフォールバックに回る。BMP変換の失敗とは別の原因を探す段階
VS Codeの統合ターミナルで貼る結果の見方#61609の報告者は、統合ターミナルなら貼れる前提で書いている。端末による差を見る材料になる
Alt+Vを押す結果の見方端末がCtrl+Vを横取りしているだけなら、これで解決する

長いテキストが[Pasted text #1 +120 lines]に畳まれる仕様は画像と無関係で、画像が付かない原因にはなりません。

changelogのv2.1.267にあるWSL2/WSLgの貼り付け修正は、VS Code拡張で生の画像バイトが入力欄に入る問題の話です。ターミナルでのCtrl+Vとは別件です。

直っているかどうかを確認する

同じ原因の報告が3件に分かれ、3件とも閉じています。#61609のコメントは、BMP系の報告が行き止まりに閉じられてきたため、何度も立て直されているのだろうと指摘しています。

日付はGitHubが表示するUTCのものです。日本時間では1日進む項目があります。

報告

issueの経過

  1. 2026-04-18#50552が立つ(v2.1.114)

    WSLgのBMPがBI_BITFIELDSで変換に失敗する、という詳しい分析つきの報告です。

  2. 2026-05-23#61609が立つ(v2.1.145)

    PowerShell経由で取得してほしい、という要望の形で報告されます。

  3. 2026-05-26#50552が非アクティブを理由にクローズ

    ラベルはduplicateとstaleで、状態はnot_plannedです。7月22日にロックされました。

  4. 2026-07-16#77102が#50552の重複として自動クローズ

    v2.1.207での報告でした。

  5. 2026-08-20#61609にv2.1.238でも再現するとのコメント

    PowerShell経路が到達不能になっている点と、wl-clipboardを外す回避策がここで報告されました。

  6. 2026-10-12#61609が非アクティブでクローズ

    状態はnot_plannedで、修正は入っていません。

#61609も2026年10月12日に、非アクティブを理由にクローズされました。状態はnot_plannedで、修正されたわけではありません。3件のissueにある最新の再現報告はv2.1.238です。

自分の環境が直ったかを確かめるには、バージョンを上げたあとで次の順に見ます。

claude --version
wl-paste --list-types

Windowsでスクリーンショットをコピーした直後にCtrl+VまたはAlt+Vを試し、[Image #1]のチップが出れば復旧しています。出なければ、wl-pasteの有無やWSLgの状態を含めて、WSL環境の構成を確認する段階です。導入の全体像はClaude Code WSL2セットアップにあります。

WSL2で起きる別の症状には、空きメモリがあるのにバックグラウンドタスクが止まる「low memory」誤検知があります。こちらも環境変数で回避できます。

まとめ

貼る頻度が高ければwl-clipboardを外す方法が手数は少なく、他のツールがwl-clipboardを使っているなら、ファイルパス指定かBMP変換が向きます。症状の有無はwl-paste --list-typesがimage/bmpだけを返すかで分かるので、アップデート後も同じコマンドで見直せます。

参照した一次ソース

この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。

  1. github.com/anthropics/claude-code/issues/61609
  2. github.com/anthropics/claude-code/issues/50552
  3. github.com/anthropics/claude-code/issues/77102
  4. code.claude.com/docs/en/interactive-mode
  5. code.claude.com/docs/en/common-workflows
  6. learn.microsoft.com/en-us/windows/wsl/filesystems
この記事を共有:XはてブLinkedIn