コンテンツにスキップ
Zenn Dev Owayo Articles 6190821ac1dd1e

Claude Code に cc というエイリアスをつけたら PC がハングした話(原因は別でした)

  • URL: https://zenn.dev/owayo/articles/6190821ac1dd1e
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: alias cc=‘claude’を設定した直後にtree-sitterのメモリ暴走(43GB消費)が発生し、エイリアスが原因だと誤認した顛末を記録した記事。実際にはtree-sitterがRustのstd::process::Command(execvp)でコンパイラを直接起動するためシェルエイリアスは無効であり、真の原因はtree-sitter v0.26.6の既知のメモリ問題(15MB・5989状態のパーサーでRSS 8GB以上に達する)だったことが後から判明した。ccというUnix標準のコマンド名をエイリアスに使うこと自体の危険性(Makefileやシェルスクリプト経由での意図せぬClaude Code起動)についても整理されている。

詳細

alias cc=‘claude –dangerously-skip-permissions –model opus’設定後にtree-sitter test実行でメモリ暴走した事例の原因調査と教訓。

  • 誤認プロセス:which ccでエイリアスが確認できた→「ccがClaude Codeに差し替わりコンパイル時にAIが起動した」と結論づけたが誤り
  • 真の原因:tree-sitter(Rust製)は内部でcc Rustクレートを使いstd::process::Command(execvp)でコンパイラを直接起動するためシェルエイリアスは無効
  • メモリ暴走の実態:tree-sitter v0.26.6の既知のバグ。parser.cが15MB・状態数5989のような巨大パーサーでRSS 8GB以上、VSIZE 400GB以上に達する
  • execvpとエイリアスの挙動整理:シェルで直接ccを入力した場合はエイリアスが効く。subprocess.run([“cc”])やCommand::new(“cc”)はエイリアス無効。Makefile(CCを未指定時)・シェルスクリプト・configureスクリプトはシェル介在のためエイリアスが発動しうる
  • 対処:tree-sitter testの代わりにtree-sitter parseベースの軽量テストランナーを使用。エイリアスはccode=‘claude …‘に変更
  • Claude CodeのBashツールは.zshrcを読み込んだシェル環境でコマンドを実行するため、which ccでエイリアスが見える状況が誤認を招いた