ナビゲーション

CLI

CLI コマンド

Bannerify CLI の各コマンド、オプション、終了コードの意味を説明します。

Bannerify CLI には、config、create、whoami の 3 つのコマンドがあります。

bannerify <command> [options]

コマンドのオプションを表示するには、bannerify --help または bannerify <command> --help を実行します。キーが保存されておらず、ターミナルが対話型の場合は、引数なしで bannerify を実行するとガイド付きのセットアップが始まります。それ以外の場合は、ヘルプが表示されます。

グローバルフラグ

フラグ 説明
-v, --version CLI のバージョンを表示します
-h, --help ヘルプを表示します。すべてのサブコマンドで使えます

config

CLI が実行の合間に保持する設定を管理します。コマンドは git config と同じように動作します。

コマンド 説明
bannerify config set <key> [value] 値を保存します。value を省略すると、対話型のターミナルでは入力を求め、スクリプトでは失敗します
bannerify config get <key> 値を 1 つ表示します
bannerify config list 保存されているすべての値を表示します
bannerify config delete <key> 値を削除します。値が設定されていない場合は、終了コード 1 で終了します

キー

キー 説明
apiKey CLI が送信する API キー
baseUrl API のベース URL。初期値は https://api.bannerify.co/v1 です
defaultFormat --format がないときの画像形式。初期値は png です
outputDir --out がないときの、出力ファイルのフォルダー

CLI は、値を保存するときに検証しません。png、jpeg、webp 以外の defaultFormat は、あとで create image を実行したときに失敗します。

get と list は、apiKey の中央部分を伏せて表示します(例: abcd****mnop)。全体を表示するには、--show を付けます。

bannerify config get apiKey --show

値なしの config set apiKey は、キーの入力を求め、入力内容を非表示にします。長いキーを貼り付けるときに内容を確認したい場合は、--show を付けます。

bannerify config set apiKey
bannerify config set baseUrl https://api.bannerify.co/v1
bannerify config set defaultFormat webp
bannerify config set outputDir ./renders
bannerify config delete defaultFormat

get と list は値を標準出力に表示し、list は設定ファイルのパスを標準エラー出力に表示します。ファイルは $XDG_CONFIG_HOME/bannerify/config.json または ~/.config/bannerify/config.json で、パーミッションは 0600 です。

create

テンプレートから画像または PDF を生成します。

bannerify create image <templateId> [options]
bannerify create pdf <templateId> [options]

オプション

オプション 説明
-o, --out <path> 出力ファイル。--out=- を指定すると、ファイルを標準出力に書き出します。パスの途中に存在しないフォルダーがあれば、CLI が作成します
--format <format> 画像形式: png、jpeg、webp。画像のみ。初期値は png、または設定の defaultFormat です
--modifications '<json>' modification の JSON 配列。- を指定すると、標準入力から読み込みます
--modifications-file <path> JSON ファイルから配列を読み込みます。標準入力から読み込むには - を指定します
--api-key <key> このコマンドで使う API キー
--base-url <url> このコマンドで使う API のベース URL
--json 結果を JSON として標準出力に表示します
-q, --quiet エラー以外のメッセージをすべて非表示にします

--out がない場合、CLI は <templateId>.<format> をカレントフォルダーに書き込みます。outputDir を設定している場合は、そのフォルダーに書き込みます。PDF の拡張子は pdf です。

Modifications

--modifications は、オブジェクトの配列を受け取ります。各オブジェクトは、name でレイヤーを指定し、そのフィールドを設定します。MCP ツールが受け付けるオブジェクト形式は、ここでは使えません。

bannerify create image tpl_xxx -o out.png \
  --modifications '[{"name":"title","text":"Hello world"}]'

--modifications と --modifications-file の両方を渡すと、CLI は 2 つの配列を、ファイルを先にして連結します。

存在しないレイヤー名はエラーなしで無視されます。値が変わらないときは、スペルを確認してください。レイヤーの種類ごとのフィールドは、Modificationsにまとめています。

例

# テキストを 1 つ上書きして WebP で出力
bannerify create image tpl_xxx --format webp -o out.webp \
  --modifications '[{"name":"title","text":"Summer sale"}]'

# 同じレイヤーで PDF を生成
bannerify create pdf tpl_invoice -o invoice.pdf \
  --modifications '[{"name":"total","text":"$29.00"}]'

# パイプラインの次のコマンドに渡すため、画像のバイト列を標準出力へ
bannerify create image tpl_xxx --out=- --quiet > out.png

# ファイルから modification を読み込む
bannerify create image tpl_xxx -o out.png --modifications-file ./data.json

whoami

API キーを確認し、キーが属するワークスペースを表示します。

bannerify whoami
オプション 説明
--api-key <key> 保存済みのキーの代わりに、このキーを確認します
--base-url <url> この API のベース URL を使います
--json 結果を JSON として標準出力に表示します
+ Authenticated as Acme
  project id: proj:xxxxxxxxxx
  created:    2026-01-14T09:12:31.000Z
  key source: config

key source は、flag、env、config のいずれかです。スクリプトがどのキーを使っているかが分かります。--json を付けない場合、whoami はこのテキストを標準エラー出力に表示するため、スクリプトで結果を読むには --json を使ってください。

新しい環境では、まず whoami を実行します。長いバッチが失敗する前に、キーの問題を知らせてくれます。

スクリプトやエージェントから使う

標準入力または標準出力がターミナルでない場合や、CI が設定されている場合、CLI は入力を求めません。キーがないときは、すぐに失敗し、解決するためのコマンドを表示します。

動作 詳細
入力の要求 対話型のターミナルのみ
標準出力 データのみ。--out=- ではファイルのバイト列、--json では JSON の結果、config get と config list の出力
標準エラー出力 メッセージ、進行状況、エラー
キーの取得元 --api-key フラグ、次に BANNERIFY_API_KEY、次に設定ファイル

JSON 出力

スクリプトから結果を読むには、--json を付けます。成功すると、create image は次のオブジェクトを 1 つ表示します。

{
  "ok": true,
  "command": "create image",
  "templateId": "tpl_xxx",
  "format": "png",
  "path": "/home/dev/out.png",
  "bytes": 80734
}

create pdf では format が含まれません。ファイルを標準出力に書き出す場合、path は stdout になります。whoami は、ワークスペースとキーの取得元を表示します。

{
  "ok": true,
  "project": {
    "id": "proj:xxxxxxxxxx",
    "name": "Acme",
    "createdAt": "2026-01-14T09:12:31.000Z"
  },
  "keySource": "config"
}

create が失敗すると、API が返したエラーオブジェクトを表示し、0 以外の終了コードで終了します。

{
  "ok": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "template tpl_xxx not found",
    "docs": "https://bannerify.co/docs/api-reference/errors/code/NOT_FOUND",
    "requestId": "req:1a2b3c4d5e6f7a8b"
  }
}

whoami --json が失敗した場合、error には message だけが入ります。

--out=- と --json は併用しないでください。どちらも標準出力に書き込むため、ファイルのバイト列の後ろに JSON の行が続いてしまいます。代わりに、ファイルをパスに書き出してください。

終了コード

コード 意味
0 コマンドが成功しました
1 その他のエラー。キーがない、サポートされていない形式、無効な modification、不明な設定キー、API からのエラーなど
2 認証エラー。create は、エラーコードが 401、403、UNAUTHORIZED、FORBIDDEN のときに 2 で終了します。whoami は、キーの確認に失敗したときに 2 で終了します

API は、存在しないキーを BAD_REQUEST として報告するため、誤ったキーでは create は 1 で終了します。キーを確認するには whoami を実行します。2 で終了します(--json を付けると 1 で終了します)。

bannerify create image tpl_xxx -o out.png --quiet || echo "generation failed with code $?"

トラブルシューティング

症状 原因 対処
No API key found セッションが対話型ではなく、キーが設定されていません BANNERIFY_API_KEY を設定するか、--api-key を渡すか、bannerify config set apiKey を一度実行します
whoami が Project not found と表示し、2 で終了する キーが存在しないか、削除されています API Keys ページでキーを作成し、bannerify config set apiKey で保存します
Unsupported format --format または defaultFormat が png、jpeg、webp ではありません。SVG 出力は利用できません 3 つの形式のいずれかを使います
Invalid modifications 値が有効な JSON ではない、配列ではない、またはファイルのパスが間違っています [{"name":"title","text":"Hi"}] のように、オブジェクトの配列を渡します
終了コード 1 と NOT_FOUND テンプレート ID が存在しません テンプレートカードのメニューにある Copy Template ID で ID をコピーします
終了コード 1 と BAD_REQUEST API キーが間違っているか、modification の値の型が正しくありません メッセージに原因が示されます。キーを確認するには、bannerify whoami を実行します
終了コード 1 と USAGE_EXCEEDED ワークスペースが生成回数の上限に達しました クォータと制限を参照してください
TypeError: fetch failed で始まるスタックトレース create が API に接続できませんでした。ネットワークが切断されている、baseUrl が間違っているなどが原因です。コマンドは 1 で終了します 接続を確認し、bannerify config get baseUrl を実行します
値が変わらない レイヤー名がどのレイヤーにも一致せず、Bannerify が無視しています 名前をModificationsで確認します
ターミナルにバイナリデータが表示される --out=- がファイルを標準出力に書き出しています --out=- > out.png のようにリダイレクトします

関連情報