Skip to content

Instantly share code, notes, and snippets.

Claude Code Wipes Terminal Scrollback: Root Cause, Blast Radius, and the Fix That Actually Works

The problem

Claude Code destroys terminal scrollback history every time its output exceeds the viewport height. This affects tmux, GNU screen, every browser-based terminal, VS Code's integrated terminal, and most native terminal emulators. The only surviving environments are raw TTY SSH on iTerm2 (macOS has an opt-out) or pinning Claude Code to 2.1.75 or earlier.

The upstream threads (anthropics/claude-code#16310, #2479) have been open since early 2026 with 25+ interactions. Most workaround proposals fail because they target the wrong layer. This document traces the root cause to its origin and identifies the one fix point that resolves it.

Root cause chain

@voluntas
voluntas / learning-webrtc_2023-05.md
Last active February 2, 2025 07:02
時雨堂 WebRTC 入門 (講師資料) v2023-05

時雨堂 WebRTC 入門 (講師資料) v2023-05

これは時雨堂が開催しているオンラインイベントである WebRTC 入門の 講師用 の資料であり、 参加者用の資料ではありません。

時雨堂 WebRTC 入門 オンラインイベント

概要

ChatGPT がある今、学ぼうと思えば好きなだけ学べる時代がきています。

@mattn
mattn / README.md
Last active February 25, 2025 15:03
blacklist/whitelist master/slave に関する情報集め

blacklist/whitelist master/slave に関する情報集め

blacklist/whitelist、master/slave という単語は相応しくないという意見に OSS がどの様に対応すべきかを自身で考える為の情報集めです。見つけ次第、逐次更新していきます。

僕(mattn) 自身は black lives matter に同意をしています。blacklist/whitelist、master/slave という単語を廃止する事が、歴史的背景を持たない文化圏では特定の意味を持たなかった為、個人的には若干思う所はありますが、廃止自身に反対するつもりはありません。

昔から、主副を表す物には master/slave という単語が使われてきました。ハードディスクの IDE、仮想端末(pty)、色々あります。またネットワークの IP フィルタリングに関しては blacklist/whitelist と表記した物が今でも沢山あります。

我々日本人が意識せずに使っていた blacklist/whitelist、master/slave という単語が、人々にどの様に影響しうるのか、今後 OSS としてどの様に関わっていけば良いかを理解する上で、自分なりの情報集めをしたいと思っています。

@offirgolan
offirgolan / unwatch-gh-org.js
Created August 2, 2017 05:57
Unwatch All Org Repos
// Navigate to https://github.com/watching and then run:
// Taken from: https://stackoverflow.com/questions/11043374/how-to-unwatch-multiple-repos-easily-on-github
Array.prototype
.slice.apply(document.querySelectorAll('.js-subscription-row'))
.forEach(el => { const org = el.querySelector('a[href^="/YOUR_ORG"]'); if (org) el.querySelector('button').click()});