Skip to main content
Run 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

difyctl version [flags]

Flags

FlagTypeDefaultDescription
--shortbooleanfalsePrint only the client semver (no server probe) and exit.
--clientbooleanfalseSkip the server probe, so the verdict reports unknown.
--check-compatbooleanfalseExit 64 unless the verdict is compatible.
-o <format>stringtextOutput format: text, json, or yaml.

Examples

Print the full report:
difyctl version
Print just the client version, for scripts and bug reports:
difyctl version --short

Output

FormatWhat 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 yamlThe same report as three objects: client (version, commit, buildDate, channel, platform, arch), server (endpoint, reachable, and on success version and edition), and compat (minDify, maxDify, status, detail).
The default text report:
Client:
  Version:   0.1.0-alpha (channel: alpha)
  Commit:    9f3c2ab (built 2026-06-05)
  Platform:  darwin/arm64
  Compat:    dify >=1.15.0, <=1.15.0

Server:
  Endpoint:  https://dify.example.com
  Version:   1.15.0 (self_hosted)

Compatibility: ok — server 1.15.0 in [1.15.0, 1.15.0]
--short prints only the client semver:
0.1.0-alpha
-o json:
{
  "client": {
    "version": "0.1.0-alpha",
    "commit": "9f3c2ab",
    "buildDate": "2026-06-05",
    "channel": "alpha",
    "platform": "darwin",
    "arch": "arm64"
  },
  "server": {
    "endpoint": "https://dify.example.com",
    "reachable": true,
    "version": "1.15.0",
    "edition": "SELF_HOSTED"
  },
  "compat": {
    "minDify": "1.15.0",
    "maxDify": "1.15.0",
    "status": "compatible",
    "detail": "server 1.15.0 in [1.15.0, 1.15.0]"
  }
}
Without --check-compat, the command exits 0 even when the server is unreachable or incompatible. The verdict is the report, not an error.

Exit Codes

CodeMeaning
0Report printed, whatever the verdict
64With --check-compat: the verdict was not compatible
See Output Formats and Exit Codes for the full scheme.

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.
VerdictMeaning
compatibleThe server version is inside the range this build supports.
unsupportedThe server version is outside the supported range.
unknownNo verdict: no host configured, the server is unreachable, the probe was skipped with --client, or the server’s version didn’t parse.
The 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.
difyctl version --check-compat || echo "difyctl and this Dify server are not a confirmed match"
Exit code 64 is specific to this flag. No other difyctl failure uses it.
Last modified on June 25, 2026