CLI

lk は loopkeep daemon へのコマンドラインクライアントです。standalone インストーラーか デスクトップアプリ でインストールします。対話端末では、引数なしの lkターミナル UI を開きます。パイプやリダイレクトにつなぐと usage を表示します。 このページはコマンド全体をグループ分けしたものです。

ほとんどのコマンドは workspace に対して働きます。対象は次の順で解決されます: --workspace <id|path> → 環境変数 LOOPKEEP_WORKSPACE → カレントディレクトリ。

例外は inittrustuntrustsecretexport です。これらは カレントディレクトリだけを読み書きするので、--workspaceLOOPKEEP_WORKSPACE では対象が変わりません。

workspace のセットアップ

コマンド何をするか
lk initこの workspace に .loopkeep/ を作る(スターター policy + workflow 1 つ)。冪等。
lk trust現在の policy を承認する — project policy と自動トリガーを有効化する。policy ファイルが変わったら再度必要。
lk untrustこの workspace のトリガーが自動発火しないようにする — デスクトップアプリと同じ kill switch。手動と実行中の run は続く。lk trust で再開。

daemon

コマンド何をするか
lk startloopkeepd を起動する(別名: up)。
lk stop停止する(別名: down)。実行中の run は次の起動時に interrupted として復元。
lk restart停止してから起動する。
lk statusdaemon の状態。

run

コマンド何をするか
lk run <workflow>workflow を手動で実行する。
lk rerun <run>完了した run の workflow を、そのトリガー context を再利用してもう一度実行する。
lk runsrun を一覧表示する。
lk pause <run> / lk resume <run>次のステップ境界で中断 / 再開する。
lk abort <run>run を終了する。worktree は残る。--rollback は先に最後のチェックポイントまでリセット。
lk finish <run>steer 中の attended run をここで終える。成果物があればそれを残し(完了)、無ければ再開可能なまま残す。
lk take-over <run> [--no-mux]run の claude セッションを自分で対話的に操作する。使うターミナルマルチプレクサが設定されていればその pane で開き、--no-mux は今のターミナルのまま開く。
lk hand-back <run> [--summary <text>]take-over を終え、run を running に戻す。

受信箱

コマンド何をするか
lk inbox [<seq>]まだあなたを待っているアテンション。seq を付けると、そのアテンションの実際の変更(生の diff かコマンド)だけを整形せずに出力する。deltaless にそのままパイプして、承認する前に中身を読める。
lk watch [--json] [--no-notify]新しいアテンションが届くたびにストリーム表示。ask-first で鳴る。--json は NDJSON を出力。--workspace で絞らない限り全 workspace が対象。
lk approve <seq> [--steer|--abort|--ack] [--instruction <t>]waiting 中のアテンションを決める。--steer は instruction が必須。--abort は run を止める。--ack は notify を確認済みにする。notify は --ack しか受け付けず、判断が要る項目は --ack を受け付けない。
lk notify <message> [--url <url>]外部の通知を受信箱に投稿する — CI hook やスクリプト向け。Markdown 対応。

トリガー

コマンド何をするか
lk trigger explain [<workflow>]各 workflow のトリガーが何を宣言していて、この環境でどう解決されるか(bind 先のリポジトリ、me の解決先)を表示する。
lk disable <workflow> / lk enable <workflow>この workspace で workflow の自動トリガーを off/on にする。手動と実行中の run には影響しない。
lk pause --all / lk resume --allグローバルな kill switch: 全 workspace で、トリガーによる新しい run の開始を止める(解除も同じ)。実行中の run と手動実行は続く。信頼とは独立。

trigger explain はローカルのファイルを読み、紐付いた identity を daemon に聞くだけです。 「このイベントが当たるか」を Console に問い合わせることはありません。リモートの照合は Console 側で行われるので、これが答えるのは「何を宣言したか」です。

gateway がリモート配送を止めた場所の UTC 日別カウントは Console → 接続 で確認します。 イベントごとの配送停止理由を表示する専用サブコマンドはありません。

triage (.loopkeep/workflows/triage.md)
  coalesce: on — a burst is held and run once, carrying every event it stood for
  local triggers: schedule
  remote triggers:
    github issue_comment
      repos: kumaaa-inc/loopkeep (from this workspace's git origin)
      mentions: me → alice
    github issues
      repos: kumaaa-inc/loopkeep (from this workspace's git origin)
      labels: bug
      actions: opened
    webhook
      hook: deploy
      run `lk hooks` to see which hooks exist

remote triggers are matched in the Console; this explains the declaration and how it resolves on this machine
today's delivery drop counts and reasons are available in the Console under Connections

me → alice は、このアカウントについて Console が返している identity です。解決できない ときは理由まで出ます(デバイスがペアリングされていない / Console からまだ応答がない / daemon が動いていない)。

webhook

コマンド何をするか
lk hooks専用 webhook を名前と作成日で一覧する(別名: lk hooks list)。
lk hooks add <name>新しい hook の URL を発行して表示する。URL が表示されるのはこのときだけ。
lk hooks rotate <name>名前はそのままで URL を作り直す — 宣言している workflow は書き換え不要。
lk hooks rm <name>hook を削除する。以後、その URL への POST は拒否される。

URL 自体が資格情報です。持っている人は誰でもあなたの workflow を起こせます。宣言は on.webhook で書きます — トリガー を参照してください。

policy

コマンド何をするか
lk policy explain <tool> [paths...] [--tags a,b] [--self <level>] [--workflow <name>] [--command <text>]仮のアクションを評価し、一致する各ルールをレイヤー・ファイル・最終レベルとともに表示する。
lk policy test <tool> [paths...] [--expect <level>] […]同じ評価を exit code で表す。--expect を付けると一致で 0、不一致で 1。付けなければ最終レベルの順位(auto-approve 0、notify 1、ask-first 2、deny 3)。エラーは exit ≥ 10。

どちらも daemon を動かさずに使えます — CI で使えます。

secret

コマンド何をするか
lk secret set <name> [--value <v>]secret を OS のキーチェーンに保存する(--value なしなら stdin を読む)。
lk secret listこの workspace に記録された secret の名前を一覧表示する。

GitHub Agentic Workflows

コマンド何をするか
lk export <workflow> [--json]gh-aw へ変換し、green/yellow/red のレポートを出す。workflow は .loopkeep/workflows/ 配下の名前かファイルのパス。--to-gh-aw <workflow> でも同じものを指せる。
lk import <gh-aw-file>gh-aw ファイルを workspace の .loopkeep/workflows/<name>.md に書き出す。元のトリガーはそのまま残し、手動でいつでも開始できるよう manual を足す。name は元ファイル名。--name <name> で変更でき、既存の workflow があるときは --force を付けない限りエラーになる。書き出したパス・警告・結果の on: を表示する。

workspace と設定

コマンド何をするか
lk workspaces登録済みの workspace を一覧表示する。
lk workspaces add <path> [--name <n>] / lk workspaces remove <id>workspace を登録 / 削除する(home は削除できない)。
lk global-max [<n>]全 workspace を通じた実行中 run の上限を取得/設定する。
lk workspace-max [<n>|clear]この workspace 固有の実行中 run の上限を取得/設定する(clear で解除。実効上限は本値と global-max の小さいほう)。
lk retention [<days>|off|never]完了した run の worktree を保持する期間を取得/設定する。offnever はどちらも「ずっと残す」。
lk cleanup完了した run の worktree を今すぐ削除する(チェックポイントブランチは残る)。

Console

コマンド何をするか
lk login [--env <name>]ご利用中のデバイスを Console とペアリングする(ブラウザで承認)。--env は production 以外の環境を別枠でペアリングする。
lk logout [--env <name>]このデバイスを無効化してログアウトする。--env を付けるとその環境のペアリングだけを消し、引数なしの lk logout はこの端末のペアリングをすべて消す。
lk accountログイン状態と Console 接続を表示する。
lk connectorsアカウントに接続済みの GitHub installation と Slack workspace、そして me の解決先を一覧する。接続は Console から。
lk directory <kind> [--repo owner/name] [--installation <id>]トリガーに書ける名前と ID を 名前 (ID) の形で 1 行ずつ一覧する。kind は slack-users / slack-channels / github-users / github-labels / github-repos / github-workflows--repogithub-users / github-labels / github-workflows のリポジトリ、--installationgithub-repos のアカウント(lk connectors が表示する ID)を指定する。受け付けない kind に付けると usage エラー。どちらも省くと、GitHub 系はこの workspace が指すリポジトリ、Slack 系は接続済みの全 workspace が対象になる。

ランタイム

コマンド何をするか
lk update [--check|--rollback|--force]ランタイム(lk + loopkeepd + アダプター)を最新リリースへ更新する。実際に更新するときは、インストール済み版より新しい同梱リリースノートをすべて表示するため、飛ばした版も見える。--check は確認のみ、--rollback は直前のバージョンへ戻す。--force は既に最新(あるいはそれより新しい)でも最新リリースを入れ直す。Homebrew・デスクトップアプリでの導入はそのチャネル側で更新する。
lk --versionlk のバージョンを表示する(daemon が動いていればそのバージョンも)。

環境変数

変数意味
LOOPKEEP_WORKSPACE--workspace を指定しないときの既定の対象 workspace。
LOOPKEEP_SOCKETdaemon の socket パス(既定 /tmp/loopkeepd.sock)。
LOOPKEEP_CONFIGconfig.yaml のパス。既定の場所を上書きする。
LOOPKEEP_DAEMON_BINlk start が使う loopkeepd バイナリを明示指定する。
LOOPKEEP_CLAUDE_BINclaude バイナリを明示指定する。loopkeep が探さない場所に入れている場合に使う。
NO_COLOR値を何か入れると lk --help の太字・下線を出さない。