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
Alt+Vで貼る
端末が
Ctrl+Vを横取りしているケースに効きます。 - 2
保存してパスで渡す
貼り付け経路を通りません。
- 3
wl-clipboardを外す
PowerShell経路にフォールバックさせる、利用者の報告にある方法です。
- 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、PrtSc | Claude 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 Tool | Claude 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.bmp1行目が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-clipboardwl-pasteがPATHに無ければ、PowerShellのフォールバックに回ります。同じ環境・同じクリップボード画像で比べた結果は次のとおりです。
同じ画像で比べた結果
wl-pasteあり
3,342,402バイトのBMPが保存され、変換で例外になって貼れません。
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の経過
- 2026-04-18#50552が立つ(v2.1.114)
WSLgのBMPが
BI_BITFIELDSで変換に失敗する、という詳しい分析つきの報告です。 - 2026-05-23#61609が立つ(v2.1.145)
PowerShell経由で取得してほしい、という要望の形で報告されます。
- 2026-05-26#50552が非アクティブを理由にクローズ
ラベルは
duplicateとstaleで、状態はnot_plannedです。7月22日にロックされました。 - 2026-07-16#77102が#50552の重複として自動クローズ
v2.1.207での報告でした。
- 2026-08-20#61609にv2.1.238でも再現するとのコメント
PowerShell経路が到達不能になっている点と、
wl-clipboardを外す回避策がここで報告されました。 - 2026-10-12#61609が非アクティブでクローズ
状態は
not_plannedで、修正は入っていません。
#61609も2026年10月12日に、非アクティブを理由にクローズされました。状態はnot_plannedで、修正されたわけではありません。3件のissueにある最新の再現報告はv2.1.238です。
自分の環境が直ったかを確かめるには、バージョンを上げたあとで次の順に見ます。
claude --version
wl-paste --list-typesWindowsでスクリーンショットをコピーした直後に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だけを返すかで分かるので、アップデート後も同じコマンドで見直せます。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。