difyctl version to see which difyctl build you have and whether it works with your Dify server. It prints the client build, probes your active host, and reports a compatibility verdict.
In a script, --check-compat turns that verdict into an exit code.
Check Client and Server Versions
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--short | boolean | false | Print only the client semver (no server probe) and exit. |
--client | boolean | false | Skip the server probe, so the verdict reports unknown. |
--check-compat | boolean | false | Exit 64 unless the verdict is compatible. |
-o <format> | string | text | Output format: text, json, or yaml. |
Examples
Print the full report:Output
| Format | What stdout gets |
|---|---|
default (text) | The full report: a Client block, a Server block, and a one-line Compatibility verdict. Builds on any channel other than stable append a warning recommending the stable channel. |
-o json, -o yaml | The same report as three objects:
|
text report:
--short prints only the client semver:
-o json:
--check-compat, the command exits 0 even when the server is unreachable or incompatible. The verdict is the report, not an error.
Exit Codes
| Code | Meaning |
|---|---|
0 | Report printed, whatever the verdict |
64 | With --check-compat: the verdict was not compatible |
Compatibility Verdicts
difyctl version compares your build against the server’s version and reports one of three verdicts. You don’t need to be signed in, but you do need a stored host to probe.
| Verdict | Meaning |
|---|---|
compatible | The server version is inside the range this build supports. |
unsupported | The server version is outside the supported range. |
unknown | No verdict: no host configured, the server is unreachable, the probe was skipped with --client, or the server’s version didn’t parse. |
detail field says which case you’re in, for example server 1.16.0 outside [1.15.0, 1.15.0].
Gate Scripts on Compatibility
--check-compat makes the verdict scriptable: anything other than compatible, including every unknown case, exits 64.
The full report still goes to stdout in your chosen format, and the one-line reason goes to stderr, so difyctl version -o json --check-compat | jq works the same on both outcomes.
64 is specific to this flag. No other difyctl failure uses it.