Claude Codeを夜間に動かして、朝に結果を受け取る方法
/goalで終了条件を決め、Macを起こしたまま進捗ファイルを残す。英語資料の一晩での日本語化を例に、夜間作業の設定を解説します。
退勤前にClaudeへ仕事を渡し、翌朝の朝会の前に結果を確認する。聞くと魔法のようですが、実際に必要なのは地味な三つだけです。Claudeが自分で確かめられるゴール、止まらないマシン、そして朝に読める作業記録。この三つがそろえば、朝には仕事が終わっています。一つでも欠けると、夜11時40分に止まったまま一晩中あなたを待っていた画面と対面することになります。
どこで動かすかを先に決める
Claude Codeで無人の作業を動かす場所は三つあります。
- Mac上で開いたセッション:
/goalや/loopはここで動きます。ローカルのファイルや道具をすべて使えますが、Macがスリープしないようにする必要があります。 - デスクトップアプリの予約タスク:Claudeのデスクトップアプリで設定し、決まった時刻に自分のマシンで実行します。アプリが開いていて、マシンが起きているときだけ動きます。
- クラウドのルーティン:Anthropicのクラウドで動くので、ノートPCを閉じていても実行されます。GitHubのリポジトリとコネクタは使えますが、自分のPCにしかないファイルは見えません。
例:英語ドキュメントを一晩で日本語化する
日本の現場でよくあるのが、海外製品のドキュメントや社内の英語資料を日本語にする作業です。量が多く、ゴールがはっきりしているので、夜間の作業に向いています。ここでは /goal を使います。
/goal docs/en の全Markdownファイルに対応する日本語訳が docs/ja にあり、
glossary.md の用語がすべて統一され、npx textlint docs/ja がエラーなしで終わること。
40ターンで終わらなければ止めること。
/goal は条件を設定すると、別のモデルが「達成した」と判断するまで、Claudeが自分でターンを重ねて作業を続ける機能です。ポイントは三つあります。測れる終了条件にすること、確認方法を書くこと(ここではtextlint)、そして上限を付けることです。「いい感じに翻訳して」ではClaudeも採点できません。
用語集 glossary.md を用意しておくと、「deploy」を「デプロイ」にするか「展開」にするかといった揺れを防げます。Claudeは日本語の自然さにもかなり気を配ってくれますが、社内の用語は教えないとわかりません。
寝る前にコマンド一つで始める
ターミナルから次のように実行すると、画面を開いたままにしなくても作業が続きます。
git switch -c overnight/ja-docs
caffeinate -i claude -p "/goal docs/en の全ファイルの日本語訳が docs/ja にあり、textlintがエラーなしで終わること。40ターンで終わらなければ止めること" \
--permission-mode auto --output-format stream-json --verbose > overnight.jsonl
caffeinate -i はmacOSに最初から入っているコマンドで、後ろのコマンドが動いている間だけスリープを防ぎます。ただし、ふたを閉じるとスリープするので、電源につないで開けたままにしてください。夏場は熱がこもらない場所に置くのも大事です。--output-format stream-json を付けると、途中経過がすべてファイルに残ります。
Macを起こしておく専用アプリとして、私は Nightwatch というアプリも作っています。
夜間はautoモードで動かしますが、pushや削除、送信などはdenyルールで先に止めておきましょう。Manualモードのままだと、最初の確認でそのまま朝まで止まります。
作業記録ファイルが一晩を支える
長い作業では、古い会話の内容が要約されて、細かい判断が抜け落ちていきます。ファイルに書いたことは消えません。Anthropicのエンジニアリングチームも、進捗ログとgitの履歴で長時間の作業をつなぐ方法を記事で紹介しています。夜間のプロンプトには、必ず次の一文を足してください。
リポジトリ直下に PROGRESS.md を作り、各作業の前に読み、後に追記してください。
追記する内容は、やったこと、判断とその理由、次にやること。
一区切りごとにコミットしてください。
同じ問題で3回失敗したら、PROGRESS.md の「保留」に書いて次に進んでください。
「保留」のルールがないと、一つの難しいファイルに一晩中かかりきりになることがあります。
毎朝の定型作業はクラウドへ
毎朝7時に新しいIssueを整理する、前日のPRをレビューする、といった定期作業はルーティンが向いています。Claude Codeで /schedule と入力すれば会話形式で作れます。時刻は自分のタイムゾーンで指定でき、日本時間のまま設定できます。変更は claude/ で始まるブランチに入るので、mainが勝手に書き換わることはありません。ルーティンはリサーチプレビュー中で、1日の実行回数に上限があるため、公式ドキュメントで最新の条件を確認してください。
朝、最初に見るもの
PROGRESS.mdを読むgit logで何をコミットしたかを見る- 差分を確認し、テストを自分でも実行する
Claudeの報告は「やったと思っていること」、差分は「実際にやったこと」です。たいていは一致していますが、それを確かめるのが朝の10分です。まずは今週、翌朝10分で確認できる小さなゴールを一つ試してみてください。慣れてきたら、量の多い作業やクラウドのルーティンに広げていけば大丈夫です。