UStackUStack
latchkey icon

latchkey

Latchkeyは、既知の公開API向けに保存した認証情報をcurlコマンドへ自動注入するCLIツール。AIエージェントのAPI呼び出しを標準構文で支援します。

latchkey

Latchkeyとは?

Latchkeyは、HTTP API向けにcurlコマンドへ認証情報を注入するCLIツールです。リクエストごとに手動で認証ヘッダーやパラメータを追加する代わりに、サポートサービス向けの認証情報を保存し、Latchkeyが適切なcurl引数を自動追加します。

主に、標準curl構文でAPI呼び出しを行うAIエージェント向けに設計されています。エージェントは保存済みのユーザー認証情報を使用するか、インタラクティブなブラウザログインをトリガーしてユーザーの認証情報を収集できます。

主な機能

  • curlリクエストへの認証情報注入: latchkey curl <arguments>で、リクエスト引数をcurlに渡しつつ保存済み認証情報を自動挿入(例: Authorizationヘッダーを自分で追加する必要なし)。
  • services listによる既知の公開APIのビルトインサポート: 最初からサポートするサードパーティサービスを一覧表示(例: Slack、Google Workspace、Linear、GitHub)。
  • auth setによる手動認証情報保存: 名前付きサービス向けに任意のcurl引数として認証情報を保存(例: Authorization: Bearer ...ヘッダーを1回追加して再利用)。
  • auth browserによるブラウザベースの認証情報取得: ログイン用ポップアップウィンドウを開き、ブラウザセッションからAPI認証情報を抽出・保存し、再利用可能(すべてのサービスでサポートされるわけではありません)。
  • 中間サービス不要のエージェント向けワークフロー: OAuth風中間層やMCP風統合層ではなく直接認証注入として位置づけ。ブラウザ認証時はユーザーの代わりに直接リクエストを実行。

Latchkeyの使い方

  1. Latchkeyのインストール: npm install -g latchkey(リポジトリのインストール手順に従う)。
  2. サービスの認証情報設定:
    • ブラウザフロー(グラフィカル環境が必要): latchkey auth browser slack
    • 手動フロー: latchkey auth set slack -H "Authorization: Bearer xoxb-your-token"
  3. 標準curl構文でAPI呼び出し:
    • 例: latchkey curl -X POST 'https://slack.com/api/conversations.create' -H 'Content-Type: application/json' -d '{"name":"something-urgent"}'

ユースケース

  • ユーザー所有認証情報を使ったAIエージェントのAPI呼び出し: サポートサービス向けにlatchkey curl ...を実行し、認証詳細をLatchkeyが処理(エージェントのプロンプトやコードに埋め込み不要)。
  • ユーザー向けインタラクティブ認証情報取得: latchkey auth browser <service>でブラウザログインをトリガーし、ユーザーセッションから認証情報を収集・保存。
  • 繰り返しローカルAPIテスト: auth setで1回設定し、複数curlリクエストで再利用(認証ヘッダーの繰り返しコピー不要)。
  • ランタイムでの新規サービスサポート拡張(簡単な場合): 概要記載の「services register」アプローチでビルトインサポートがない場合に基本サポートを追加。
  • エージェントスキルワークフローへの統合: リポジトリでエージェントフレームワークの「skill」としてLatchkeyを使用(例: skillsツールやClawHubからのインストール)。

FAQ

  • LatchkeyはHTTPリクエストの書き方を変えますか? いいえ。通常のcurlコマンドを書きます。latchkey curl <arguments>実行時に保存認証情報を自動注入します。

  • 認証情報はどう保存・再利用されますか? latchkey auth set(手動)またはlatchkey auth browser(ブラウザ取得)でサービスごとに保存。以降のlatchkey curlで再利用。

  • ブラウザ認証は常に利用可能ですか? いいえ。ドキュメントによると、一部のサービスのみauth browserをサポート。

  • エージェントに認証情報アクセスを与えるリスクは? プロジェクトは警告: AIエージェントへのアクセスは危険。特にauth browser使用時、ユーザーが可能なほとんどのアクションを実行可能。

  • インストールとブラウザ認証の前提条件は? リポジトリによると、curl、Node.js、npmの最近のバージョンが必要。auth browserにはグラフィカル環境必須。ensure-browserコマンドでChrome/Chromium/Edgeを探すか、Playwright経由でChromiumをダウンロード。

代替案

  • OAuthやリクエストごとのトークンによる直接API認証: OAuthフローを手動で実装したり、各リクエストにトークンを注入したりできます。Latchkeyとは異なり、認証実装や繰り返しの認証情報処理が必要で、curlへの一元的な認証情報注入ではありません。
  • MCPスタイルの統合レイヤー / エージェントツールサーバー: エージェントと対象サービスの中間に中継を導入します。Latchkeyプロジェクトは、典型的なワークフローで中継を導入しないことを位置づけています。
  • スクリプトが直接利用する汎用認証情報マネージャーやシークレットストア: シークレットマネージャーにトークンを保存し、スクリプトで取得できます。通常、認証ヘッダーの注入ロジックはlatchkey curlコマンドではなくご自身の責任となります。
  • その他のCLIベースのAPIラッパーツール: 特定のサービス向けに特化したコマンドを提供するものもありますが、同じパススルーcurlワークフローや広範なcurlスタイルのリクエストパターンをサポートしない場合があります。
latchkey | UStack