ターミナル UI
対話端末で引数なしの lk を実行すると、フルスクリーンのダッシュボードが開きます。
デスクトップアプリと同じ受信箱・実行・ワークフロー・ポリシーを、ターミナルから離れずに
扱えます。CLI や デスクトップアプリ と対等な、loopkeep を操作する
一級の方法です。daemon はその 3 つすべての裏で動きます。パイプやリダイレクトにつなぐと、
代わりに usage を表示します。スクリプトや lk | … はこれまでどおり動きます。
lk # 対話端末でダッシュボードを開く
ビュー
上部に 5 つのビューが並び、いずれも選択中の project にスコープされます。
| ビュー | 中身 |
|---|---|
| 受信箱 | あなたを待っているアテンションと、過去のものの履歴。 |
| 実行 | すべての run とその状態。開くとイベントのタイムラインを表示。 |
| ワークフロー | この project の workflow。実行・編集・自動トリガーの切り替え。 |
| ポリシー | project と personal の policy。ルールごとに編集。 |
| 設定 | 並列数、worktree の保持日数、全体の一時停止スイッチ。 |
受信箱・ポリシー・設定にはそれぞれ 2 つのサブタブがあります。未対応 / 履歴、 Project / Personal、Global / Project です。
操作
| キー | 動作 |
|---|---|
Tab Shift+Tab | 次 / 前のビュー |
h l | サブタブを切り替え |
j k、↑ ↓ | リスト内を移動 |
Enter | 選択項目を開く / 編集する |
g | スコープ切り替え — この project だけ ⇄ 全 project |
? | キー一覧を表示 |
q | 終了 |
選択項目に対する操作はビューで変わります。a 承認・s steer・d deny はアテンションに対する
操作なので、受信箱 の 未対応 タブと、開いた run の中で効きます(解決済みが並ぶ 履歴
では効きません)。アテンションが生の diff やコマンドを持つときは Enter で全画面表示できます
(j/k スクロール・esc で閉じる)。承認はこれを開くまで効きません — 見ていない変更を
承認できない仕組みです。t take over は 実行 の一覧と、開いた run の中で効きます。ワークフロー
では r すぐ実行、n 新規、space 自動トリガーの有効/無効、e $EDITOR で開く。
ポリシー では n ルールを追加、x 選択ルールを削除。設定 の Project サブタブには
この project の workflow が並び、そこでも space で自動トリガーを切り替えられます。
キーは変更できます。config.yaml の tui.keybindings で設定します
(Daemon と設定 を参照)。マウスも使えます。テキストを選択したいときは
m でマウスキャプチャを切り替えます。
workflow と policy を編集する
workflow を Enter で開くと、2 つのサブタブを持つ 構造化フォーム が出ます。Settings
には frontmatter の実行設定 — model、予算(budget)、並列数、
execution mode — が並びます。選択式のフィールドは
ドロップダウンなので、取りうる値を覚える必要はありません。Slack の safe-output 宣言もここで
編集できます。固定宛先への投稿は必須の channel と任意の workspace、同じスレッドへの返信は別の
有効・無効のセレクターです。それ以外の safe-output キーは保持します。policy のルールを開くと、同じように
フィールドごとの編集フォームが 1 ルールずつ出ます。
Triggers では on: ブロックを編集します。cron・file-watch・git・run-completed・manual に
加えて、github・slack・webhook のイベント、代替の条件セット、イベントごとのフィルタまで扱えます。
全体が 1 本の字下げリストで、Enter でカーソル位置の行を開き、x でその行が指す宣言を消し、
n でトリガーを足します。候補一覧では、打ち込むと絞り込めます。複数の値を取る欄では space で
選択を出し入れし、Enter で保存します。
相手(人・チャンネル・ラベル・リポジトリ)を書く欄では、候補が名前で並び、宣言には ID が入ります。 この名前はこのデバイスが接続しているアカウントから取得します。取得できないときはその欄が自由入力に 戻り、接続していないアプリには「このデバイスにイベントが届かない」旨の 1 行が出ます。いずれの場合も 宣言を書くこと自体は止まりません。
フォームで表せないもの(素の GitHub イベントキー、署名つき webhook)は編集を通してもそのまま
残り、その旨がタブに出ます。例外は on: ブロックの中のコメントで、フォームから保存すると
失われます。保存する前にタブがその旨を知らせます。生のファイルを編集したいときは、e で
workflow の Markdown と frontmatter、または policy の YAML を $EDITOR で開きます。
保存して閉じると、TUI が読み直して検証します。
次のステップ
- workflow を書く、そして トリガー を選ぶ。
- policy を調整する — そして、なぜそれがあなたに届いたのかを確かめる。
- run を take-over する — セッションを自分で運転する。