From 07cfcfb14a3d2cf92d644d232c493103f90c8304 Mon Sep 17 00:00:00 2001 From: ayu Date: Tue, 2 Jun 2026 14:25:20 -0700 Subject: [PATCH 1/2] fix: send raw OSC52 in tmux so clipboard works over SSH --- packages/tui/src/clipboard.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/tui/src/clipboard.ts b/packages/tui/src/clipboard.ts index 08f86f9f7a97..39ea5b137105 100644 --- a/packages/tui/src/clipboard.ts +++ b/packages/tui/src/clipboard.ts @@ -23,7 +23,8 @@ function command(command: string, args: string[] = [], input?: string) { function writeOsc52(text: string) { if (!process.stdout.isTTY) return const sequence = `\x1b]52;c;${Buffer.from(text).toString("base64")}\x07` - process.stdout.write(process.env.TMUX || process.env.STY ? `\x1bPtmux;\x1b${sequence}\x1b\\` : sequence) + // enabling `set-clipboard on` in tmux parses raw osc52 + process.stdout.write(process.env.STY ? `\x1bPtmux;\x1b${sequence}\x1b\\` : sequence) } export async function read() { From 148857fe56eb67ef12d0783a1d3feacb4e5b1234 Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Wed, 5 Aug 2026 00:21:05 +0200 Subject: [PATCH 2/2] fix(tui): preserve tmux clipboard passthrough --- packages/tui/src/clipboard.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tui/src/clipboard.ts b/packages/tui/src/clipboard.ts index 39ea5b137105..2ae29da88894 100644 --- a/packages/tui/src/clipboard.ts +++ b/packages/tui/src/clipboard.ts @@ -23,8 +23,8 @@ function command(command: string, args: string[] = [], input?: string) { function writeOsc52(text: string) { if (!process.stdout.isTTY) return const sequence = `\x1b]52;c;${Buffer.from(text).toString("base64")}\x07` - // enabling `set-clipboard on` in tmux parses raw osc52 - process.stdout.write(process.env.STY ? `\x1bPtmux;\x1b${sequence}\x1b\\` : sequence) + const passthrough = `\x1bPtmux;\x1b${sequence}\x1b\\` + process.stdout.write(process.env.TMUX ? sequence + passthrough : process.env.STY ? passthrough : sequence) } export async function read() {