Skip to content

tmux over SSHでのクリップボードコピー問題の修正

原文(日本語に翻訳)

tmux over SSHでのクリップボードコピーを修正 — 直接ターミナル書き込みとtmuxクリップボード統合の両方を試行するようになった

原文(英語)

Fixed clipboard copying in tmux over SSH — now attempts both direct terminal write and tmux clipboard integration

概要

SSH経由でtmux内でClaude Codeを使用している際に、クリップボードへのコピーが失敗する問題が修正されました。修正後は、OSC 52シーケンスによる直接ターミナル書き込みと、tmuxのクリップボード統合(tmux set-buffer / tmux load-buffer)の両方を試行するフォールバック戦略が実装されました。これにより、さまざまなSSH・tmux環境でクリップボードコピーが確実に動作するようになりました。

基本的な使い方

Claude Code内でコピー機能を使用する場合:

# /copyコマンドでコードブロックをコピー
/copy

# 会話のエクスポート
/export

実践例

SSH + tmux環境でのコード共有

リモートサーバーにSSHで接続し、tmux内でClaude Codeを使用する典型的なワークフロー:

bash
# リモートサーバーに接続
ssh dev-server

# tmuxセッションを開始または再接続
tmux new -s claude-work
# または
tmux attach -t claude-work

# Claude Codeを起動
claude

# コードを生成してもらい、/copyでクリップボードにコピー
> APIエンドポイントのコードを生成して
/copy

# 修正前:コピーに失敗するケースがあった
# 修正後:直接ターミナル書き込みまたはtmux統合経由でコピー成功

iPhoneからSSH経由でのリモート作業

モバイルデバイスからSSHアプリ(Blink、Termius等)を使ってClaude Codeを操作する場合にも、クリップボードコピーが改善されます:

bash
# iPhoneのSSHアプリからリモート接続
ssh user@dev-server

# tmuxセッションに接続
tmux attach -t work

# Claude Codeでコード生成 → コピー
claude
/copy  # ← 修正後はモバイルSSH環境でも動作しやすくなった

tmuxの推奨設定

クリップボード連携を最大限活用するためのtmux設定:

bash
# ~/.tmux.conf に追加

# クリップボード統合を有効化
set -g set-clipboard on

# OSC 52サポートを有効化(ターミナルからの直接コピー)
set -g allow-passthrough on

# マウス操作のサポート
set -g mouse on

設定を反映するには:

bash
tmux source-file ~/.tmux.conf

注意点

  • フォールバック戦略: Claude Codeはまず直接ターミナル書き込み(OSC 52)を試み、失敗した場合はtmuxクリップボード統合にフォールバックします
  • ターミナルの対応: OSC 52をサポートしていないターミナルエミュレーターでは、tmuxクリップボード統合のみが使用されます
  • tmuxバージョン: tmux 3.2以降で allow-passthrough オプションが利用可能です。古いバージョンではtmuxクリップボード統合のみが動作します
  • ファイル書き込み代替: クリップボードコピーがどうしても動作しない場合は、/copy コマンドの w キーでファイルに書き出すことも可能です
  • ネストされたtmux: SSH先でさらにtmux内のtmuxを使用している場合、クリップボードの経路が複雑になるため、最外殻のtmuxで set-clipboard on を設定してください

関連情報