---
title: CLI | RunAPI
description: RunAPI CLI のすべてのコマンド（モデルアクション、タスク、ファイル、アップロード、アカウント情報、価格、コールバック、Harness）をインストールして使用します。
url: https://runapi.ai/ja/docs/resources/cli.md
canonical: https://runapi.ai/ja/docs/resources/cli
locale: ja
---

> HTML 版: https://runapi.ai/ja/docs/resources/cli
> エージェント向けサイトインデックス: https://runapi.ai/llms.txt

# CLI

RunAPI CLIはモデルアクションとアカウントツール向けのJSONファースト端末クライアントです。結果データを標準出力に、運用上の進捗を標準エラーに書き込むため、端末、シェルスクリプト、CIジョブ、Harnessのいずれでも同様に機能します。

## インストール

Linux または macOS に最新リリースをインストールします:

```shell
curl -fsSL https://runapi.ai/cli/install.sh | sh
```

Homebrew および Go ソースインストールも利用可能です:

```shell
brew install runapi-ai/tap/runapi
go install github.com/runapi-ai/cli/cmd/runapi@latest
```

Windowsの場合は、[最新のCLIリリース][1]から対応する`windows-amd64`または`windows-arm64`アーカイブをダウンロードし、`runapi.exe`を展開して`PATH`に追加してください。



[1]: https://github.com/runapi-ai/cli/releases/latest

再現性のあるバイナリが必要なデプロイでは、インストーラーをバージョンまたはインストールディレクトリに固定してください:

```shell
curl -fsSL https://runapi.ai/cli/install.sh | sh -s -- --version v0.13.1
curl -fsSL https://runapi.ai/cli/install.sh | sh -s -- --dir "$HOME/.local/bin"
```

インストーラーは`RUNAPI_VERSION`、`RUNAPI_INSTALL_DIR`、`RUNAPI_INSTALL_BASE`、`RUNAPI_DOWNLOAD_BASE`、および`RUNAPI_SKIP_LIBC_CHECK=1`も受け付けます。

## クイックスタート

ワークステーションでは、ブラウザでサインインし、認証情報ソースを確認してください：

```shell
runapi login
runapi auth status
```

インラインJSON入力またはJSONファイルでモデルアクションを実行します：

```shell
runapi nano-banana text-to-image --input '{"prompt":"a hummingbird drinking espresso","aspect_ratio":"1:1"}'
runapi nano-banana text-to-image --input-file request.json
```

ほとんどのモデルアクションは非同期です。デフォルトでは終端結果を待機します。`--async`を追加するとタスクを即座に返し、後で`wait`を使用できます：

```shell
TASK_ID=$(runapi suno text-to-music --async --input '{"model":"suno-v5","vocal_mode":"instrumental","style":"minimal piano","title":"Short Piano Theme"}' | jq -r '.id')
runapi wait "$TASK_ID" --service suno --action text-to-music
```

## コマンドの規則

すべてのコマンドは、`files create --url-only`や`listen
--print-secret`のようなオプションがスカラー値を明示的に要求しない限り、標準出力にJSONを出力します。進捗および診断メッセージは標準エラーに出力されるため、JSONを安全に`jq`にパイプできます：

```shell
runapi nano-banana text-to-image --input-file request.json \
  | jq -r '.images[].url' \
  | xargs -I{} curl -OL {}
```

モデルアクションは、リクエスト入力ソースをちょうど1つ受け付けます：

* `--input '<json object>'` はインラインJSONを指定します。
* `--input-file path/to/request.json` はファイルからJSONを読み込みます。
* `--input-file -` は標準入力からJSONを読み込みます。

リクエストを構築する前に `runapi <service> <action> --help` を使用してください。
インストール済みのCLIには、アクションの現在のフィールド、受け付け可能なモデル識別子、
およびバリデーション制約が表示されます。

これらのグローバルオプションはすべてのコマンドに適用されます：

| オプション | 目的 |
|----------
| `--api-key` | この呼び出しにAPIキーを使用する。`RUNAPI_API_KEY` を上書きする。 |
| `--base-url` | この呼び出しに別のAPIオリジンを使用する。 |
| `--timeout` | コマンド全体のタイムアウトおよびタスク待機の最大時間を設定する。デフォルトは15分。 |
| `--poll-interval` | タスクポーリングの間隔を設定する。デフォルトは3秒。 |
| `--async` | 非同期モデルアクションを送信した直後に返る。 |
| `--quiet` | JSON出力を変更せずに標準エラーへの進捗表示を抑制する。 |

## モデルアクション

モデルコマンドの形式は`runapi <service> <action>`です。同期アクションはレスポンスをすぐに返します。非同期アクションのデフォルト動作は送信、ポーリング、終了タスク結果の返却です。`--async`は代わりに作成レスポンスを返します。

トップレベルのメディア URL フィールドについて、読み取り可能なローカルファイルパスはモデルアクションの実行前にアップロードされます。既存の `http://` および `https://` URL はそのまま送信されます。再利用可能な一時 URL が必要な場合、ソースがリモート URL の場合、またはソースが Base64 データの場合は `files create` を使用してください。

### オーディオと音楽のアクション

* `suno`: `add-instrumental`, `add-vocals`, `blend-lyrics`,
  `boost-style`, `check-voice`, `convert-audio`, `cover-audio`,
  `create-mashup`, `extend-music`, `generate-artwork`,
  `generate-lyrics`, `generate-midi`, `generate-persona`,
  `generate-voice`, `get-timestamped-lyrics`,
  `regenerate-validation-phrase`, `replace-section`,
  `separate-audio-stems`, `text-to-music`, `text-to-sound`,
  `visualize-music`, `voice-to-validation-phrase`
* `producer`: `text-to-music`
* `gemini-omni`: `create-audio`, `create-character`, `text-to-video`
* `openai-tts`: `text-to-speech`
* `fish-audio`: `text-to-speech`
* `gemini-tts`: `text-to-speech`
* `elevenlabs`: `isolate-audio`, `speech-to-text`, `text-to-dialogue`,
  `text-to-sound`, `text-to-speech`

### 画像アクション

* `nano-banana`: `edit-image`, `text-to-image`
* `imagen-4`: `remix-image`, `text-to-image`
* `seedream`: `decompose-layers`, `edit-image`, `text-to-image`
* `flux`: `remix-image`, `text-to-image`
* `flux-2`: `remix-image`, `text-to-image`
* `flux-kontext`: `text-to-image`
* `qwen-2`: `edit-image`, `text-to-image`
* `qwen-3`: `edit-image`, `text-to-image`
* `qwen-image`: `edit-image`, `remix-image`, `text-to-image`
* `recraft`: `remove-background`, `upscale-image`
* `z-image`: `text-to-image`
* `ideogram-v3`: `edit-image`, `reframe-image`, `remix-image`,
  `text-to-image`
* `gpt-image`: `edit-image`, `text-to-image`
* `gpt-image-2`: `edit-image`, `text-to-image`
* `gpt-4o-image`: `text-to-image`
* `midjourney`: `edit-image`, `get-seed`, `image-to-prompt`,
  `shorten-prompt`, `text-to-image`

### 動画とアニメーションのアクション

* `veo-3-1`: `extend-video`, `text-to-video`, `upscale-video`
* `seedance`: `text-to-video`
* `runway`: `extend-video`, `text-to-video`
* `runway-aleph`: `edit-video`
* `kling`: `avatar`, `edit-video`, `extend-video`, `image-to-video`,
  `motion-control`, `text-to-video`
* `infinitetalk`: `audio-to-video`
* `omnihuman`: `audio-to-video`, `human-identification`,
  `subject-detection`
* `wan`: `animate`, `edit-video`, `image-to-video`, `speech-to-video`,
  `text-to-image`, `text-to-video`
* `luma`: `modify-video`
* `hailuo`: `image-to-video`, `text-to-video`
* `volcengine-lip-sync`: `lip-sync-video`
* `happyhorse`: `edit-video`, `image-to-video`, `text-to-video`
* `grok-imagine`: `edit-image`, `extend`, `image-to-video`,
  `text-to-image`, `text-to-video`, `upscale-image`
* `topaz`: `upscale-image`, `upscale-video`
* `midjourney`: `extend-video`, `image-to-video`

上記のリストは、このCLIリリースにおける完全なアクションインベントリです。各アクションの正確なリクエストおよびレスポンスコントラクトは[APIリファレンス](https://runapi.ai/ja/docs/api/openai/chat-completions.md)で確認でき、ローカルコマンドヘルプはバージョン固有のフィールドの情報源です。

## タスクのライフサイクル

非同期Taskの現在の状態を待機せずに確認するには `get` を使用してください。完了・失敗・コマンドタイムアウトに達するまでポーリングするには `wait` を使用してください。どちらのコマンドも、CLIが正しいTaskの結果形式を選択できるよう、元のサービスとアクションの指定が必要です。

```shell
runapi get "$TASK_ID" --service suno --action text-to-music
runapi wait "$TASK_ID" --service suno --action text-to-music --poll-interval 5s
```

## ファイル

`runapi files create` は一時的なFile Upload URLフローを維持します。ローカルパス・リモートURL・Base64ソースのいずれか1つをアップロードし、1時間後に期限切れとなるURLを返します。

```shell
runapi files create ./reference.png --url-only
runapi files create --url https://example.test/reference.png --file-name reference.png
runapi files create --base64 "$(base64 < reference.png)" --file-name reference.png
```

ソースの選択肢は相互に排他的です。`--url-only`はURLのみを出力します。完全なJSONレスポンスを受け取るには省略してください。

URLの代わりに安定した `file_id` が必要な場合は、永続的なファイルライフサイクルを使用します:

```shell
runapi files create-file ./knowledge.pdf
runapi files list --order desc
runapi files retrieve file_123
runapi files content file_123 --output ./knowledge-copy.pdf
runapi files delete file_123
```

`content` には `--output` が必要です。標準出力にFileの正確なバイト列を書き込むには `-` を渡してください。制限、アカウントの分離、およびRESTライフサイクルについては [Files and Uploads](https://runapi.ai/ja/docs/resources/files.md) を参照してください。

## アップロード

最終的なFileを構成する前に、Uploadsを使用して1つ以上のPartを送信してください。
Createは最終的なバイト数とメタデータを宣言します。完了時には、構成順に
`--part-id` を繰り返し指定してください：

```shell
runapi uploads create --bytes 1048576 --filename archive.bin --mime-type application/octet-stream
runapi uploads add-part upload_123 ./archive.part-01
runapi uploads complete upload_123 --part-id part_123
runapi uploads cancel upload_123
```

## アカウントと料金

認証済みユーザーと選択したアカウントを確認し、残高と使用量カウンターを照会します:

```shell
runapi account info
runapi account balance
```

`pricing list` は現在の価格スケジュールを読み取ります。サービス、アクション、またはモデルでフィルタリングできます。`pricing quote` は指定したサービスとアクションのタスク予約額を見積もります。アクションがモデル固有の場合は `--model` を追加し、`--params` または `--params-file` でPricing Inputsを指定してください。

```shell
runapi pricing list --service suno --action text-to-music --model suno-v4
runapi pricing quote --service suno --action text-to-music --model suno-v4 \
  --params '{"vocal_mode":"auto_lyrics","prompt":"A chill lo-fi beat"}'
runapi pricing quote --service suno --action text-to-music --params-file pricing-inputs.json
```

料金コマンドは、見積もりがアカウント所有のソースタスクを参照する場合を除き、認証情報を必要としません。

## 認証と設定

`runapi login` はブラウザ認証フローを開き、取得した認証情報を保存します。サーバーおよびCI環境では、`auth import-token` が標準入力からAPIキーを受け取り、デフォルトで検証を行い、プロセスリストやシェル履歴に値を露出させることなく保存します：

```shell
printf '%s' "$RUNAPI_API_KEY" | runapi auth import-token --token -
runapi auth status
runapi logout
```

`auth import-token --skip-verify` はオフラインでのイメージセットアップに対応しています。セットアップ中に検証を実行できない場合にのみ使用してください。`auth status` は後でアクティブな認証情報を検証します。

API キーの優先順位は `--api-key`、次に `RUNAPI_API_KEY`、次にローカル CLI 設定ファイルの順です。ベース URL の優先順位は `--base-url`、次に `RUNAPI_BASE_URL`、次に保存済みのベース URL、次に `https://runapi.ai` の順です。設定ファイルは `~/.config/runapi/config.json`、または `XDG_CONFIG_HOME` が設定されている場合は `$XDG_CONFIG_HOME/runapi/config.json` です。

## ローカルコールバックリスナー

`runapi listen` は選択した1つのAPIキーに対するTaskコールバックを受信し、オプションで各署名済みコールバックをローカルのHTTPエンドポイントに転送します。リスナー操作を使用する前にブラウザログインが必要です。

```shell
runapi login
runapi api-keys list --json
runapi listen http://localhost:3000/webhooks/runapi --callback-api-key-id token_abc123
```

位置URLと`--forward-to`は代替手段です。リスナーは署名された各コールバックボディを標準出力に書き込みます。`callback_url`を持つタスクはそのURLへの配信を継続し、ローカルリスナーにもコピーされます。

有効なリスナーイベントを受信した後、CLI はローカル HTTP リクエストを試みる前にそれを確認します。各イベントはローカルに 1 回転送されます。2xx 以外のレスポンスや接続エラーはターミナルに報告されますが、リスナーがイベントを再送することはありません。このローカルデバッグ動作は、タスクの `callback_url` への配信の再試行には影響しません。

各アカウントは、1つのCallback Subscription Keyにつき最大100個のアクティブなリスナーを実行でき、合計で1,000個のアクティブなリスナーを実行できます。制限に達した場合は、アイドル状態のリスナーを停止するか、待機してから再試行してください。APIレスポンスは、選択したキー、アカウント、またはサービス全体のキャパシティが満杯であるかを示します。

アイドル状態のリスナーは約 15〜30 秒ごとに新しいイベントを確認します。イベントは通常約 15 秒以内に検出され、利用可能になるとすぐに読み取られます。制限に達した場合は、アイドル状態のリスナーを停止するか、しばらく待ってから再試行してください。既存の配信と確認の動作は変わりません。

キーの選択順序は次のとおりです: 1 つのコマンドに対する `--callback-api-key-id`、プロジェクトの `.runapi.toml` 内の `callback_api_key_id`、次にインタラクティブセレクター。プロジェクト設定は Git ルート、または Git リポジトリ外の場合は現在のディレクトリに保存され、安定した ID のみが含まれます:

```toml
callback_api_key_id = "token_abc123"
```

選択したキーの Listen Signing Secret をリスナーを起動せずに表示する、または漏洩後にローテーションする:

```shell
runapi listen --print-secret --callback-api-key-id token_abc123
runapi listen --rotate-secret --callback-api-key-id token_abc123
```

ローテーションにより、選択されたキーのアクティブなリスナーが無効化されます。リスナーを再起動する前に、新たに発行されたシークレットですべてのローカル検証器を更新してください。

## Harness

ポータブルな RunAPI CLI スキルをサポートされている Harness にインストールし、サポートされているターゲットを確認するか、インストール済みスキルを削除します:

```shell
runapi agent install-skill --target codex
runapi agent list-targets
runapi agent uninstall-skill --target codex
```

組み込みターゲットは`claude`、`codex`、`gemini`、`openclaw`、`hermes`です。`install-skill`は、スキルリリースをピン留めするための`--version`、カスタム宛先のための`--target-dir`、ソースリポジトリのための`--source`、既存のスキルディレクトリを上書きするための`--force`を受け付けます。

## シェル補完とバージョン

Bash、Zsh、Fish、または PowerShell の補完スクリプトを生成します。たとえば、現在のシェルで Bash 補完を読み込むには:

```shell
source <(runapi completion bash)
runapi completion zsh
runapi completion fish
runapi completion powershell
runapi version
```

コマンド一覧を表示するには `runapi --help` を、コマンドのオプションを確認するには `runapi <command> --help` を、モデルアクションのフィールドを確認するには `runapi <service> <action> --help` を使用してください。

## 終了コード

コマンドはスクリプトで処理できる非ゼロコードで終了します：

| コード | 意味 |
|----------
| `0` | 成功 |
| `2` | 認証失敗またはサポートされていないプラットフォーム |
| `3` | クレジット不足、または必要なローカル依存関係が見つからない |
| `4` | バリデーションエラー、リソースが見つからない、またはマニフェスト解析エラー |
| `5` | タイムアウト、ダウンロード失敗、またはチェックサム不一致 |
| `6` | レート制限 |
| `7` | タスク失敗 |

リクエストフィールド、タスクステータス値、コールバックペイロード、エラー本文、およびレート制限の処理については、[API リファレンス](https://runapi.ai/ja/docs/api/openai/chat-completions.md)に進んでください。同じワークフローがアプリケーション内に属する場合は、[SDK](https://runapi.ai/ja/docs/resources/sdks.md)を使用してください。

---

## RunAPI のその他の情報

- [ホーム](https://runapi.ai/ja/.md)
- [モデルカタログ](https://runapi.ai/ja/models.md)
- [料金](https://runapi.ai/ja/pricing.md)
- [プロバイダー](https://runapi.ai/ja/models)
- [ドキュメント](https://runapi.ai/ja/docs/guides)
- [SDK](https://runapi.ai/ja/sdk.md)
- [CLI](https://runapi.ai/ja/cli.md)
- [MCP Server](https://runapi.ai/ja/mcp.md)
- [Claude Code と Cursor](https://runapi.ai/ja/claude-code-vs-cursor.md)
- [Cursor API セットアップ](https://runapi.ai/ja/cursor-api-setup.md)
- [RunAPI と OpenRouter の比較](https://runapi.ai/ja/openrouter-alternative.md)
- [エンタープライズ](https://runapi.ai/ja/contact.md)
- [お問い合わせ](https://runapi.ai/ja/contact.md)
- [利用規約](https://runapi.ai/ja/terms.md)
- [プライバシー](https://runapi.ai/ja/privacy.md)
- [エージェント向けサイトインデックス](https://runapi.ai/llms.txt)

お問い合わせ: contact@runapi.ai

## 構造化データ

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/ja",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/ja/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/ja",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/jaicon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "ja",
    "@type": "TechArticle",
    "headline": "CLI",
    "description": "RunAPI CLI のすべてのコマンド（モデルアクション、タスク、ファイル、アップロード、アカウント情報、価格、コールバック、Harness）をインストールして使用します。",
    "url": "https://runapi.ai/ja/docs/resources/cli",
    "mainEntityOfPage": "https://runapi.ai/ja/docs/resources/cli"
  }
]
```
