【完全版】Claude Codeのタイムアウト"2分の壁"を完全破壊!Codexも無限に動く最強の連携を手に入れました
🚀 はじめに
お時間ない人はAIに見せてくださいね^^
claude codeとかに「これでタイムアウト制限解除して」って言えば多分大丈夫かと。あ、codexの使い方は「codex exec [task]」で使えるから導入してみてくださいね。他の記事でも書いてます!
こんにちは。この記事を読んでくれているあなたも、きっと同じ悩みを抱えていたはずです。「Claude Code、めっちゃ便利だけど、bashコマンドが2分でタイムアウトしちゃう問題、どうにかならないの!?」と。
僕もそうでした。ちょっと重めのビルドを走らせたり、Codexに大規模なリファクタリングを頼んだりすると、決まって「Command timed out after 2m 0.0s
」の無慈悲なメッセージ…。せっかくのポテンシャルが台無しですよね。
これまでgtimeout
でラップしたり、シェルの環境変数をいじったり、色々試しては玉砕する日々でした。でもある日、ふと思ったんです。「あれ、これってClaude Code側のタイムアウト設定を変えればいいだけなのでは…?」と。
そこからAIアシスタントに壁打ちしつつ、GitHubのIssueや内部ドキュメントをディグってもらった結果…ついに、ついに見つけました!
…と、ここで話は終わりませんでした。
当初、この方法でもcodex
だけは2分の壁が破れず、一度は「ここまでか…」と諦めかけたんです。でも、しつこく調査を続けたら、なんと**Codexの壁にも風穴を開ける『第二の鍵』**が見つかったんです!
この記事では、その七転八倒の全記録と、ついに掴んだ「完全な解決策」を共有します。
**この記事自体をAI(ClaudeやChatGPTなど)に読ませて、「この手順通りに設定して」と頼むのが一番早いかもしれません。**ぜひ試してみてください!
🚨 忌まわしき「2分の壁」問題
もはや説明不要かもしれませんが、Claude Codeにはbashコマンドに対してハードコードされた2分のタイムアウトが存在し、私たちの開発体験を著しく損なっていました。
- 重いビルドやテストが完走できない。
- 大規模なコード解析が途中で止まる。
- AIによるリファクタリングも時間との戦い。
この根本的な制約が、今日、ついに過去のものとなります。
🎉 ブレークスルー!解決策は二段構えだった
結論から言うと、解決の鍵は**「二段構えのタイムアウト設定」**にありました。Claude Code本体と、Codexでは、設定すべき場所が異なっていたのです。
settings.json
)
第一の鍵:Claude Code本体のタイムアウトを解除する (まず、すべての基本となるのが、Claude Code自体のタイムアウト設定です。これを設定しないと始まりません。
~/.claude/settings.json
ファイルに、以下のenv
ブロックを追記、または編集します。
{
"mcpServers": {
// ... 既存のmcpServers設定 ...
},
"env": {
"BASH_DEFAULT_TIMEOUT_MS": "1800000",
"BASH_MAX_TIMEOUT_MS": "7200000"
},
"hooks": {
// ... 既存のhooks設定 ...
}
}
-
BASH_DEFAULT_TIMEOUT_MS
: デフォルトのタイムアウト(例:1800000
で30分) -
BASH_MAX_TIMEOUT_MS
: 設定可能な最大タイムアウト(例:7200000
で120分)
これを設定してClaude Codeを再起動すれば、sleep
やfind
、make
といった、Codexを介さないあらゆるbashコマンドが時間無制限で実行可能になります! これだけでも革命的です。
config.toml
)
第二の鍵:Codexのタイムアウトを延長する (しかし、第一の鍵だけではcodex exec
で実行するコマンドは2分で止まってしまいます。Codexには独自のタイムアウト設定があったのです。
~/.codex/config.toml
ファイルで、使用するプロファイルのtimeout
値を設定します。
[profiles.long-task]
# タイムアウトを秒で指定 (例: 1800秒 = 30分)
timeout = 1800
[profiles.marathon]
timeout = 7200
これで、codex exec
コマンドも2分の壁を越えることができます!
🔬【重要】Codexの「二重タイムアウト構造」という真実
これで万事解決!…と、思いきや、最後の最後に新たな壁が見つかりました。Codexのタイムアウトは、さらに**二重構造(Dual-Layer)**になっていたのです。
-
第一層:アプリレベルのタイムアウト (✅ 設定可能)
-
config.toml
で設定できるのがこの層です。 -
cxl "sleep 150"
(2.5分のコマンド) → 成功!
-
-
第二層:サンドボックスレベルのタイムアウト (❌ ハードコード)
- Codexが動作する安全な環境(サンドボックス)自体に、ハードコードされたタイムアウトが存在するようです。
- これが約2.5分~3分の壁となっています。
-
cxmarathon "sleep 300"
(5分のコマンド) → 失敗! (sandbox error: command timed out
)
この発見は非常に重要です。つまり、現状の最適解はこうなります。
🎯 結論:これが僕たちの戦い方だ!
-
超長時間のタスク (3分以上)
- Claude Codeのbashツールを直接使う。
-
find
やgrep
、awk
、sed
などを駆使したデータ処理、大規模なビルドなど。 -
settings.json
の設定がフルに活きます。
-
"そこそこ"長いCodexタスク (~2.5分)
codex exec
を使う。- 2分を少し超える程度のコード解析やリファクタリング。
-
config.toml
の設定が活きます。
絶対的な「2分の壁」は崩れ去りました。私たちは「時間無制限のCodex」と「時間無制限のbash」という、二つの強力な武器を手に入れたのです!
⚙️ 実践ガイド(まとめ)
-
(バックアップ) まずは
~/.claude/settings.json
と~/.codex/config.toml
をバックアップしましょう。 -
(Claude Code本体の設定)
~/.claude/settings.json
にenv
ブロックを追加・編集します。 -
(Codexの設定)
~/.codex/config.toml
の任意のプロファイルにtimeout = 1800
などを追記します。 -
(JSON構文チェック)
python3 -m json.tool ~/.claude/settings.json
で構文エラーがないか確認すると安全です。 - (再起動) Claude Codeを完全に再起動して、設定を適用します。
これで、あなたの開発環境は新たな次元へ到達します。タイムアウトエラーに邪魔されることなく、思考を止めずに開発に集中してください。
🚀 コミュニティへの貢献:GitHub Issue #5615
今回の発見は、多くの開発者にとっても有益だと考え、すぐにGitHubのIssueとして詳細なレポートを投稿しました。
このIssueでは、この記事で解説した内容を網羅的に報告しています。
- コピペで使える具体的な設定方法
- Codexの二重タイムアウト構造という新発見の解説
gtimeout
など、失敗したアプローチの分析と比較- タスクの所要時間に応じた実践的なツール使い分けガイド
これで、世界中のClaude Codeユーザーがこの解決策を簡単に見つけられるようになったはずです。皆でコミュニティを良くしていくのは、最高の体験ですね!
Happy Hacking! 🚀
Discussion