結論:開くたびに、やり残しを教えてもらえます。作るのはClaudeに頼めます
結論、Claude Codeを開くたびに「今日まだ終わっていないこと」を教えてもらう設定は、コードが書けなくても作れます。仕組みは「フック(hooks)」の中の SessionStart という機能で、作る中身は「記録ファイル1つ」「短いスクリプト1つ」「設定の数行」だけです。
毎日やるはずの作業を、ふと気づいたら忘れていた。そんな経験はありませんか。日報、投稿、請求の確認など、毎日の定型作業をうっかり忘れる人向けの記事です。
この記事でわかること:
- 起動したときに、今日の未済を教えてもらう仕組み(SessionStartフック)
- 「済んでいれば何も言わない」ようにする考え方
- Claudeに頼んで、確認用の小さなスクリプトを作ってもらう手順
- 動かないときの原因別の対処
※フックの基本(何のための機能か、設定ファイルの場所)は、Claude Codeの通知設定の記事で説明しています。先に読むと分かりやすいです。
※検証環境: Windows 11 / Claude Code 2.1.283・2.1.304/確認日 2026-10-20(画面の撮影は2.1.304)
SessionStartフックとは?
Claude Codeは、「会話を始めるとき」に、決まった処理を自動で実行できます。それが SessionStart フックです。
- 実行されるのは、会話の開始時、または再開時(公式ドキュメントより)
- 実行した処理が文字を出すと、その内容はClaudeに渡されます(公式: 標準出力に書いた文字はClaudeの文脈に入る)
- つまり、「今日まだ〇〇が終わっていません」とClaudeに伝えておけば、Claudeが最初の返事で教えてくれる、という使い方ができます
ふつうの指示(CLAUDE.mdなど)は、「毎回こうしてね」という固定のお願いです。フックは、その日の状況を見て、違う内容を渡せるのが強みです。
作る前に決めること(3つ)
- 何を見て判定するか: 例)「今日の日付が、記録ファイルに書いてあるか」
- 済んでいたらどうするか: 何も出さない(毎回うるさく言われない)
- 未済のとき、Claudeに何と伝えるか: 例)「今日はまだ〇〇を出していません。次の1つを提示してください」
この「済んでいれば黙る」が大事です。毎回出る通知は、そのうち読まなくなります。
手順
ステップ1: 記録ファイルを決める
「今日やった」を残すファイルを、1つ決めます。メモ帳のようなテキストファイルで構いません。ここでは done-log.md とします。
## 記録
2026-10-19 | 日報を出した
2026-10-20 | 日報を出した
この形式のダミーファイルで、日付の判定ができることを実機で確認しています(2026-10-20)。
ステップ2: Claudeに、確認用のスクリプトを作ってもらう
Claude Codeに、次のように頼みます。
done-log.md を読んで、今日の日付(YYYY-MM-DD)が書かれていなければ、
「今日はまだ日報を出していません」とClaudeに伝えるスクリプトを、
.claude/reminder.ps1 に作ってください。
今日の日付があれば、何も出さずに終わるようにしてください。
Windows(PowerShell)で動くものにしてください。
できあがるスクリプトは、毎回少し違います。以下は、私が動作確認した版です(JSON形式で出力する版。Claudeが作る版は、文字をそのまま出す形になることもありますが、どちらも動作しました。JSONで出したい場合は、依頼文に「JSON形式で出力して」と足してください)。
$log = Join-Path $PSScriptRoot "..\done-log.md"
$today = Get-Date -Format "yyyy-MM-dd"
if (Select-String -Path $log -Pattern $today -Quiet) { exit 0 }
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$msg = "今日($today)はまだ日報を出していません。最初の返事で、ユーザーに伝えてください。"
@{ hookSpecificOutput = @{ hookEventName = "SessionStart"; additionalContext = $msg } } | ConvertTo-Json -Compress
- 1〜3行目: 記録ファイルに今日の日付があるか調べます。あれば何も出さずに終わります(
exit 0) - 4〜6行目: 無ければ、Claudeへの伝言を所定の形で出力します
私が同じ依頼文を、空のフォルダで実際に試したところ、日本語のままで通り、動くスクリプトができました(2026-10-20・2.1.283)。確認した点は3つです。
- 記録ファイルに今日の日付が無いとき: 「今日はまだ日報を出していません」と出る
- 今日の日付があるとき: 何も出さずに終わる(終了コード0)
- 記録ファイルが無いときも、同じメッセージを出す作りになっていた
つまずきやすい点が2つありました。
.claudeフォルダへの書き込みは、許可を求められます。私の環境では最初、「書き込みが権限上ブロックされています。承認してください」と返ってきました。画面に許可の確認が出たら、内容を見て承認してください- 日本語を含むスクリプトは、保存形式で文字化けすることがあります。私のときは、Claudeが自分で「BOM付きUTF-8で保存した」と報告してくれました。化けたら「BOM付きUTF-8で保存し直して」と頼んでください
スクリプトとは: 命令を書いた短いファイルです。中身が読めなくても、「何をするか」をClaudeに説明してもらえます。実行する前に、「このスクリプトは何をしますか?ファイルを書き換えたり、外に送ったりしませんか?」と聞いて確認してください。

ステップ3: フックとして登録する
.claude/settings.json に、次を足します。すでに hooks がある場合は、置き換えずに中に足してください。
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": "powershell -NoProfile -ExecutionPolicy Bypass -File .claude/reminder.ps1",
"shell": "powershell",
"timeout": 15,
"statusMessage": "今日の未済を確認中"
}
]
}
]
}
}
matcher: "startup"は、「新しく起動したときだけ」という意味です。実機では、--continue(前の会話を再開)のときはフックが動かず、二重にはなりませんでした(再開時にはリマインドも出ません)timeout: 15は、15秒たっても終わらなければ止める、という上限ですstatusMessageは、実行中に表示される文言です

ステップ4: 動いているか確認する
- Claude Codeを開き直す(初回は「このフォルダを信頼しますか?」と聞かれるので、自分のフォルダなら「Yes, I trust this folder」を選びます)
/hooksと打つ。一覧にSessionStartが出ていればOK

ステップ5: 実際に試す
- 未済の状態で起動: 記録ファイルに今日の日付が無い状態で開く → Claudeの最初の返事で、リマインドが出るか。実機(普段のターミナル画面)では、起動した直後の画面には、フックの文章そのものは出ませんでした。最初の返事で、Claudeが自分から「今日(2026-10-20)はまだ日報を出していません」と触れました。フックの出力は画面に直接は見えず、Claudeの返事を通して知らされる、と考えてください(Claude Code 2.1.304で撮影)。
- 済んでいる状態で起動: 今日の日付を足して開く → 何も言われないか


実際にやってみた
私は、毎日のSNS投稿を忘れないように、この仕組みを実際に使っています。
- 判定は「記録ファイルに、今日の日付があるか」
- 無ければ、Claudeに「今日はまだ出していません。次の1本を提示して」と伝える
- あれば、何も出さずに終わる
2.1.283で、今日分が済んでいる状態でスクリプトを直接実行したところ、何も出力されず、エラーもなく終わりました(想定どおり)。今日の日付が無い状態では、「今日はまだ出していません」という文を入れたJSONが出力されました。なお、上のスクリーンショットは、記事用に作った最小版(ダミーのフォルダ)で撮ったものです。
わざと壊す実験もしました。JSONを壊すと、エラーは一切出ず、静かに無視されます。リマインドが来ないときは、スクリプトだけを単体で実行して、出力を目で確認してください。
助かった場面: いろんな作業を並行してやっていると、どうしても忘れてしまいます。Claude Codeを開いて「今日の作業は?」と聞くだけで、今日やらなきゃいけない作業が一覧で出てくる。これが本当に助かっています。
うまくいかなかった点: 一日過ぎてしまった作業は表示されず、やらないまま過ぎていきました。何日か経ってから気づくことが、何度かありました。
原因は、この仕組みが見ているのが「今日の分」だけだからです。昨日までの未済は、判定の対象に入っていません。気づいた今は、「過去数日分の未済も見る」ように作り直すと防げます(下の「応用」を参照)。
正直な感想: 「忘れても、開けば気づける」安心感は大きいです。一方で、今日の分しか見ない作りだと、過ぎた日のやり残しは拾えません。最初は1つだけ、今日の分から始めて、慣れたら「過去数日分」を足すのがおすすめです。
応用:非エンジニアの使いどころ(4つ)
- 毎日の日報・投稿の確認: 今日の分が済んでいなければ知らせる(上の例)
- 週の定例: 曜日を見て、「今日は月曜なので、週次の確認をしてください」と伝える
- 締め切りが近いものの確認: 期限ファイルを見て、3日以内のものだけ伝える
- 過ぎた日のやり残しも拾う: 「今日の分」だけでなく、「過去3日分で未済のものがあれば伝える」ようにする。私は、一日過ぎた作業に何日も気づかなかったことがあったので、これを一番足したい機能だと思っています(Claudeに「過去3日分も確認して」と頼めば作れます。この拡張版は、この記事では動作確認していません)
やりすぎ注意: 伝えることが増えすぎると、結局読まなくなります。最初は1つだけにしてください。
うまくいかないとき
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
/hooks に SessionStart が出ない | 設定ファイルの場所、または { } や " の欠け | ファイルの場所と書式を確認。Claudeに「このJSONを直して」と頼む |
| 出るが、リマインドが来ない | 今日の日付がすでに記録されている/日付の書式が違う | 記録ファイルの日付の書き方と、スクリプトの判定を揃える |
| 毎回、2回出る | 起動と再開の両方で動いている | matcher を startup に絞る(実機で、絞ると再開時には動かないことを確認済み・2.1.283) |
| エラーも出ないのに、リマインドが来ない | スクリプトの出力(JSON)が壊れている。エラーは出ず、静かに無視される | スクリプトだけを単体で実行して、出力を目で確認する(実機で再現・2.1.283) |
| 起動時の確認が途中で打ち切られる | 処理がtimeoutを超えた(実機では「中止」扱いで、起動は止まらずリマインドだけ届かない) | スクリプトを軽くする/timeoutを調整 |
| 日本語が文字化けする | 文字コードの違い | スクリプト内で出力をUTF-8にする(Claudeに頼む)(私の環境では文字化けは出ませんでした。他の環境は未検証です) |
| 起動が遅くなった | スクリプトが重い/timeout が長い | timeout を短くする。読むファイルを小さくする |
| 動作が複雑で原因がわからない | — | claude --debug で起動してログを見る |
| 止めたい | — | 設定に "disableAllHooks": true を入れる |
安全のために: フックは、あなたの権限で命令を実行します。他人のフックを、中身を確認せずにコピーしないでください。
よくある質問
Q. 料金はかかりますか?
この記事のフック(command 型=PowerShellなどを実行するだけのもの)は、公式ドキュメントの説明では、AIモデルを呼ぶ種類ではありません。ただし公式にフックの料金は書かれていないため、「無料」とは断定しません。Claude Code自体の利用には、契約しているプランの料金や利用枠がかかります(出典: 公式 hooks・確認日 2026-10-20)。
Q. MacやLinuxでも使えますか?
考え方は同じですが、この記事の手順(PowerShell)はWindows向けです。他のOSでは検証していません。
Q. 通知設定の記事との違いは?
通知は「Claudeが待っているとき」に知らせる仕組みです。この記事は「起動したときに、やり残しを知らせる」仕組みです。目的もイベントも違います。
Q. 画面に表示されますか?Claudeが教えてくれますか?
フックの文章そのものは、画面には直接出ません。Claudeが、最初の返事で触れます(Claude Code 2.1.304・2026-10-20に確認。仕様はバージョンで変わる可能性があります)。
Q. 毎日使うと、Claudeの利用枠を消費しますか?
フックが渡した文章は、Claudeが読む内容に加わります。公式は消費量の数字を示していませんが、入れた分だけ読む量が増えると考えてよいはずです。渡す文章は短くしてください。公式の上限は1回あたり1万文字です(確認日 2026-10-20)。
関連記事
- Claude Codeの通知設定(Windows)|確認待ちを見逃さない方法(フックの基本)
- Claude Codeの記憶(メモリ)機能の使い方(「毎回こうしてね」という固定のお願いはこちら)
- コードを書かずにスラッシュコマンドを作る
noteでは、Claudeと一緒に記事を書き続ける仕組みを、有料記事「AIにネタを出させて記事を書き続けるループの作り方」にまとめています。

コメント