Somnus Users Guide

Somnus v2 に対応

1. はじめに

Somnus は、Windows の PC の眠りを Claude(Claude Code)の仕事に合わせる常駐アプリです。次の 4 つをします。

動く環境:Windows 10・11 の PowerShell 5.1(Windows に入っているもの)。外から起こすには、Cloudflare のアカウント(無料で足ります)と、スマホのブラウザ(iPhone の Safari など)を使います。

開き方:PC にサインインすると、タスクトレイに Somnus の丸いアイコンが出ます(入れ方は 3-1)。スマホのページは、郵便受けの住所をブラウザで開きます(3-3)。

2. 画面の見取り図

外から起こす仕組み

① スマホ なぞって起こす → 連絡を預ける ② 郵便受け Cloudflare Workers いつも起きている ③ 家の PC 30 分ごとに起きて見る 連絡があれば 60 分起きる 見回り 連絡

寝ている PC は連絡を受け取れないので、連絡は「いつも起きている郵便受け」が預かり、PC が決まった間隔で起きて見に行きます。連絡してから起きるまで、最長で見回りの間隔(既定 30 分)かかります。

タスクトレイのアイコン

色意味
緑Claude(または Codex)が作業中。寝かせない
青メニューの「今は寝かせない」がオン
灰待っている(寝てよい)。アイコンにマウスを載せると、あと何分でスリープするかが出ます
橙まもなくスリープ(カウントダウン中。マウスかキーを触ると止まる)

スマホのページの 4 つの画面

① はじめに
はじめに
8 桁の接続コードを入れる
つなぐ
② 寝ている
PC は寝ています
寝直した・次の見回り
→ なぞって起こす
③ 預かり中
起こす連絡を預かりました
預けた時刻・起きる見込み
取り消す
④ 起きている
PC は起きています
あと N 分(ゲージ)
起きています

色は、寝ている=藍、預かり中=緑、起きている=日の黄。アイコン(月・時計・太陽)と見出しの文も状態ごとに違うので、色が見分けにくくても読めば分かります。表示はスマホの設定(ライト・ダーク)に合わせて変わります。

3. 基本の流れ

3-1. PC に入れる

  1. Somnus のフォルダで PowerShell を開き、次を流します。
    powershell -ExecutionPolicy Bypass -File ".\somnus-v1.ps1" -Install
    できた印:「登録しました: Somnus-常駐」「登録しました: Somnus-朝の起床」と出て、タスクトレイに丸いアイコンが出る。郵便受けを用意した後なら「登録しました: Somnus-郵便受け」も出る
  2. Claude Code の hooks(作業の始まりと終わりの知らせ)に Somnus を登録します(-Hook hold と -Hook release)。登録の仕方は Somnus のフォルダの README にあります。 できた印:Claude Code に何か頼むと、トレイのアイコンが緑になる

3-2. 郵便受けを用意する(外から起こすとき・1 回だけ)

  1. Cloudflare のアカウントを作り、wrangler(Cloudflare の道具)でログインしておきます。
  2. Somnus のフォルダで次を順に流します。1 つ目が郵便受けを配り、2 つ目が接続コードと合鍵を作って郵便受けに入れます。
    node mailbox\deploy.mjs
    node mailbox\set-secrets.mjs
    できた印:「配りました:https://…workers.dev」と出る。_private\remote.json ができる(中身は人に見せない)
  3. もう一度 3-1 の -Install を流して、見回りのタスクを登録します。 できた印:「登録しました: Somnus-郵便受け(07:00-24:00 の間 30 分ごと・スリープ解除あり)」と出る

3-3. スマホをつなぐ(スマホごとに 1 回だけ)

先に読んでください:次の手順で PC の画面に接続コードが出ます。その画面を撮影したり、チャットやメールに貼ったりしないでください。接続コードがあれば、誰でもあなたの PC を起こせるようになります。
  1. PC のタスクトレイの Somnus のアイコンを右クリックし、「スマホをつなぐ(接続コード)」を選びます。注意の窓で「OK」を押すと、住所と 8 桁の接続コードが出ます。
  2. スマホのブラウザで、その住所を開きます。「はじめに」の画面で接続コードを入れて「つなぐ」を押します。 できた印:「つなぎました」と出て、「PC は寝ています」(または「まだ見回りが来ていません」)の画面に変わる
  3. iPhone なら、Safari の共有ボタンから「ホーム画面に追加」を選ぶと、アプリのように開けます。

3-4. 外から起こして Claude を使う

  1. スマホのページを開き、下の「なぞって起こす」のつまみを右の端まで動かします(途中で離すと戻ります)。 できた印:画面が緑の「起こす連絡を預かりました」になり、「起きる見込み」の時刻が出る
  2. 見込みの時刻まで待ちます。PC は次の見回りで連絡を読んで起きます(開いたままなら 20 秒ごとに自動で読み直します)。 できた印:画面が黄の「PC は起きています」になり、「あと 60 分」のゲージが出る
  3. スマホの Claude アプリから、PC の Claude Code のセッションにつなぎます(Remote Control)。 できた印:スマホから送った文に、PC の Claude が答える

起きている 60 分が過ぎても、スマホから Claude に頼んでいる間は寝ません。最後にやりとりしてから、PC を触らない時間が 20 分続くと、いつもどおり寝ます(4-5)。

4. 機能ごとの説明

4-1. 起こしておく

Claude Code が作業を始めると Somnus に知らせが来て、終わるまで PC を寝かせません(画面は消えてかまいません)。作業の区切りのあとも、裏でサブエージェントなどが動いている間(会話の記録が 5 分以内に書かれている間)は寝かせません。抑止が続きすぎたとき(既定 480 分)は、念のため自動で外します。

4-2. 寝かせる

作業が無く、PC を触らない時間が 20 分続くと、60 秒のカウントダウンのあとスリープします。カウントダウンの間にマウスかキーを触れば止まります。スリープから起きた直後の 30 分は寝かせません。

4-3. 朝に起こす

毎朝決めた時刻(既定 7:55)に PC を起こし、そこから 30 分は寝かせません。常駐が止まっていたら、このとき起動し直します。

4-4. 見回り(外から起こす)

決めた時間帯(既定 7:00〜24:00)の間、決めた間隔(既定 30 分)で PC を起こし、郵便受けを見に行きます。

夜中(時間帯の外)は見回りません。その間に預けた連絡は、朝の最初の見回りで読みます。

4-5. 外からの操作も「使っている」に数える

PC の前で誰も触っていないのに Claude に人からの頼みが届いたときは、外(スマホの Claude アプリなど)から使っているとみなします。その頼みの始まりと終わりを「操作」に数えるので、返事を読んで次の文を考えている間に PC が寝ることはありません。定期実行や、ほかのセッションからの連絡は数えません。

4-6. トレイのメニュー

項目すること
今は寝かせない(手動)オンの間はずっと寝かせない(動画を見るときなど)
仕事が終わったら自動でスリープオフにすると、Somnus は自分では寝かせない
今すぐスリープ(10秒後)10 秒後にスリープ(触れば止まる)
スマホをつなぐ(接続コード)スマホのページの住所と接続コードを出す(3-3)
ログを開く・設定を開く・設定を読み直す記録と設定のファイルをメモ帳で開く。設定を直したら「読み直す」
Somnus を終了常駐を止める(翌朝の起床でも起こし直さない。もう一度起動すれば元に戻る)

5. スマホのページ

画面の上に PC の様子、下の親指の届くところに操作があります。開いている間は 20 秒ごとに読み直します。

画面出ること・できること
寝ている「PC は寝ています」(最後の見回りで寝直した)か「PC は起きていました」(最後の見回りのとき使われていた)。最後に見に来た時刻と次の見回り。「なぞって起こす」で連絡を預ける
預かり中預けた時刻と起きる見込み(次の見回り)。「取り消す」で連絡を取り消す
起きている残り時間(「あと N 分」・「HH:MM まで」・ゲージ)と起きた時刻

右上の「…」(メニュー)から、状態を読み直す・ヘルプ・ショートカットリスト・バージョン情報・この端末の接続を外す、が選べます。

「見回りが遅れています」と出たときは、予定の時刻を 10 分過ぎても見回りが来ていません。PC の電源やネット、サインインを確かめてください(9)。

6. キーボードショートカット

スマホのページを、キーボードのある機器で開いたとき(アプリのショートカットリストと同じ中身です)。

→
(つまみで)起こす方へ進める。端まで行くと連絡を預ける
← / Esc
(つまみで)元に戻す
R
状態を読み直す
M
メニューを開く
?
ショートカットリストを開く
Esc
開いている窓を閉じる

7. 設定

設定は Somnus のフォルダの somnus-settings.json。トレイの「設定を開く」で開き、直したら「設定を読み直す」。見回りの間隔・時間帯を変えたときは -Install をもう一度流します(タスクを登録し直すため)。

キー既定意味
idleMinutesBeforeSleep20触らない時間が何分続いたら寝かせるか
countdownSeconds60寝る前のカウントダウン(秒)
postWakeGraceMinutes30起きた直後に寝かせない時間(0 にしない)
maxHoldMinutes480寝かせないのを続ける上限
autoSleepEnabledtrue自動でスリープするか
wakeTime07:55朝に起こす時刻
mailCheckEnabledtrue郵便受けを見回るか
mailCheckMinutes30見回りの間隔(分)。見回りは 1 日 48 回まで(時間帯が 07:00-24:00 なら 22 分以上)
mailCheckHours07:00-24:00見回りの時間帯(両端を含む。日をまたいでもよい)
remoteHoldMinutes60スマホから起こされたあと起きている長さ

8. データの保存と控え

何どこ中身
記録(ログ)Somnus のフォルダの state\somnus.logいつ寝かせた・起きた・見回りの結果。30 日より古い行は消える
作業中の印state\locks\Claude の作業の始まりと終わり。自動で消える
郵便受けの住所と合鍵_private\remote.json住所・接続コード・合鍵。人に見せない・送らない・控えを作らない(無くしたら 作り直す)
スマホの合鍵スマホのブラウザの中つないだときに受け取ったもの。メニューの「この端末の接続を外す」で消える
郵便受けの中Cloudflare(D1)時刻だけ(起こしての時刻・見に来た時刻・次の見回り・起きている期限・寝直したか)。文や名前は入れない

控えを取る必要があるのは somnus-settings.json だけです。ほかは作り直せます。

9. 困ったとき

なぞったのに、時間が過ぎても起きない
スマホのページの「最後に見に来た」の時刻を見ます。古いまま「見回りが遅れています」と出るなら、PC がサインインしていない・電源が切れている・ネットが切れている、のどれかです。Windows の更新で再起動した後は、サインインするまで見回りも動きません。
起きたのに、すぐ寝てしまった
PC の state\somnus.log で「スマホから起こされました。HH:MM まで寝かせません」が出ているかを見ます。出ていなければ、見回りが連絡を読めていません(「見回り:郵便受けに届きませんでした」の行に理由があります)。
「コードが違います」と出る
PC の「スマホをつなぐ」に出た 8 桁を入れ直します(区切りの「-」は入れても入れなくても同じです)。
「しばらく(15 分)つなげません」と出る
間違いが続いたので、守りのために止まっています。15 分待ってから入れ直します。
「接続が外れました」と出る
接続コードと合鍵が作り直されました。接続コードを入れ直します。
接続コードを変えたい(人に見られたかもしれない)
Somnus のフォルダで node mailbox\set-secrets.mjs --new を流します。今までつないでいたスマホは、どれも接続コードを入れ直すことになります。PC は次の見回りから新しい合鍵を使います。
夜中にも起こしたい・もっと早く起きてほしい
設定の mailCheckHours(時間帯)と mailCheckMinutes(間隔)を変えて -Install を流し直します。間隔を短くすると、そのぶん PC が起きる回数が増えます。見回りは 1 日 48 回までで、超える組み合わせは -Install が理由を出して断ります(07:00-24:00 のままなら間隔は 22 分以上。もっと短くしたいときは時間帯を縮めます)。
今の状態をまとめて見たい
powershell -ExecutionPolicy Bypass -File ".\somnus-v1.ps1" -Status を流すと、作業中の印・見回りの設定・最後の見回り・スマホからの待機が出ます。