Linkly AI CLI の紹介
Linkly AI CLI は、Linkly AI Desktop の MCP サービスに接続して、ターミナルからローカルドキュメントを検索、閲覧、読み取りできるコマンドラインツールです。同時に、AI Agent(Claude Desktop、Cursor など)と Linkly AI の間のブリッジとしても機能します。ターミナル検索
コマンドラインから直接ドキュメントを検索。開発者やギークユーザーに最適です
MCP ブリッジ
stdio MCP モードで実行し、Claude Desktop、Cursor などの AI ツールから Linkly AI を呼び出せます
インストール
- macOS / Linux
- Windows
- Cargo
ターミナルで以下を実行:または Homebrew でインストール:
デフォルトでは、CLI は
~/.linkly/port ファイルを通じてローカルの Linkly AI Desktop アプリを自動的に検出して接続します。LAN やクラウドトンネル経由でリモートのデバイスに接続することもできます — 下記の接続モードを参照してください。使い方
CLI は search → grep または outline → read の段階的なワークフローに従います:まず検索で対象ドキュメントを見つけ、次に grep でパターンを特定するか、アウトラインで構造を把握し、最後に具体的な内容を読み取ります。ユーザーが指すコンテナ(「Notion ノートの中で」「Dropbox の論文フォルダで」)の実際のパスがわからない場合は、search の前に find-paths を呼び出してパスを特定できます。
成功したコマンド出力の末尾には、
[meta] now=2026-05-08T...Z という UTC タイムスタンプ行が付きます(JSON モードではトップレベルの _meta.now フィールド)。これは Desktop が AI アシスタントに「先月」などの相対日付を計算するために提供するメタ情報です。人間ユーザーは無視して構いません。スクリプト処理時は、最終行をフィルタしてから後続の解析を行うことを推奨します。接続ステータスの確認
ドキュメント検索
--scope notes は結果をノートに限定し、--library と --path-glob を無視します — これらのフィルターはエラーにならず、静かに破棄されます。ドキュメントアウトラインの表示
DOC_ID は検索結果から取得します。複数のドキュメントを一度に表示したり、- を指定して ID をパイプで渡したりできます:
--expand で展開するノード ID をカンマ区切りで指定すると、それ以外のノードは折りたたまれます。指定しない場合は、どのノードを展開するかが自動的に決まります:
ドキュメント内のパターン検索
ドキュメント内容の読み取り
--offset を調整して段階的に読み取ります:
パス特定(find-paths)
search の補助ツールとして位置づけられており、ユーザーがコンテナを名前で示しているのに(「Notion ノートの中で」「Dropbox の論文フォルダで」)その実際のパスがわからないとき、まず find-paths で実際のパスを探し、返されたパスの特徴的なセグメントを search の --path-glob パラメータに渡します。フォルダ名に glob メタ文字(* ? [)が含まれる場合は、返された path_glob フィールドをそのまま使えます——すでにエスケープ済みで、そのフォルダに字面一致します。
典型的な 2 ステップワークフロー:
--patterns はカンマ区切りの複数キーワードを受け付け、内部で OR 関係でサブストリングマッチングを行います。1 回の呼び出しで複数のバリエーションを渡す(翻訳ペア、大文字小文字、既知のアプリ識別子など)ことを推奨します:
ライブラリと概要(list-libraries、explore)
--library パラメータで使えます。
--library にはライブラリ名または local://<id> を指定できます。--remote を使う場合は cloud://<owner>/<slug> も指定できます。
ノート
Linkly AI は短い Markdown のノートをライブラリフォルダ内に保存します。これらはアップロードされることのない通常のローカルファイルで、他のドキュメントと同じようにインデックスされます。note_id と現在の version が必要です。どちらも linkly list --scope notes が返します:
接続の診断(doctor)
--remote、--lan、または --endpoint / --token を付けると、その接続だけをチェックし、終了コードもその結果だけで決まります:
Skills の管理(skills)
install は Skills を ~/.agents/skills/linkly-ai にインストールし、~/.claude/skills/linkly-ai にそこへのリンクを作成します。詳しくは Skills を使うをご覧ください。
Skills に新しいバージョンがあると、コマンド出力の末尾に 1 行の通知が付きます(最大 4 時間に 1 回)。環境変数 LINKLY_NO_SKILLS_HINT=1 を設定すると、この通知を止められます。MCP クライアントの設定でこの変数を設定すれば、linkly mcp ブリッジでも通知が出なくなります。
シェル補完
bash、zsh、fish、powershell、elvish 用の補完スクリプトを出力します。
- zsh
- bash
- fish
- PowerShell
MCP モード
ブリッジは LAN 上の他のデバイスにあるデスクトップアプリには接続できません。LAN 上の AI クライアントは HTTP でデスクトップアプリに直接接続してください(LAN アクセスを参照)。stdio のみに対応したクライアントは、代わりに
linkly mcp --remote を使用できます。--client <名前> は、デスクトップアプリのアクセスログに表示されるアプリ名を指定します(以下の例を参照)。--remote を使う場合、この名前はクラウドゲートウェイにも送信されます。
Claude Desktop などのローカル AI アプリの設定:
以下の内容を Claude Desktop などのアプリの設定ファイルに追加してください:
- macOS
- Windows
~/Library/Application Support/Claude/claude_desktop_config.json を編集:- Name:
linkly-ai - Command:
linkly mcp --client cursor
CLI のアップデート
接続モード
CLI は Linkly AI ナレッジベースに接続する方法を 3 つサポートしています:--lan または --remote を指定しない場合、CLI はこのマシンのデスクトップアプリにのみ接続します。
ローカルモード(デフォルト)
追加のパラメータは不要です。CLI は~/.linkly/port を読み取り、実行中のデスクトップアプリを検出します:
LAN モード
ローカルネットワーク内の他のデバイスで実行されている Linkly AI インスタンスに接続します。アドレスとトークンはそのデバイスで取得します:そのデバイスのデスクトップアプリで「エージェントの利用」ページを開き、「管理」セクションで「LAN アクセスを許可」をオンにしてから、「連携」セクションの「MCP 接続設定を表示」をクリックし、「LAN」セクションからコピーします(詳しくは LAN アクセスを参照)。 そのうえで、このマシンでご自身のターミナルから一度保存します:--lan を使用します:
auth set-key --lan をもう一度実行してください。不要になったら、linkly auth logout --lan で保存済みの LAN 設定を削除できます。
LAN 接続の保存と
--lan パラメータには CLI 1.0.0 以降が必要です。CLI が保存できる LAN 接続は 1 つだけで、auth set-key --lan をもう一度実行すると、以前に保存したアドレスとトークンは上書きされます。別のデバイスに一時的に接続するには --endpoint と --token を使ってください。リモートモード
クラウドトンネル経由で、どこからでもナレッジベースに接続できます。まず一度だけログインします:XXXX-XXXX)を表示し、可能であればブラウザを自動で開きます。リンクはどのデバイスで開いてもかまいません(CLI がサーバー上で動いている場合はスマートフォンでも OK)。サインインし、確認コードがターミナルの表示と一致することを確かめてから 承認 をクリックすると、CLI が新しく発行された API Key を保存します。リンクの有効期限は 10 分です。認可ページには、認可するアカウント、確認コード、アクセスを求めているデバイス(そのデバイスの自己申告)、付与される権限が表示されます。CLI にブラウザを開かせたくない場合は --no-browser を付けてください。リンクを表示するだけになります。
続いて、任意のコマンドで --remote を使用します:
--wait は既定で 300 秒待つと打ち切り(--timeout で変更可能)、コード timeout を返します。リンクが有効なうちはもう一度実行してください。--json モードでは、失敗時に code が付きます:timeout、expired、denied、no_pending_login、login_in_progress(--wait を使うか、--restart でやり直す)、already_logged_in(先に linkly auth logout を実行)、network。どのメッセージにも、次に実行すべきコマンドが示されます。
ログインのたびに cli-<hostname>-xxxx という名前の API Key が新しく作成され、ダッシュボード で確認・失効できます。1 つのアカウントが持てる API Key は最大 10 個で、上限に達している場合は認可ページにその旨が表示されます。ログインの成功が示すのはアカウントの本人確認だけで、クラウドナレッジベースやデスクトップアプリに到達できることまでは意味しません。
キーを貼り付けたい場合は、ダッシュボード で作成し、ご自身のターミナルで保存することもできます:
logout は、auth login で発行されたキーを失効させます(約 90 秒以内に使えなくなります)。set-key で保存したキーは、ほかの場所で使われている可能性があるため、このマシンから削除されるだけです。必要に応じてダッシュボードで失効させてください。
認証情報(および認可待ちのログイン)は、既定では ~/.linkly に保存されます。LINKLY_CONFIG_DIR を設定すると別の場所に置けます。たとえば、1 つのエージェントが同じシステムアカウントで複数の人にサービスを提供する場合は、ユーザーごとにディレクトリを分けます。1 つのディレクトリに保存できるアカウントは 1 つだけです。ローカルのデスクトップアプリの検出(~/.linkly/port)には影響しません。
パラメータ説明
グローバルオプション
Exit Codes
デフォルトでは、CLI は慣例的な 2 つの値を使用します:成功時は 0、失敗時は 1。ここでの「成功」には「1 件も見つからなかった」場合も含まれる点に注意してください。ヒットのない検索でも終了コードは 0 です。引数の誤り(必須引数の不足、不正な値など)は、--exit-code の有無にかかわらず 2 で終了します。
--exit-code を指定すると、この 2 つを区別できます:
このフラグがオプトインなのは、
1 の意味が変わるためです。指定しない場合、1 は「失敗」を意味し、既存のスクリプトはこれを前提に判定しています。
