跳至主要內容
開發者資源
開發者資源

CLI

安裝並使用所有 RunAPI CLI 命令,用於模型動作、Tasks、Files、Uploads、帳戶資訊、定價、回呼及 Harness。

RunAPI CLI 是一個以 JSON 為優先的終端客戶端,用於模型操作及帳戶工具。它將結果數據寫入標準輸出,並將操作進度寫入標準錯誤,因此在終端、shell 腳本、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 版本下載相符的 windows-amd64windows-arm64 壓縮包,解壓縮 runapi.exe,並將其添加至 PATH

若部署需要可重現的二進位檔案,可將安裝程式固定至特定版本或安裝目錄:

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_VERSIONRUNAPI_INSTALL_DIRRUNAPI_INSTALL_BASERUNAPI_DOWNLOAD_BASERUNAPI_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

指令慣例

每個命令均在標準輸出上輸出 JSON,除非某個選項明確 要求純量值,例如 files create --url-onlylisten --print-secret。進度及診斷訊息保留在標準錯誤輸出,因此 JSON 可安全地傳送至 jq

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

模型操作僅接受一個請求輸入來源:

  • --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

音頻及音樂操作

  • sunoadd-instrumentaladd-vocalsblend-lyricsboost-stylecheck-voiceconvert-audiocover-audiocreate-mashupextend-musicgenerate-artworkgenerate-lyricsgenerate-midigenerate-personagenerate-voiceget-timestamped-lyricsregenerate-validation-phrasereplace-sectionseparate-audio-stemstext-to-musictext-to-soundvisualize-musicvoice-to-validation-phrase
  • producertext-to-music
  • gemini-omnicreate-audiocreate-charactertext-to-video
  • openai-ttstext-to-speech
  • fish-audiotext-to-speech
  • gemini-ttstext-to-speech
  • elevenlabsisolate-audiospeech-to-texttext-to-dialoguetext-to-soundtext-to-speech

圖像動作

  • nano-bananaedit-imagetext-to-image
  • imagen-4remix-imagetext-to-image
  • seedreamdecompose-layersedit-imagetext-to-image
  • fluxremix-imagetext-to-image
  • flux-2remix-imagetext-to-image
  • flux-kontexttext-to-image
  • qwen-2edit-imagetext-to-image
  • qwen-3edit-imagetext-to-image
  • qwen-imageedit-imageremix-imagetext-to-image
  • recraftremove-backgroundupscale-image
  • z-imagetext-to-image
  • ideogram-v3edit-imagereframe-imageremix-imagetext-to-image
  • gpt-imageedit-imagetext-to-image
  • gpt-image-2edit-imagetext-to-image
  • gpt-4o-imagetext-to-image
  • midjourneyedit-imageget-seedimage-to-promptshorten-prompttext-to-image

影片與動畫操作

  • veo-3-1extend-videotext-to-videoupscale-video
  • seedancetext-to-video
  • runwayextend-videotext-to-video
  • runway-alephedit-video
  • klingavataredit-videoextend-videoimage-to-videomotion-controltext-to-video
  • infinitetalkaudio-to-video
  • omnihumanaudio-to-videohuman-identificationsubject-detection
  • wananimateedit-videoimage-to-videospeech-to-videotext-to-imagetext-to-video
  • lumamodify-video
  • hailuoimage-to-videotext-to-video
  • volcengine-lip-synclip-sync-video
  • happyhorseedit-videoimage-to-videotext-to-video
  • grok-imagineedit-imageextendimage-to-videotext-to-imagetext-to-videoupscale-image
  • topazupscale-imageupscale-video
  • midjourneyextend-videoimage-to-video

上方列表是本 CLI 版本中完整的操作清單。每個操作的確切請求及回應合約可在 API 參考中查閱,而本地命令說明則是版本特定欄位的來源。

任務生命週期

使用 get 在不等待的情況下檢查非同步 Task 的當前狀態。使用 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 上傳 URL 流程。它上傳一個本機路徑、遠端 URL 或 Base64 來源,並返回一個一小時後過期的 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 回應。

當您需要穩定的 file_id 而非 URL 時,請使用持久檔案生命週期:

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

上傳

使用 Uploads 在組合最終 File 之前傳送一個或多個 Parts。 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 提供定價輸入。

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 歷史記錄的情況下儲存它:

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 設定檔。Base URL 優先順序為 --base-url,其次為 RUNAPI_BASE_URL,再其次為已儲存的 base URL,最後為 https://runapi.ai。設定檔為 ~/.config/runapi/config.json,若設定了 XDG_CONFIG_HOME,則為 $XDG_CONFIG_HOME/runapi/config.json

本地回呼監聽器

runapi listen 接收所選 API 金鑰的任務回呼,並可選擇性地將每個已簽名的回呼轉發至本機 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 請求之前先確認該事件。每個事件僅會在本地轉發一次:非 2xx 回應和連線錯誤會在終端機中報告,但不會使監聽器重播事件。此本地偵錯行為不影響任務 callback_url 的傳送重試。

每個帳戶每個回呼訂閱金鑰最多可執行 100 個活躍監聽器,總計最多 1,000 個活躍監聽器。達到限制後,請停止閒置的監聽器或稍候重試。API 回應會說明是所選金鑰、您的帳戶還是整體服務容量已達上限。

閒置的監聽器大約每 15 至 30 秒檢查一次新事件。事件通常在約 15 秒內被發現,並在可用時立即讀取。若達到限制,請停止閒置的監聽器或稍後再試。現有的傳送和確認行為不受影響。

金鑰選擇的優先順序為:單次命令使用 --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

輪換會使所選金鑰的有效監聽器失效。在重新啟動監聽器之前,請以新列印的密鑰更新每個本地驗證器。

接入

將可攜式 RunAPI CLI 技能安裝至支援的 Harness,檢查支援的目標,或移除已安裝的技能:

SHELL
runapi agent install-skill --target codex
runapi agent list-targets
runapi agent uninstall-skill --target codex

內建目標為 claudecodexgeminiopenclawhermesinstall-skill 接受 --version 以鎖定技能版本、 --target-dir 指定自訂目標目錄、--source 指定來源 存儲庫,以及 --force 覆蓋現有技能目錄。

Shell 自動補全及版本

為 Bash、Zsh、Fish 或 PowerShell 生成補全腳本。例如,在當前 shell 中載入 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 任務失敗

有關請求欄位、Task 狀態值、回呼酬載、錯誤內文及速率限制處理,請繼續查閱 API 參考。若同一工作流程屬於應用程式內部,請使用 SDKs