このドキュメントは AI によって自動翻訳されています。不正確な部分がある場合は、英語版 を参照してください。
difyctl はスクリプトで扱えるよう設計されています。データは stdout へ、それ以外はすべて stderr へ出力され、-o グローバルフラグ で出力形式を選択し、失敗時には予測可能なコードで終了します。
出力形式
-o <format> は、コマンドが結果を stdout にどう表示するかを選択します。各コマンドは 5 つのフォーマットのうち一部に対応しており、対応状況は --help と各参考ページのフラグ表に記載されています。
-o を付けない場合、get app などのリスト系コマンドは整列したテキストテーブルを出力し、その他のコマンドはテキストを出力します。
JSON の構造は安定しています。get app などのリスト系コマンドは行を配列に入れた JSON オブジェクトを出力し、同じコマンドを 2 回実行しても同一のトップレベル構造を返します。コマンドごとの正確な JSON 構造は、各参考ページを参照してください。
出力チャネル
スクリプトで前提にできるルールは次のとおりです。
- 失敗時、stdout は空のままです。キャプチャしたデータからエラーテキストを除外する必要はありません。
- 成功時、
getとdescribeコマンドは stderr を空のままにします。run appとresume appはヒントを stderr に出力する場合があります。 - 進行中スピナーはターミナルでのみ stderr に表示され、
-o json、-o yaml、-o nameでは抑制されます。 - パイプ出力に ANSI カラーコードは含まれません。
- パイプの受け手が早期に終了した場合(
difyctl get app -o name | head -2)、difyctlはパイプ破損で失敗せず0で終了します。
エラー
エラーは stderr に出力されます。デフォルトの人間向けフォーマットでは、エラーは 1 行のcode: message と、任意の詳細行で構成されます。
request: <METHOD> <url> 行と http_status: <n> 行が出力されます。
サーバーの応答が Dify 標準のエラーボディを含む場合、ヘッダー行には CLI の転送レベルのコードではなく、サーバーのより具体的なコード(not_found、invalid_param)が表示されます。
フィールドごとの検証詳細はインデントされた行として続き、difyctl 自身のヒントがない場合はサーバーのヒントが表示されます。
-o json では、同じエラーが stderr 上の 1 行の JSON オブジェクトになります。
-o json だけです。-o yaml の失敗は人間向けフォーマットで出力されます。
各コードの意味と修正方法は、トラブルシューティング を参照してください。
終了コード
厳密なスクリプト向けの注意点が 1 つあります。パーサーレベルの誤り(不明なコマンド、不明なフラグ、値が欠けたフラグ)はプレーンテキストのメッセージとともに
1 で終了しますが、既知のフラグに対する無効な値は 2 で終了します。
人間の入力のために一時停止したワークフロー実行は 0 で終了
ワークフローアプリは、人間の入力を集めるために実行の途中で一時停止できます。この一時停止は失敗ではなく、正常な結果の 1 つです。run app と resume app は 0 で終了し、一時停止のペイロードを stdout に出力します。
スクリプトやエージェントで一時停止を検出するには、-o json で実行し、stdout に "status": "paused" があるかを確認します。終了コードで分岐しないでください。
ペイロードの構造と再開プロトコルは、Apps 参考ページの ワークフローが一時停止したとき を参照してください。