Take-over & hand-back
承認と steering だけでは足りないことがあります — ハンドルを握りたいときです。 take-over は run を一時停止し、エージェントが運転していたセッションをターミナルまたは マルチプレクサの pane であなたが引き継いで直接操作できるようにします。その間も loopkeep の 安全 floor は有効のままです。hand-back は、あなたの変更を織り込んだうえで、run を エージェントに返して運転を続けさせます。
take-over する
take-over は run を一時停止し、エージェント自身のセッションを続けます — 同じ会話、 同じ記憶です。エージェントは自分が何をしていたかを分かっていて、いまやあなたが話し 変えたこと・変更したことも覚えています。エージェントと話すことも、run の worktree で ファイルを直接編集することも、その両方もできます。loopkeep が マルチプレクサ を動かせるときは、セッションは新しい pane に開きます — attended run と同じ space と tab で、 run の名前が付きます。動かせなければ現在のターミナルに開きます。
あなたが操作している間、loopkeep の policy のゲートは脇に退きます — その区間は あなたのもので、そのように監査されます(開始と終了のマーカー、加えてあなたの変更を チェックポイントとして)。残り続ける唯一のゲートは組み込みの floor です。loopkeep 自身の policy・config・状態ファイルは、誰が操作していても守られたままで、どの policy レイヤーからも 緩められません。他の場面では floor はまず人に確認しますが、あなた自身がキーボードの前にいる take-over では確認する相手がいないので、この区間だけは claude 側の拒否として渡されます。
run の 受信箱 カード(waiting のとき)または 実行 の ⋯ メニューから Take over を
選び、確認します。アプリ自身はターミナルを開きません — 実行するコマンドを提示します。
推奨 は lk take-over <run> で、floor の後ろで claude を起動します。loopkeep が
マルチプレクサ を動かせるときは、そのマルチプレクサの pane にセッションを
開くボタンが出ます。使用するターミナル を設定していれば、代わりに ターミナルで開く が
ターミナルの窓で開きます。どちらも無ければ コピー して自分で実行します。あなたが操作して
いる間、その run は受信箱と詳細で この run はあなたが take over 中です と表示されます。
hand-back する
hand-back はあなたの変更をチェックポイントとして commit し(loopkeep: human take-over
とあなたの要約)、diff の要約を生成し、それを run の context に注入して、run を再開
します。エージェントは、あなたが操作した間に何が変わったかを正確に把握したまま続けます。
受信箱 の運転中カード、run の詳細、または take-over のコマンドダイアログにある Hand back を押します。
git でない workspace
セッションの継続はどこでも動きます。diff の要約と take-over のチェックポイントには git が 必要なので、ただのフォルダでは hand-back はそれらなしで run を再開します。
いつ使うか
steering(lk approve --steer)は、一文の案内で足りるときに手軽です。take-over は、
直すほうが説明するより簡単なときに真価を発揮します — 誤った方向を手で解きほぐし、
そのうえでループを返す、というときです。
attended run を終える
attended run は、エージェントが止まってもそこで 終わりにはなりません — 止まったら、あなたの番です。run は 実行中 のまま、pane も 開いたまま、あなたの入力を待ちます。何か打てばエージェントは続きから、これまでと 同じ監督の下で進みます。この待ちはあなたの番なので、その間のアイドル時間は run の 時間予算(budget)を焼きません — アクションの承認をあなたが返すのを 待つ時間と同じ扱いです。
つまり、エージェントが黙っても run は終わりません。run が終わるのは次の 3 つのときです:
- エージェントに終了を頼む(チャットで)。 claude に「もう終わり、run を終えて」と
頼むと、エージェントは
end_runツールで run を終えます。run は 完了 になり(先に 出した成果物はそのまま残ります)、セッションと pane は閉じます。claude セッションを 閉じるのはこれだけです。エージェントがend_runを呼ぶのは、あなたが終了・完了を 頼んだときだけで、自分の判断や「タスクが終わった」という自己判断では呼びません。 - pane を閉じる。 ターミナルを閉じると run は終わります — エージェントが成果物を
出していれば 完了、まだなら 中断・再開可能です(
lk resume <run>で同じ セッションの続きを走らせます)。 - 外から終了する。
lk finish <run>、またはアプリの run の 終了 は、loopkeep に 見守りをやめて run を完了として扱うよう伝えます — 成果物があれば 完了、無ければ 中断・再開可能 — その一方で、claude セッションとターミナルは、あなたが読んで閉じられる ように残します(閉じません)。これは kill ではなく切り離し(detach)です。lk abort <run>が pane を閉じて run を止めるのと違い、終了はターミナルに手を触れません。
アイドルタイムアウト
既定では、attended run はいつまでもあなたを待ちます。config.yaml
の attended.idle_timeout はその待ちに上限をかけます。エージェントの step もあなたの入力も
無いまま attended run がその時間放置されると、run は終了し — 中断・再開可能で — 受信箱に
一報が入ります。あなたかエージェントのどちらかの動きがあれば、タイマーはリセットされます。
設定しない限りオフで、project ごとに独自の値を設定できます。表記とそれぞれのレイヤーの
置き場所は daemon リファレンス を参照してください。