メインコンテンツへスキップ
このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
difyctl は、複数の Dify ホストとアカウントへのサインインを同時に保持できます。各ホストとアカウントの組み合わせが 1 つのコンテキストです。そのメタデータは 設定ディレクトリ 内の hosts.yml に保存され、bearer token は OS の認証情報ストアに保存されます(封印ファイルへのフォールバックあり)。 各タスクは 1 つのコマンドに対応します。 サインインの手順については、認証 を参照してください。

サインイン

difyctl auth login [flags]
auth login は OAuth 2.0 デバイスフローを実行します。ワンタイムコードと検証 URL を表示してブラウザでその URL を開き、ブラウザでサインインが承認されるのを待ちます。CLI がパスワードに触れることは一切ありません。

フラグ

フラグデフォルト説明
--host <url>stringnoneサインイン先の Dify ホスト。difyctl はコンソール API に対して動作するため、セルフホストの Dify では コンソール API URL を指定します。スキームのない URL には https:// が付与されます。ターミナルでは省略でき、その場合はホストの入力を求められます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。
--no-browserbooleanfalseブラウザを自動で開かず、検証 URL のみを表示します。
--insecurebooleanfalsehttp:// ホストを許可します(ローカル開発のみ)。

Dify ホストにサインインします。
difyctl auth login --host https://dify.example.com
SSH セッションからサインインし、検証 URL を別のデバイスで開きます。
difyctl auth login --no-browser

出力

コードのプロンプトは stderr に出力され、その後スピナーがブラウザ側の承認を待ちます。
! Copy this one-time code: WDJP-XKLM
  Open: https://dify.example.com/device
成功すると、確認メッセージが stdout に出力されます。
✓ Logged in to dify.example.com as <your-email> (<your-name>)
  Workspace: <your-workspace>
Workspace: の行はデフォルトのワークスペースです。 サインインのたびに、difyctl on <hostname> というラベルのサーバー側セッションも登録されます。auth devices list を実行すると、すべてのセッションを確認できます。すでにサインイン済みのホストにサインインすると、そのコンテキストに保存された token が更新されます。

終了コード

終了コード意味
0サインイン完了
1ネットワークまたはサーバーエラー
2使用方法のエラー。ターミナル外での --host の欠落や、--insecure のない非 https ホストなど
4サインインが拒否された(access_denied)か、承認前にコードが期限切れになった(expired_token
6サーバーにデバイスフローのサインインエンドポイントがない(unsupported_endpoint
7レート制限(HTTP 429)
すべての終了コードについては、出力形式と終了コード を参照してください。

現在の認証情報を確認

difyctl auth whoami [flags]
auth whoami は、アクティブなコンテキストが誰のものかを表示します。保存されたコンテキストを読み取るだけでサーバーには接続しないため、「どの認証情報がアクティブか」には答えますが、「token がまだ有効か」には答えません。セッションがサーバー側で期限切れになっていても、0 で終了します。

フラグ

フラグデフォルト説明
--jsonbooleanfalseプレーンテキストの行ではなく JSON を出力します。

difyctl auth whoami
スクリプト用:
difyctl auth whoami --json

出力

<your-email> (<your-name>)
--json の出力は、idemailname を含む 1 行です。
{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","email":"<your-email>","name":"<your-name>"}

終了コード

終了コード意味
0アクティブなコンテキストが存在する
4サインインしていない(not_logged_in

保存済みのコンテキストを一覧表示

difyctl auth list [flags]
auth list は、保存済みのすべてのホストとアカウントの組み合わせを表示し、アクティブなものに印を付けます。auth whoami と同様に、完全にローカルで動作し、サーバーには接続しません。

フラグ

フラグデフォルト説明
-o <format>stringnone出力形式:jsonyaml、または name。フラグを省略するとデフォルトのテーブルになります。

difyctl auth list

出力

形式stdout に出力される内容
デフォルトコンテキストのテーブル:ホスト、アカウント、アクティブ印。
-o json-o yamlcontexts 配列。各エントリに hostaccountnameactive を含む。
-o nameアカウントのメールアドレスを 1 行に 1 件ずつ。
デフォルトのテーブル:
HOST                    ACCOUNT                      ACTIVE
dify.example.com        you@company.com (Your Name)  *
dify.internal.acme.com  you@acme.com (Your Name)
-o json
{
  "contexts": [
    {
      "host": "dify.example.com",
      "account": "you@company.com",
      "name": "Your Name",
      "active": true
    },
    {
      "host": "dify.internal.acme.com",
      "account": "you@acme.com",
      "name": "Your Name",
      "active": false
    }
  ]
}

終了コード

終了コード意味
0成功。保存済みのコンテキストがない場合も含む
2使用方法のエラー。サポートされていない -o の値など

サインアウト

difyctl auth logout
auth logout は、アクティブなコンテキストのセッションをサーバー上で取り消し、その token と hosts.yml のエントリをマシンから削除します。他の保存済みコンテキストには影響しません。 ローカルのクリーンアップは常に実行されます。サーバー側の取り消しが失敗した場合、difyctl は stderr に警告を表示し、認証情報はそのまま削除します。サインアウト時に読み取れない OS のキーチェーン(ロック中、またはデスクトップセッションがない)に token がある場合も同様です。取り消しはスキップされ、ローカルのクリーンアップは実行されます。

フラグ

なし。

difyctl auth logout

出力

✓ Logged out of dify.example.com

終了コード

終了コード意味
0サインアウト完了
4サインインしていない(not_logged_in

アクティブなホストを切り替える

difyctl use host [flags]
use host は、後続のコマンドの実行先となる保存済みホストを切り替えます。これはローカルな操作で、既存のサインインの中でアクティブなコンテキストを切り替えるだけです。新しいホストを追加するには、代わりに auth login --host を実行します。

フラグ

フラグデフォルト説明
--domain <host>stringnone切り替え先の保存済みホスト。スキームを付けず、素のドメイン(dify.example.com)で指定します。ターミナルでは省略して、保存済みのホストから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。

ドメインを指定して保存済みのホストに切り替えます。
difyctl use host --domain dify.internal.acme.com

出力

成功すると、新しいアクティブホストが確認されます。
✓ Active host is now dify.internal.acme.com
サインインしたことのないドメインを指定すると、既知のホストを列挙した使用方法のエラーになります。

終了コード

終了コード意味
0切り替え完了
2使用方法のエラー:不明なホスト、またはターミナル外での --domain の欠落
4保存済みのサインインがない(not_logged_in

アクティブなアカウントを切り替える

difyctl use account [flags]
use account は、現在のホストでアクティブな保存済みアカウントを切り替えます。use host と同様にローカルな操作で、既存のサインインを切り替えるだけです。

フラグ

フラグデフォルト説明
--email <email>stringnone切り替え先のアカウント。ターミナルでは省略して、保存済みのアカウントから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。

アクティブなホスト上で別のアカウントに切り替えます。
difyctl use account --email teammate-bot@company.com

出力

成功すると、新しいアクティブアカウントが確認されます。
✓ Active account on dify.example.com is now teammate-bot@company.com
アクティブなホストに保存されていないメールアドレスを指定すると、既知のアカウントを列挙した使用方法のエラーになります。保存された token がなくなったアカウント(取り消し済み、または セッションの取り消し で削除)を指定すると、サインインしていないエラーになり、再サインインを促すヒントが表示されます。

終了コード

終了コード意味
0切り替え完了
2使用方法のエラー:不明なアカウント、またはターミナル外での --email の欠落
4このホストに保存済みのサインインがない、または選択したアカウントの認証情報がない

アクティブなセッションを一覧表示

difyctl auth devices list [flags]
デバイスフローのサインインはいずれも、デフォルトで difyctl on <hostname> というラベルのサーバー側セッションを登録します。auth devices list はアカウントで有効なセッションを一覧表示するので、心当たりのないものを見つけて 取り消す ことができます。

フラグ

フラグデフォルト説明
--jsonbooleanfalseテーブルではなく JSON を出力します。
--page <n>integer1ページ番号。
--limit <n>integer20ページサイズ、1 から 200。フラグが優先され、次に DIFY_LIMIT が使われます。

アカウントで有効なセッションを一覧表示します。
difyctl auth devices list

出力

DEVICE                        CREATED               LAST USED             CURRENT
difyctl on Yours-MacBook-Pro  2026-06-02T09:14:31Z  2026-06-11T08:02:17Z  *
difyctl on build-runner-3     2026-05-28T11:40:09Z  2026-06-10T22:51:44Z
テーブルでは、現在のサインインが使用しているセッションに * が付きます。サインイン以降に使用していないセッションは、LAST USED が空になります。 --json は単行の JSON を出力します。セッションごとに 1 エントリの data 配列に加え、ページング用フィールドの pagelimittotalhas_more を含みます。各エントリには idprefixclient_iddevice_labelcreated_atlast_used_atexpires_at が含まれます。

終了コード

終了コード意味
0成功
1ネットワークまたはサーバーエラー
2使用方法のエラー。--limit 0 など
4認証の失敗
7レート制限(HTTP 429)

セッションを取り消す

difyctl auth devices revoke [<target>] [flags]
auth devices revoke はセッションをサーバー側で終了します。ターゲットは、まずラベルの完全一致、次にセッション ID の完全一致、最後に大文字小文字を区別しないラベルの部分一致で照合されます。複数のセッションに一致するターゲットを指定すると、候補が列挙されて失敗するため、正確な ID を渡して曖昧さを解消します。ターミナルでは、difyctl がまず確認を求めます(Revoke <N> session(s)? [y/N])。-y/--yes を渡すとプロンプトをスキップできます。ターミナル外(スクリプトやパイプ)では、確認なしで取り消します。 現在のサインインが使用しているセッションを取り消すと、difyctl はそのコンテキストのローカル認証情報も削除します。このマシンではサインアウトされます。

引数

  • <target>auth devices list で得られるデバイスラベルまたはセッション ID。--all を渡す場合を除き必須です。

フラグ

フラグデフォルト説明
--allbooleanfalse現在のセッションを除くすべてのセッションを取り消します。
-y, --yesbooleanfalse確認プロンプトをスキップします。

ラベルを指定して 1 つのセッションを取り消します。
difyctl auth devices revoke "difyctl on build-runner-3"
このマシンのセッションを残し、他のすべての場所からサインアウトします。
difyctl auth devices revoke --all

出力

成功すると、difyctl✓ Revoked <N> session(s) を出力します。指定したターゲットが何にも一致しない場合は、no session matches "<target>" で失敗します。他にセッションがない状態で --all を指定すると、no sessions to revoke を出力して 0 で終了します。

終了コード

終了コード意味
0取り消し完了、または --all で取り消すものがない
1ネットワークまたはサーバーエラー
2使用方法のエラー:ターゲットも --all もない、ターゲットが曖昧、一致するセッションがない、または確認プロンプトを拒否した
4認証の失敗
7レート制限(HTTP 429)
すべての終了コードについては、出力形式と終了コード を参照してください。
最終更新日 2026年6月25日