# 例

> cron で毎晩ワークフローを実行する、実行結果で CI のステップをゲートする、画像生成をスクリプト化する、動画に字幕を付ける、プロンプトを改善するといった、すぐに使える Nodaro CLI のレシピです。

Source: https://nodaro.ai/ja/docs/developers/cli/examples

この **Nodaro CLI の使用例**は、よくある作業のための短いレシピです。スケジュール実行、CI ゲート、スクリプトによる生成、文字起こしからの字幕、プロンプトの改善を扱います。どの例も、[CLI をインストールしてログイン済み](https://nodaro.ai/docs/developers/cli)であることを前提とし、ほとんどは JSON 出力の読み取りに `jq` を使います。

## cron でワークフローを毎晩実行する
この cron エントリーは、毎晩 03:00 にワークフローを実行し、JSON の結果をログファイルに追記します。

```text
0 3 * * * /usr/local/bin/nodaro workflows run wf_abc123 --json >> /var/log/nodaro-nightly.log 2>&1
```

## 実行を待ってから続ける
`--watch` を付けると、コマンドは実行を待ち、成功したときだけ `0` で終了します。そのため、次のコマンドは、ワークフローが成功したときだけ実行されます。

```bash
nodaro workflows run wf_abc --watch && \
echo "shipped" | mail -s "nodaro run done" me@example.com
```

そのほかの終了コードは、[出力と終了コード](https://nodaro.ai/docs/developers/cli/output)に一覧があります。

## 1 つのコマンドで画像を生成する
```bash
nodaro nodes run generate-image \
  --param prompt="a snow leopard on a mountain ridge, cinematic" \
  --param provider=flux \
  --param resolution=2K \
  --watch --json | jq -r '.output_data.imageUrl'
```

このコマンドは画像の URL だけを表示するので、そのままスクリプトの次のステップに使えます。

## 文字起こしから動画に字幕を付ける
単語のタイミング付きでトラックを文字起こしし、その単語をキネティック字幕として焼き込みます。

```bash
# 1. Word-level transcription (elevenlabs-stt always returns word timings)
nodaro audio transcribe --audio https://example.com/talk.mp3 \
  --provider elevenlabs-stt --watch

# 2. Save the words. They are in milliseconds; the top-level segments are in seconds.
nodaro jobs get <jobId> --json | jq '.output_data.words' > words.json

# 3. Burn them in. With captions supplied, add-captions runs no transcription of its own.
nodaro media add-captions https://example.com/talk.mp4 \
  --captions-file words.json \
  --style word-highlight --no-auto-transcribe --watch
```

- 手順 2 と 3 の間で `words.json` 内の単語の `text` を修正すると、その修正が動画に反映されます。
- 手順 3 に `--max-words-per-line 2` を追加すると、一度に 2 単語ずつのテンポの速い字幕になります。
- 手順 1 には、単語単位のエンジンが必要です。`elevenlabs-stt`、または `--word-timestamps` を付けた `incredibly-fast-whisper` を使います。`whisper` エンジンは単語のないフレーズしか返さないため、キネティックスタイルには表示するものがありません。

字幕のすべてのオプションについては、[メディアと音声のコマンド](https://nodaro.ai/docs/developers/cli/media-commands#captions)を参照してください。

## アプリのプロンプトを隠しテキストで囲む
`--override` は、アプリ自体を変更することなく、その実行に限ってユーザーのプロンプトの前後にテキストを追加します。

```bash
nodaro apps run hair-styler-dd3erw --input prompt="curly red hair" \
  --override n1.promptPrefix="Studio portrait of" --override n1.promptSuffix=", 85mm, soft light"
```

そのテキストがプロンプトにどのように結合されるかについては、[プロンプトの前後のテキスト](https://nodaro.ai/docs/concepts/prompt-pre-post-text)を参照してください。

## 大まかなアイデアを、最適化されたプロンプトにする
`prompt enhance` は、プロンプトを 1 ステップで書き直します。その結果を、そのままノードの実行に渡します。

```bash
PROMPT=$(nodaro prompt enhance \
  --node-type generate-image \
  --prompt "snow leopard" \
  --json | jq -r '.prompt')

nodaro nodes run generate-image --param prompt="$PROMPT" --watch
```

ウィザードのガイド付きの質問をスクリプトで使うには、2 ステップの方法を使います。`nodaro prompt analyze --json` が質問を返し、`nodaro prompt generate --selection category=value` がその回答から最終的なプロンプトを組み立てます。対話形式の `nodaro prompt wizard` には、ターミナルが必要です。

## 1 か月分の使用状況を書き出す
組織機能のあるインスタンスでは、メンバーごとの使用状況レポートを CSV ファイルに書き出せます。

```bash
nodaro org usage org_abc --from 2026-09-01 --to 2026-09-30 --group-by member --csv > september.csv
```

[ワークスペースと組織](https://nodaro.ai/docs/developers/cli/workspaces#usage-reports)を参照してください。

## Frequently asked questions

### Nodaro のワークフローを、スケジュールに沿って実行するには、どうすればよいですか？

ワークフロー ID と --json を指定して nodaro workflows run を呼び出し、出力をログファイルに追記する cron エントリーを追加します。このページの最初の例は、毎晩 03:00 にワークフローを実行します。

### シェルスクリプトで、生成した画像の URL を取得するには、どうすればよいですか？

--watch と --json を指定して nodaro nodes run generate-image を実行し、出力を jq -r '.output_data.imageUrl' にパイプします。

### CLI から、動画に単語ごとの字幕を追加するには、どうすればよいですか？

elevenlabs-stt のような単語単位のエンジンで音声を文字起こしし、ジョブの output_data.words をファイルに保存して、そのファイルを --captions-file と --no-auto-transcribe を付けて nodaro media add-captions に渡します。

### ノードを実行する前に、プロンプトを改善できますか？

できます。--node-type と --prompt を指定した nodaro prompt enhance は、最適化されたプロンプトを返すので、それをそのまま nodaro nodes run に渡せます。
