• #claude-code
  • #autohotkey
  • #windows
  • #stream-deck
開発メモ

概要

Windows環境のClaude Codeでは、標準ではクリップボードの画像を直接貼り付けられない。この設定により、Ctrl+Shift+V でスクリーンショットをファイルとして保存し、そのパスを自動的に貼り付けることで画像を参照できるようになる。

仕組み

1. Shift+Win+S でスクリーンショット撮影(Windows標準)
   ↓ 画像がクリップボードにコピーされる

2. Ctrl+Shift+V を押す(AutoHotKeyが発動)
   ↓
3. PowerShellスクリプトが実行される
   - クリップボードの画像を PNG ファイルとして保存
   - 保存先: %USERPROFILE%\Pictures\ClipboardImages
   - ファイル名: clip_yyyyMMdd_HHmmss.png
   ↓
4. 保存したファイルパスをクリップボードにコピー
   ↓
5. 通常の Ctrl+V でパスが貼り付けられる
   ↓
6. Claude Code が Read ツールで画像を読み込む

ファイル配置

3つのスクリプトファイルを任意のディレクトリに配置:

C:\Users\<ユーザー名>\<任意のディレクトリ>\claude-image-paste\
├── PasteSavedPath.ahk           # AutoHotKey スクリプト
├── run_save_clip.bat            # バッチファイル
└── SaveImageToClipboardPath.ps1 # PowerShell スクリプト

例: C:\Users\numbe\Git_repo\AutoHotkey\claude-image-paste\

各ファイルの内容

1. SaveImageToClipboardPath.ps1

クリップボードの画像をファイルに保存し、パスをクリップボードにコピーする。

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

$folder = "$env:USERPROFILE\Pictures\ClipboardImages"
if (!(Test-Path $folder)) { New-Item -ItemType Directory -Path $folder | Out-Null }

$image = [Windows.Forms.Clipboard]::GetImage()
if ($image -ne $null) {
    $timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
    $filepath = Join-Path $folder "clip_$timestamp.png"
    $image.Save($filepath, [System.Drawing.Imaging.ImageFormat]::Png)
    Set-Clipboard -Value $filepath
}

2. run_save_clip.bat

PowerShell スクリプトを実行するバッチファイル。パスは自分の環境に合わせて変更すること。

@echo off
powershell -ExecutionPolicy Bypass -File "C:\Users\<ユーザー名>\<任意のディレクトリ>\claude-image-paste\SaveImageToClipboardPath.ps1"

3. PasteSavedPath.ahk

キーボードショートカットを設定する AutoHotKey v2 スクリプト。パスは自分の環境に合わせて変更すること。

#Requires AutoHotkey v2.0

; 起動時の通知
A_IconTip := "Claude Image Paste (Ctrl+Shift+V)"
TrayTip "Ctrl+Shift+V で画像パスを貼り付け", "Claude Image Paste", "Iconi"

^+v:: {  ; Ctrl (^) + Shift (+) + V
    Run "C:\Users\<ユーザー名>\<任意のディレクトリ>\claude-image-paste\run_save_clip.bat", , "Hide"
    Sleep 200
    Send "^v"
}

ポイント:

  • #Requires AutoHotkey v2.0 でバージョン選択ダイアログをスキップ
  • TrayTip で起動時にトースト通知を表示

セットアップ手順

1. AutoHotKey のインストール

AutoHotkey 公式サイト からダウンロード・インストール。

2. 画像ディレクトリへのアクセス許可

Claude Code が画像ファイルを読み込めるように、settings.json に Read 権限を追加する。

方法A: ユーザー単位の設定(推奨)

~/.claude/settings.json に追加。全プロジェクトで有効になる。

{
  "permissions": {
    "allow": [
      "Read(C:\\Users\\<ユーザー名>\\Pictures\\ClipboardImages\\**)"
    ]
  }
}

方法B: プロジェクト単位の設定

.claude/settings.local.json に追加。そのプロジェクトのみで有効。

{
  "permissions": {
    "allow": [
      "Read(C:\\Users\\<ユーザー名>\\Pictures\\ClipboardImages\\**)"
    ]
  }
}

3. Stream Deck の設定(オプション)

設定項目
システム開く
タイトル任意(例: claude image paste)
App/ファイルC:\Users\<ユーザー名>\<任意のディレクトリ>\claude-image-paste\PasteSavedPath.ahk

例: C:\Users\numbe\Git_repo\AutoHotkey\claude-image-paste\PasteSavedPath.ahk

使い方

  1. Stream Deck のボタンを押す → AutoHotKey が常駐起動(トースト通知が表示される)
  2. Shift+Win+S でスクリーンショットを撮影
  3. Claude Code のターミナルで Ctrl+Shift+V を押す
  4. 画像パスが貼り付けられ、Claude Code が画像を読み込む

AutoHotKey ショートカット記号

記号キー
^Ctrl
+Shift
!Alt
#Windows

トラブルシューティング

バージョン選択ダイアログが表示される

#Requires AutoHotkey v2.0 がスクリプトの先頭にあるか確認。または、AutoHotKey v1.1 をアンインストール。

画像が貼り付けられない

  • AutoHotKey スクリプトが実行中か確認(タスクトレイにアイコンがあるか)
  • クリップボードに画像がコピーされているか確認
  • PowerShell の実行ポリシーエラーが出ていないか確認

Claude Code が画像を認識しない

  • settings.json に画像ディレクトリへの Read 権限が設定されているか確認
  • ファイルパスが正しくコピーされているか確認

「指定されたファイルが見つかりません」エラー

スクリプト内のパスが実際のファイル配置場所と一致しているか確認。