このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
difyctl は、複数の Dify ホストとアカウントへのサインインを同時に保持できます。各ホストとアカウントの組み合わせが 1 つのコンテキストです。そのメタデータは 設定ディレクトリ 内の hosts.yml に保存され、bearer token は OS の認証情報ストアに保存されます(保護されたファイルへのフォールバックあり)。
各タスクは 1 つのコマンドに対応します。
サインインの手順については、認証 を参照してください。
サインイン
difyctl auth login [flags]
auth login は OAuth 2.0 デバイスフローを実行します。ワンタイムコードと検証 URL を表示してブラウザでその URL を開き、ブラウザでサインインが承認されるのを待ちます。CLI がパスワードに触れることは一切ありません。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|
--host <url> | string | none | サインイン先の Dify ホスト:- Dify Cloud の場合は
https://cloud.dify.ai を使用します。 - セルフホストの Dify では コンソール API URL を指定します。
スキームのない URL には https:// が付与されます。
ターミナルでは省略でき、その場合はホストの入力を求められます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。 |
--no-browser | boolean | false | ブラウザを自動で開かず、検証 URL のみを表示します。 |
--insecure | boolean | false | http:// ホストを許可します(ローカル開発のみ)。 |
Dify ホストにサインインします。
difyctl auth login --host https://cloud.dify.ai
SSH セッションからサインインし、検証 URL を別のデバイスで開きます。
difyctl auth login --no-browser
コードのプロンプトは stderr に出力され、その後スピナーがブラウザ側の承認を待ちます。
! Copy this one-time code: WDJP-XKLM
Open: https://cloud.dify.ai/device
成功すると、確認メッセージが stdout に出力されます。
✓ Logged in to cloud.dify.ai 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 で終了します。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|
--json | boolean | false | プレーンテキストの行ではなく JSON を出力します。 |
スクリプト用:
difyctl auth whoami --json
<your-email> (<your-name>)
--json の出力は、id、email、name を含む 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> | string | none | 出力形式:json、yaml、または name。フラグを省略するとデフォルトのテーブルになります。 |
| 形式 | stdout に出力される内容 |
|---|
| デフォルト | コンテキストのテーブル:ホスト、アカウント、アクティブ印。 |
-o json、-o yaml | contexts 配列。各エントリに host、account、name、active を含む。 |
-o name | アカウントのメールアドレスを 1 行に 1 件ずつ。 |
デフォルトのテーブル:
HOST ACCOUNT ACTIVE
cloud.dify.ai you@company.com (Your Name) *
dify.internal.acme.com you@acme.com (Your Name)
-o json:
{
"contexts": [
{
"host": "cloud.dify.ai",
"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 の値など |
サインアウト
auth logout は、アクティブなコンテキストのセッションをサーバー上で取り消し、その token と hosts.yml のエントリをマシンから削除します。他の保存済みコンテキストには影響しません。
ローカルのクリーンアップは常に実行されます。サーバー側の取り消しが失敗した場合、difyctl は stderr に警告を表示し、認証情報はそのまま削除します。
サインアウト時に読み取れない OS のキーチェーン(ロック中、またはデスクトップセッションがない)に token がある場合も同様です。取り消しはスキップされ、ローカルのクリーンアップは実行されます。
フラグ
なし。
✓ Logged out of cloud.dify.ai
終了コード
| 終了コード | 意味 |
|---|
0 | サインアウト完了 |
4 | サインインしていない(not_logged_in) |
アクティブなホストを切り替える
use host は、後続のコマンドの実行先となる保存済みホストを切り替えます。これはローカルな操作で、既存のサインインの中でアクティブなコンテキストを切り替えるだけです。新しいホストを追加するには、代わりに auth login --host を実行します。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|
--domain <host> | string | none | 切り替え先の保存済みホスト。スキームを付けず、素のドメイン(cloud.dify.ai)で指定します。
ターミナルでは省略して、保存済みのホストから選択できます。非対話セッション(スクリプト、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> | string | none | 切り替え先のアカウント。
ターミナルでは省略して、保存済みのアカウントから選択できます。非対話セッション(スクリプト、CI、パイプ)ではこのフラグは必須です。 |
アクティブなホスト上で別のアカウントに切り替えます。
difyctl use account --email teammate-bot@company.com
成功すると、新しいアクティブアカウントが確認されます。
✓ Active account on cloud.dify.ai is now teammate-bot@company.com
アクティブなホストに保存されていないメールアドレスを指定すると、既知のアカウントを列挙した使用方法のエラーになります。保存された token がなくなったアカウント(取り消し済み、または セッションの取り消し で削除)を指定すると、サインインしていないエラーになり、再サインインを促すヒントが表示されます。
終了コード
| 終了コード | 意味 |
|---|
0 | 切り替え完了 |
2 | 使用方法のエラー:不明なアカウント、またはターミナル外での --email の欠落 |
4 | このホストに保存済みのサインインがない、または選択したアカウントの認証情報がない |
アクティブなセッションを一覧表示
difyctl auth devices list [flags]
デバイスフローのサインインはいずれも、デフォルトで difyctl on <hostname> というラベルのサーバー側セッションを登録します。auth devices list はアカウントで有効なセッションを一覧表示するので、心当たりのないものを見つけて 取り消す ことができます。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|
--json | boolean | false | テーブルではなく JSON を出力します。 |
--page <n> | integer | 1 | ページ番号。 |
--limit <n> | integer | 20 | ページサイズ、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 配列に加え、ページング用フィールドの page、limit、total、has_more を含みます。各エントリには id、prefix、client_id、device_label、created_at、last_used_at、expires_at が含まれます。
終了コード
| 終了コード | 意味 |
|---|
0 | 成功 |
1 | ネットワークまたはサーバーエラー |
2 | 使用方法のエラー。--limit 0 など |
4 | 認証の失敗 |
7 | レート制限(HTTP 429) |
セッションを取り消す
difyctl auth devices revoke [<target>] [flags]
auth devices revoke はセッションをサーバー側で終了します。ターゲットは、まずラベルの完全一致、次にセッション ID の完全一致、最後に大文字小文字を区別しないラベルの部分一致で照合されます。複数のセッションに一致するターゲットを指定すると、候補が列挙されて失敗するため、正確な ID を渡して曖昧さを解消します。
ターミナルでは、difyctl がまず確認を求めます。-y/--yes を渡すとプロンプトをスキップできます。ターミナル外(スクリプトやパイプ)では、確認なしで取り消します。
現在のサインインが使用しているセッションを取り消すと、difyctl はそのコンテキストのローカル認証情報も削除します。このマシンではサインアウトされます。
フラグ
| フラグ | 型 | デフォルト | 説明 |
|---|
--all | boolean | false | 現在のセッションを除くすべてのセッションを取り消します。 |
-y, --yes | boolean | false | 確認プロンプトをスキップします。 |
ラベルを指定して 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) |
すべての終了コードについては、出力形式と終了コード を参照してください。Last modified on July 2, 2026