活用事例一覧へ
2026年7月27日業務自動化・ワークフロー検証時期:2026年4月

寝ている間もAIを動かす|cron+Claude Code CLIによる夜間自動実行の構築と権限の壁【AI活用検証vol.66】

寝ている間もAIを動かす|cron+Claude Code CLIによる夜間自動実行の構築と権限の壁【AI活用検証vol.66】

AIツールのサブスクリプションには、時間あたり・週あたりの利用上限があります。日中の作業だけでは使い切れず、就寝中は活用率0%です。

この検証は「寝てる間も動く仕組みを作りたい」という発想から始まりました。cronで深夜2時10分にClaude Code CLIを起動し、記事を自動生成する仕組みを構築しています。

この検証の概要

検証時期

2026年4月15日〜(検証中)

使用ツール

Claude Code CLI(claude --permission-mode auto -p)/macOS cron + pmset/Astro 6.1.4 + MDX

目的

非稼働時間帯(主に深夜〜早朝)にAIを自律的に動かし、週あたりのレートリミット消化率を最大化する

構築したもの

cron(02:10)→ generate-ai-articles.shclaude --permission-mode auto -p → MDX保存

成果

5記事分のドラフト内容の生成を確認(品質は既存記事と遜色なし)/保存成功は0件(権限問題により保留中)

状況

進行中

結論:生成は動いた。詰まったのは権限だった

この検証の現状を正確に書くと、こうなります。

記事の内容生成自体は問題なく動作し、品質も既存記事と遜色ないレベルでした。しかし保存成功は0件です。原因は生成ではなく、ファイル書き込みの権限にあります。

具体的には、外付けSSDへのWrite権限がサブエージェントに引き継がれないという問題です。

  • --permission-mode auto でも、作業ディレクトリ外への書き込みは別途許可が必要
  • settings.local.jsonallowWrite(/Volumes/...) を追加したが、サブエージェント(Agent toolで並列生成)には権限が完全には引き継がれなかった
  • グローバル設定に追加しても解消せず

根本的な対処として、対象プロジェクトをMac内蔵ストレージへ移行する方針に切り替えました。

無人実行では、権限の設計がそのまま成否を分けます。対話的に実行していれば都度許可すれば済む場面が、無人だとそこで止まります。

なぜcronを選んだのか

スケジュール実行の手段はいくつかありますが、既存のcronインフラに乗せる方針を採用しました。

理由は「Macが深夜に確実に起動している前提が成立しており、cronが最もシンプル」だからです。

同様に、専用のTypeScriptスクリプト(SDK利用)ではなくClaude Code CLIに prompt.md を渡す方式を選んでいます。理由は追加の依存関係がなく、WebSearchやAgent toolがCLI側で既に使えるためです。

すでに動いている仕組みの上に載せるほうが、新しく作るより確実です。夜間実行は障害に気づきにくいため、部品を減らす判断が効きます。

バッチ実行の基本形

claude --permission-mode auto -p "$(cat prompt.md)"

この形がバッチ実行の基本形として機能します。-p モードでプロンプトファイルを渡すだけで、WebSearchやAgentの並列実行が動きます。

トピック選定は prompt.mdtopic-queue.json によるハイブリッド方式で設計しました。

ハマりポイント3つ

timeout コマンドがmacOSに存在しない

スクリプト内で timeout 1740 claude ... としていましたが、macOSはデフォルトでGNU coreutilsを持たないため timeout: command not found で即終了しました。

対処は timeout を除去してclaudeコマンドを直接実行することです。代替として perl -e 'alarm(1740); exec @ARGV' -- command を使うか、Homebrewで coreutils を入れて gtimeout を使う選択肢があります。

② グローバル設定の defaultMode: "plan" がバッチ実行を妨害

~/.claude/settings.json"defaultMode": "plan" が設定されていたため、--permission-mode auto で起動してもプランモードに入り「承認いただければ実行を開始します」で停止しました。

対処は、プロジェクト設定(.claude/settings.local.json)に "permissions": { "defaultMode": "auto" } を追加してオーバーライドすることです。

無人実行では、確認を求めて止まる設定が致命的になります。対話用の設定がそのまま効いていないか、確認が必要です。

③ crontab書き込みがプロジェクト設定でブロックされた

.claude/settings.local.json"allow": ["Bash(crontab -l)"] のみ設定されており、crontab /tmp/xxx の書き込みがブロックされました。"Bash(crontab /tmp/crontab_new.txt)" をallowに追加して解決しています。

安全側の設計:denyリストは auto でも有効

無人で動かす以上、暴走への備えが必要です。

破壊的コマンド(rm / git push / sudo など)をdenyリストで永続ブロックしました。重要なのは、deny リストは --permission-mode auto でも有効だという点です。

「基本は自動で通す。ただし危険なものは常に止める」という設計が、無人実行では現実的です。すべてを許可するのでも、すべてを確認するのでもない中間が必要になります。

技術的な発見

  • claude --permission-mode auto -p "$(cat prompt.md)" がバッチ実行の基本形
  • settings.local.jsonpermissions.defaultMode: "auto" でグローバルの plan をプロジェクト単位でオーバーライドできる
  • deny リストは --permission-mode auto でも有効
  • 外付けドライブへの書き込みは additionalDirectories だけでは不十分。allow への Write(path/**) の明示追加が必要だが、サブエージェントへの権限引き継ぎは不安定

残っている課題

  • 対象プロジェクトのローカル移行が完了していないため、記事の自動保存が未実現
  • 移行後にスクリプト3箇所のパス更新が必要(generate-ai-articles.sh / prompt.md / settings.local.json

よくある質問

なぜ夜間に自動実行するのですか?

利用プランのレートリミットを、日中の作業だけでは使い切れていないためです。就寝中は活用率0%になるため、非稼働時間帯に自律的に動かして消化率を上げるという発想です。

なぜcronを使うのですか?

Macが深夜に確実に起動している前提が成立しており、最もシンプルだからです。すでに動いている仕組みに載せるほうが、新しく作るより確実に動きます。

無人実行で気をつけることは?

権限設定と、確認を求めて止まる設定です。グローバル設定の defaultMode: "plan" が効いていると承認待ちで停止します。また、作業ディレクトリ外への書き込みは別途許可が必要で、サブエージェントへの権限引き継ぎは不安定です。

暴走が心配ではないですか?

破壊的コマンド(rm / git push / sudo など)をdenyリストで永続ブロックしています。denyリストは --permission-mode auto でも有効です。

まとめ

  • cron(02:10)→ シェルスクリプト → claude --permission-mode auto -p → MDX保存という夜間実行の仕組みを構築
  • 記事の内容生成は正常動作し品質も既存記事と遜色なし。ただし保存成功は0件(権限問題により保留)
  • 詰まったのは外付けSSDへのWrite権限がサブエージェントに引き継がれない問題。ローカル移行で対処する方針
  • macOSに timeout は存在しないgtimeoutperl -e 'alarm(...)' で代替
  • グローバルの defaultMode: "plan" がバッチ実行を止める。プロジェクト設定でオーバーライドする
  • denyリストは auto モードでも有効。「基本は自動、危険なものは常に止める」が無人実行の現実解

自動実行の仕組みは、動かす部分より止まる部分の設計に手間がかかります。無人で回すなら、権限と確認の挙動を先に洗い出しておくと詰まりにくくなります。

株式会社AI棒では、こうしたAI活用の検証を日々行い、企業の業務自動化を支援しています。ご相談はお問い合わせフォームから、継続的な伴走支援についてはAI参謀をご覧ください。

関連する検証事例

© 株式会社AI棒 All Rights Reserved.