> ## Documentation Index
> Fetch the complete documentation index at: https://dify-6c0370d8-release-1-16-0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# バージョン

> difyctl のビルドと Dify サーバーとの互換性を確認する

> このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、[英語版](/en/cli/reference/version) を参照してください。

[`difyctl version`](#クライアントとサーバーのバージョンを確認) を実行すると、現在の `difyctl` のビルドと、それが Dify サーバーで動作するかどうかを確認できます。このコマンドはクライアントのビルドを表示し、アクティブなホストを探査して、[互換性の判定](#互換性の判定) を報告します。

スクリプトでは、[`--check-compat`](#スクリプトを互換性でゲートする) がその判定を終了コードに変換します。

## クライアントとサーバーのバージョンを確認

```text theme={null}
difyctl version [flags]
```

### フラグ

| フラグ              | 型       | デフォルト | 説明                                    |
| :--------------- | :------ | :---- | :------------------------------------ |
| `--short`        | boolean | false | クライアントの semver のみを表示し（サーバー探査なし）、終了する。 |
| `--client`       | boolean | false | サーバー探査をスキップし、判定を `unknown` として報告する。   |
| `--check-compat` | boolean | false | 判定が `compatible` でない限り `64` で終了する。    |
| `-o <format>`    | string  | text  | 出力形式：`text`、`json`、`yaml`。            |

### 例

完全なレポートを表示します。

```bash theme={null}
difyctl version
```

スクリプトやバグレポート向けに、クライアントのバージョンのみを表示します。

```bash theme={null}
difyctl version --short
```

### 出力

| 形式                  | stdout に出力される内容                                                                                                                                                                                                                            |
| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| デフォルト（`text`）       | 完全なレポート：`Client` ブロック、`Server` ブロック、1 行の `Compatibility` 判定。`stable` 以外のチャンネルのビルドでは、stable チャンネルを推奨する警告が追加される。                                                                                                                             |
| `-o json`、`-o yaml` | 同じレポートを 3 つのオブジェクトとして出力：<ul><li>`client`（`version`、`commit`、`buildDate`、`channel`、`platform`、`arch`）</li><li>`server`（`endpoint`、`reachable`、成功時は `version` と `edition`）</li><li>`compat`（`minDify`、`maxDify`、`status`、`detail`）</li></ul> |

デフォルトの `text` レポート：

```text theme={null}
Client:
  Version:   0.2.0-alpha (channel: alpha)
  Commit:    9f3c2ab (built 2026-06-05)
  Platform:  darwin/arm64
  Compat:    dify >=1.16.0, <=1.16.0

Server:
  Endpoint:  https://cloud.dify.ai
  Version:   1.16.0 (cloud)

Compatibility: ok — server 1.16.0 in [1.16.0, 1.16.0]
```

`--short` はクライアントの semver のみを表示します。

```text theme={null}
0.2.0-alpha
```

`-o json`：

```json theme={null}
{
  "client": {
    "version": "0.2.0-alpha",
    "commit": "9f3c2ab",
    "buildDate": "2026-06-05",
    "channel": "alpha",
    "platform": "darwin",
    "arch": "arm64"
  },
  "server": {
    "endpoint": "https://cloud.dify.ai",
    "reachable": true,
    "version": "1.16.0",
    "edition": "CLOUD"
  },
  "compat": {
    "minDify": "1.16.0",
    "maxDify": "1.16.0",
    "status": "compatible",
    "detail": "server 1.16.0 in [1.16.0, 1.16.0]"
  }
}
```

サーバーが到達不能でも互換性がなくても、このコマンドは `0` で終了します。判定はエラーではなく、レポートそのものです。スクリプトで終了コードに変換するには、下記の `--check-compat` を使用します。他のコマンドは判定に応じて動作します。詳しくは [互換性のないサーバーに対するコマンドの動作](#互換性のないサーバーに対するコマンドの動作) を参照してください。

### 終了コード

| コード  | 意味                                           |
| :--- | :------------------------------------------- |
| `0`  | 判定の内容にかかわらず、レポートが表示された                       |
| `64` | `--check-compat` 使用時：判定が `compatible` ではなかった |

完全な体系については [出力形式と終了コード](/ja/cli/reference/output-formats-and-exit-codes) を参照してください。

## 互換性の判定

`difyctl version` はビルドをサーバーのバージョンと比較し、4 種類の判定のいずれかを報告します。サインインは不要ですが、探査の対象として保存済みのホストが必要です。

`text` レポートでは、判定は下表の「表示」列のラベルとして `Compatibility:` 行に出力されます。`-o json` では `status` フィールドに判定名が入ります。

| 判定           | 表示                              | 意味                                                                 |
| :----------- | :------------------------------ | :----------------------------------------------------------------- |
| `compatible` | `ok`                            | サーバーのバージョンが、このビルドのサポート範囲内にある。                                      |
| `too_old`    | `incompatible (server too old)` | サーバーのバージョンが、このビルドがサポートする最小バージョンより古い。                               |
| `too_new`    | `incompatible (server too new)` | サーバーのバージョンが、このビルドがテスト済みの最大バージョンより新しい。                              |
| `unknown`    | `unknown`                       | 判定なし：ホストが未設定、サーバーが到達不能、`--client` で探査をスキップ、またはサーバーのバージョンが解析できなかった。 |

`detail` フィールドは、どのケースに該当するかを示します。例：`server 1.14.0 is older than the minimum 1.16.0` または `server 1.16.0 in [1.16.0, 1.16.0]`。

## 互換性のないサーバーに対するコマンドの動作

`difyctl version` は判定を報告するだけです。サーバーに接続するすべてのコマンドは実行前に判定に従って動作するため、`too_old` のサーバーでは、バージョンの不一致を解消するまでこれらのコマンドは実行できません。

* **`too_old`**：コマンドは実際の処理を行う前に終了コード [`6`](/ja/cli/reference/output-formats-and-exit-codes) で停止し、Dify サーバーをこのビルドがサポートする最小バージョン以上にアップグレードする（または、[サーバーに合う `difyctl` をインストールする](/ja/cli/install)）よう促します。
* **`too_new`**：コマンドはそのまま実行されます。対話的な端末かつテキスト出力の場合は、stderr に 1 行の警告も表示されます（スロットリングされ、毎回は出ません）。
* **`unknown`**：判定できないため、コマンドはそのまま実行されます。

最小バージョンを満たすサーバー（`compatible` または `too_new`）はホストごとに約 1 時間キャッシュされるため、このブロックチェックはコマンドごとに繰り返されません。`too_old` のサーバーはキャッシュされないため毎回再確認され、サーバーをアップグレードするとすぐに正常化します。

[`auth login`](/ja/cli/reference/auth-and-contexts) でのサインイン時にも、セッションを保存する前に同じ確認が実行されます。そのため、バージョンの不一致は最初のコマンド実行時ではなく、サインイン時に判明します。

この確認は双方向に行われます。上記の判定は `difyctl` がサーバーを判断したものですが、サーバーも `difyctl` を判断します。

クライアントがサーバーの受け入れるバージョンより古い場合、サーバーはリクエストを HTTP `426` で拒否し、`difyctl` は終了コード `6` で終了してアップグレードを促します。Dify サーバーをアップグレードすると古い `difyctl` が動作しなくなるのはこのためです。クライアント自身による新しいサーバーへの判定が警告にとどまる場合でも、サーバーは古いクライアントを拒否します。

そのため最も確実なのは `difyctl` をサーバーに合ったバージョンに保つことです。新しいサーバーは警告付きで許容されますが、古いサーバーは拒否されます。

## スクリプトを互換性でゲートする

`--check-compat` は判定をスクリプトで扱えるようにします。`compatible` 以外はすべて、`unknown` のあらゆるケースを含め、`64` で終了します。`difyctl version` は毎回サーバーをライブで探査し、互換性キャッシュを読み取ることはありません。そのため、スクリプトのゲートはサーバーの現在のバージョンを反映します。このフラグは判定を終了コードに変換するだけです。

完全なレポートは選択した形式で stdout に出力され、1 行の理由は stderr に出力されます。そのため、どちらの結果でも `difyctl version -o json --check-compat | jq` は同じように動作します。

```bash theme={null}
difyctl version --check-compat || echo "difyctl and this Dify server are not a confirmed match"
```

終了コード `64` はこの flag に固有のものです。`difyctl` の他の失敗でこのコードが使われることはありません。
