EN / JP
← Tips & トラブルシュート
Troubleshooting

Cline が固まったときの調べ方

Cline がコマンド実行中に応答しなくなり、パネルが固まった(「Resume Task」から進まない、ボタンを押しても無反応など)ときに、原因をログとタスク履歴から特定する手順のメモ。

2026-07-26 · Cline (Devin / VS Code 拡張機能) · macOS

01. まずログの場所を把握する

Devin(VS Code フォーク)の場合、アプリ名のフォルダの下に通常の VS Code と同じ構造でログと拡張機能ストレージが入っています。

~/Library/Application Support/Devin/logs/<セッションID>/
    main.log                          … アプリ全体
    window1/exthost/exthost.log       … 拡張機能ホストのログ(ウィンドウごと)
    window1/exthost/output_logging_*/1-Cline.log … Clineの出力パネルのログ
    ptyhost.log, terminal.log         … ターミナル周り

~/Library/Application Support/Devin/User/globalStorage/saoudrizwan.claude-dev/
    tasks/<タスクID>/ui_messages.json          … 画面に表示される全メッセージ履歴
    tasks/<タスクID>/api_conversation_history.json … AIとのやり取り(APIリクエスト単位)

VS Code 本体の場合は Devin の部分が Code になります。他のフォークでもアプリ名を ~/Library/Application Support/ 配下で探せば同じ構造が見つかります。

02. 「最後に何が起きたか」をタスク履歴から特定する

tasks/ 配下で最近更新されたタスク ID を探し、ui_messages.json の末尾を見ます。

ls -lat ~/Library/Application\ Support/Devin/User/globalStorage/saoudrizwan.claude-dev/tasks | head

python3 -c "
import json, datetime
with open('.../ui_messages.json') as f:
    data = json.load(f)
for m in data[-10:]:
    ts = m.get('ts')
    t = datetime.datetime.fromtimestamp(ts/1000) if ts else None
    print(t, m.get('type'), m.get('say') or m.get('ask'), str(m.get('text',''))[:200])
"

止まる直前の最後のメッセージの種類に注目します。

03. 「本当にコマンドは終わっているか」を裏付ける

UI 上は固まっていても、裏では実際にコマンドが完了していることが多いです。ログだけで判断せず、実体を直接確認します。

止まっている時間帯に exthost.log / terminal.log / ptyhost.log何も追記されていない場合、拡張機能ホストがクラッシュしたのではなく、「ターミナルの完了通知が Cline に届いていない」という同期ズレが起きている可能性が高いです。

04. よくある原因

# コメント入りの複数行コマンド

インタラクティブな zsh は既定で # をコメントとして扱いません(setopt interactive_comments が無効)。AI が生成したコマンドに # 説明 のような行が混ざっていると zsh: parse error near ')' のようなエラーになり、そこからターミナル統合の状態がおかしくなることがあります。

対策: ~/.zshrcsetopt interactive_comments を追加。

長い複数行コマンドの一括投入によるレース

コマンド文字列を流し込むタイミングとシェル側の準備完了のタイミングが競合し、先頭文字が二重化する(echoeecho など)文字化けが起きることがあります。この文字化けがシェル統合のコマンド境界検出を壊し、以降ずっと「完了待ち」のまま無応答になります。

対策: 1 回のコマンド実行を短く・少ない行数に分割するよう、.clinerules などでカスタム指示を入れておく。

05. 復帰手順

  1. 実際にはコマンドが終わっているとわかったら、まず「Resume Task」を押してみる。
  2. 押しても無反応(ボタンごと固まっている)なら Cline 側の Webview 自体がフリーズしている可能性が高い。パネルを閉じて開き直す。
  3. それでも直らなければ Cmd+Shift+PDeveloper: Reload Window。タスク履歴はディスク(globalStorage/tasks/)に保存されているので消えない。
  4. リロード後、「RECENT」からタスクを開き直し、壊れていたターミナルタブを閉じてから「Resume Task」を押す。
  5. 復帰後、AI に「〇〇はもう完了済みです」と直接伝えると、無駄な再実行やポーリングを省ける。

06. 再発防止

他のチップスも公開しています。

Tips 一覧へ olbin.dev へ戻る