24 時間稼働

自分のサーバーでコーディングエージェントを 24 時間動かす

常時稼働のコーディングエージェントに必要なものは 3 つです。スリープしないマシン、接続が切れても生き残るプロセス、そしてあなたが必要になったときに気づく手段。tmux から systemd、セッションデーモンまで、それぞれを実現する方法と、サブスクリプションが課す上限を紹介します。

自分のサーバーでコーディングエージェントを 24 時間動かす

簡単な答え

エージェントをスリープしないマシン(VPS か常時稼働の自宅マシン)に置きます。SSH セッションより長生きするものの下で動かしましょう。対話的に使うなら tmux、起動時に tmux を復活させるなら systemd のユーザーサービス(lingering を有効に)、あるいはセッションを所有するデーモンです。並行するセッションにはそれぞれ専用の git worktree を割り当てます。24 時間動くエージェントを止めるのは、たいていハードウェアではなくプランの使用量の上限です。Claude のプランは 5 時間ごとにリセットされ、週ごとの上限もあります。

ノート PC 上のコーディングエージェントは、蓋を閉じると止まります。常に起動しているマシンに移すのは簡単な部分です。見落とされがちなのは、監視(何がプロセスを生かし続け、何が再起動後に復活させるか)、並行するセッション間の分離、そしてハードウェアよりずっと先にエージェントを止める使用量の上限です。このガイドでは、Claude Code、Codex などターミナルで動くエージェントについて、それぞれを解説します。

クラウドか自分のマシンか

まず、そもそもマシンが必要かどうかを決めましょう。今ではベンダーがエージェントを動かしてくれます。

ベンダーのクラウド(例:Claude Code のクラウドセッション、Codex のクラウドタスク)自分のサーバーや自宅のマシン
セットアップGitHub を接続(Claude はローカルのリポジトリをバンドルとしてアップロードすることも可能)VPS か常時稼働のマシン、それにインストールと認証
環境セッションごとに隔離された VM をスクリプトで構築。非アクティブになると回収される自分のツールチェーン、データベース、秘密情報。永続的
ネットワークとプライベートなサービスデフォルトで制限(ドメインの許可リスト)。プライベートネットワークには届かないマシンから届くものすべて:VPN、tailnet、ステージングの DB
エージェント1 つのベンダーのものあらゆる CLI:Claude Code、Codex、OpenCode、Grok Build、agy
費用プランの使用量(Anthropic:計算資源の別料金なし)プランの使用量+マシン代として月数ユーロ

プロジェクトが GitHub にあり、セットアップスクリプトでビルドできるなら、ベンダーのクラウドがいちばん手間がかかりません。まずは Anthropic のクラウドセッションのドキュメントから始めましょう。claude --cloud "…" でターミナルから 1 つ始められます。エージェントが自分のマシンにしかないものを必要とする場合や、複数のベンダーのエージェントを並べて使いたい場合は、自分のマシンを選びましょう。サイズと現在の価格は VPS の選び方ガイドで解説しています。スリープをオフにすれば、自宅の Mac mini でも使えます。

プロセスの監視

対話的なエージェントはターミナルのプログラムです。何かがターミナルを保持していない限り、ターミナルとともに終了します。選択肢は 4 つあり、シンプルなものから堅牢なものへ順に紹介します。

1. tmux

tmux new -A -s main
cd ~/src/api && claude        # detach: Ctrl-b d · re-attach: tmux attach -t main

tmux は切断を乗り越えますが、再起動は乗り越えられません。対話的な作業にはこれが適した道具で、リモートマシンで Remote Control のセッションを生かし続けるために Anthropic のドキュメントが勧めているのもこれです。エージェントに必要な設定は tmux、mosh、Tailscale のガイドにあります。

2. systemd + tmux で再起動後に復活させる

対話的な TUI はターミナルを必要とするので、サービスとして直接動かすことはできません。代わりに、起動時に systemd にデタッチ状態の tmux セッションを開始させられます。通常のユーザーとして、~/.config/systemd/user/agents.service を作成します。

[Unit]
Description=tmux session for coding agents

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -d -s main
ExecStop=/usr/bin/tmux kill-session -t main

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now agents.service
sudo loginctl enable-linger "$USER"     # start user services at boot, without a login

これで復活するのは空のセッションで、会話ではありません。会話の再開は別の手順です(後述の再起動時に起きることを参照)。

3. スケジュールに沿ったヘッドレスの実行

夜間の依存関係の更新、新しい issue の振り分け、ドキュメントの再生成といった定期的なジョブには、TUI は使いません。cron か systemd のタイマーから claude -p "…" や codex exec "…" を実行します。承認する人がいないので、権限モードと許可リストは意図して設定してください。方法はエージェントをフル権限で安全に動かすで解説しています。

4. セッションデーモン

いちばん堅牢なのは、エージェントのセッションを所有するプロセスです。セッションを開始し、トランスクリプトを保持し、どこからでもアタッチできるようにします。Claude Code の Remote Control のサーバーモード(claude remote-control)はその 1 つです。デフォルトで最大 32 の同時セッションを扱え、--capacity で変更できますが、それでも tmux かサービスの中で動かす必要があります。agy remote-control start は Antigravity のデーモンを OS のサービスとして登録します。Maude を含むサードパーティのツールは、複数のエージェントを扱う自前のデーモンをデプロイします。

並行セッションと worktree

2 つのエージェントが同じチェックアウトを編集すると、互いの変更を上書きしてしまいます。各セッションには、リポジトリの履歴を共有する別の作業ディレクトリとブランチ、つまり専用の git worktree を割り当てましょう。

git worktree add ../api-auth -b feature/auth
git worktree add ../api-billing -b fix/billing
# one tmux window per worktree, one agent per window

Claude Code はこれを代わりにやってくれます。claude --worktree feature-auth(または -w)は、.claude/worktrees/ の下に新しいブランチで worktree を作成し、その中でセッションを開始します。worktree のドキュメントをご覧ください。

1 台のマシンで扱えるセッション数は、エージェント自体ではなく、セッションが何を実行するかで決まります。目安としては、最初のセッションに 4 GB、ビルドやテストを行う追加のセッションごとに 1〜2 GB、各 worktree で開発サーバーやデータベースを動かすならさらに上乗せです。もう 1 つ増やす前に、忙しい時間帯に free -h で様子を見てください。worktree ごとに node_modules ができるので、ディスクもかさみます。

使用量の上限とレート制限

24 時間動くマシンが役に立つのは、プランがエージェントに作業を続けさせてくれる場合だけです。計画を立てる前に上限を確認しましょう。

  • Claude(Pro、Max)。Anthropic の使用量の上限についての記事によると、使用量の上限は 5 時間ごとにリセットされ、週ごとの上限もあります。並行する複数のセッションは同じ枠から消費します。現状は Settings → Usage で確認できます。
  • Codex(ChatGPT のプラン)。Plus などのプランでは 5 時間のローリングウィンドウが使われ、週ごとの上限が適用されることもあります。ローカルでの CLI の利用とクラウドタスクは 1 つの枠を共有します。自分のプランについては OpenAI の Codex の料金ページをご覧ください。
  • API キー。プランの枠はありませんが、トークン単位で支払うので、暴走したループは止まる代わりにお金がかかります。プロバイダーのコンソールで支出の上限を設定してください。

実際には「24 時間」とは、作業と枠がある限りいつでもエージェントが働けるという意味で、一日中フル稼働するという意味ではありません。長いタスクは離れている間に回るよう並べておき、次のリセットまで止まることは想定しておきましょう。

再起動時に起きること

カーネルの更新、プロバイダーのメンテナンス、メモリ不足による強制終了は、どれも再起動を引き起こします。エージェントの会話はディスクに保存されているので何も失われませんが、自動で再開するものもありません。

  • Claude Code:claude --continue で現在のディレクトリの最新の会話を再開し、claude --resume で会話を選べます。
  • Codex:codex resume --last、または選択画面を開く codex resume。
  • tmux:サーバーは消え、ウィンドウのレイアウトも一緒に消えます。上の systemd のユニットがセッションを作り直します。tmux-resurrect などのプラグインでレイアウトを復元することもできます。

途中だった編集や実行中のテストなど、マシンが落ちたときに進行中だったものは、手で確認する必要があります。エージェントにこまめにコミットさせる理由がもう 1 つ増えました。

スマホから見守る

常時稼働のエージェントは、思わぬタイミングであなたを必要とします。権限の確認、質問、レビューすべき完了したタスク。選択肢は、tmux にアタッチする SSH アプリ(無料だが通知はない)、エージェントごとに使えるベンダーの Remote Control アプリ、プッシュ通知のための ntfy フック(スマホから確認に答えるで解説)、あるいはそのすべてをこなすアプリです。

Maude はこの構成のために作られています。SSH でデーモンをデプロイし、サーバー上でセッションを 24 時間動かし、アプリを閉じても動かし続け、追加したすべてのサーバーで Claude Code、Codex、OpenCode、Grok Build、Antigravity を扱います。許可/拒否付きのプッシュ通知、待っているものの受信箱、セッションごとの git worktree、差分レビュー、ターミナルが使えます。あるエージェントの枠が尽きたら、それまでの作業をまとめた引き継ぎを付けて、セッションを別のエージェントに渡せます。各エージェントのプランか API キーは別途必要です。アプリは 3 日間のトライアルのあと週 $2.99、または 7 日間のトライアルのあと年 $59.99 です。

よくある質問

サブスクリプションで 24 時間使えますか?
ハードウェアは一日中動かせますが、どれだけ作業が進むかはプランの上限で決まります。Claude のプランは 5 時間ごとにリセットされ、週ごとの上限もあります。ChatGPT のプランでは、Codex に 5 時間のローリングウィンドウがあり、週ごとの上限がかかることもあります。API キーには枠はありませんが、トークン単位で課金されます。
1 台の VPS でいくつのエージェントのセッションを扱えますか?
セッションが何を実行するかによります。大まかな出発点は、最初のセッションに 4 GB、ビルドやテストを行う追加のセッションごとに 1〜2 GB です。各セッションに専用の git worktree を割り当て、さらに増やす前に free -h でメモリを確認してください。
サーバーが再起動するとエージェントはどうなりますか?
プロセスと tmux のセッションは消えますが、会話はディスクに保存されています。claude --continue や claude --resume、codex resume --last で再開できます。lingering を有効にした systemd のユーザーサービスを使えば、起動時に tmux のセッションを復活させられます。
自宅の Mac mini で Claude Code を 24 時間動かせますか?
はい。システムのスリープを無効にし(たとえば sudo pmset -a sleep 0)、有線のネットワークを使い、Tailscale か外向きに接続するアプリでアクセスします。Remote Control も tmux もそこで使えます。Mac がスリープすると、すべてが止まります。
同じサーバーで Claude Code と Codex を動かせますか?
はい。ログインも設定ディレクトリ(~/.claude と ~/.codex)も別々の独立した CLI です。同じファイルを編集しないよう、別々の tmux のウィンドウか worktree で動かしてください。

エージェントを、常に稼働

セッションはサーバーで 24 時間動き、あなたが必要なときはスマホが知らせます。iOS と Android に対応。

Download Maude on the App Store Get Maude on Google Play