runcomfy-cli

>

INSTALLATION
npx skills add https://github.com/runcomfy-com/skills --skill runcomfy-cli
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

$2b

Zero-install one-shot (no Node global state)

npx -y @runcomfy/cli --version

A standalone curl-pipe installer also exists for environments without Node — see [docs.runcomfy.com/cli/install](https://docs.runcomfy.com/cli/install?utm_source=skills.sh&utm_medium=skill&utm_campaign=runcomfy-cli). **Inspect any install script before piping it into a shell.** This skill only invokes the CLI via `Bash(runcomfy *)` after you have installed it through one of the verified package managers above.

Confirm:

runcomfy --version


Full options on the [Install page](https://docs.runcomfy.com/cli/install?utm_source=skills.sh&utm_medium=skill&utm_campaign=runcomfy-cli).

## Sign in

Interactive (opens browser):

runcomfy login

Code shown in terminal — paste into the browser page, click Authorize

Token saved to ~/.config/runcomfy/token.json with mode 0600


CI / containers (no browser):

export RUNCOMFY_TOKEN=<token-from-runcomfy.com/profile>


Verify:

runcomfy whoami

📛 you@example.com

token type: cli

user id: ...


Full flow + token rotation: [Authentication](https://docs.runcomfy.com/cli/auth?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli).

## Run a model

The general shape:

runcomfy run <vendor>/<model>/<endpoint> \

--input '<JSON body>' \

--output-dir <path>


Example — generate an image with GPT Image 2:

runcomfy run openai/gpt-image-2/text-to-image \

--input '{"prompt": "a small purple cat at sunset, photorealistic"}'


You will see:

⏳ Submitting request to openai/gpt-image-2/text-to-image

request_id: 8a3f...

⏳ Polling status (every 2s)...

in_queue

in_progress

completed

✅ completed

{

"images": [

"https://playgrounds-storage-public.runcomfy.net/.../result.png"

]

}

📥 Downloading 1 file(s) to .

./result.png


By default the result is downloaded to the current directory. Override with `--output-dir ./out`, skip downloading with `--no-download`.

Quickstart: [docs.runcomfy.com/cli/quickstart](https://docs.runcomfy.com/cli/quickstart?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli).

## Discover model schemas

Every model has an `API` tab on its detail page with the exact input schema. Browse the catalog:

open https://www.runcomfy.com/models


Or search by collection / capability:

URL
What

[/models](https://www.runcomfy.com/models?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
All featured models

[/models/all](https://www.runcomfy.com/models/all?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
The full catalog

[/models/collections/recently-added](https://www.runcomfy.com/models/collections/recently-added?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
Fresh additions

[/models/collections/nano-banana](https://www.runcomfy.com/models/collections/nano-banana?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/seedream](https://www.runcomfy.com/models/collections/seedream?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/flux-kontext](https://www.runcomfy.com/models/collections/flux-kontext?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/kling](https://www.runcomfy.com/models/collections/kling?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/seedance](https://www.runcomfy.com/models/collections/seedance?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/veo-3](https://www.runcomfy.com/models/collections/veo-3?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/wan-models](https://www.runcomfy.com/models/collections/wan-models?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/hailuo](https://www.runcomfy.com/models/collections/hailuo?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli) · [/qwen-image](https://www.runcomfy.com/models/collections/qwen-image?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
Curated brand collections

[/models/feature/lip-sync](https://www.runcomfy.com/models/feature/lip-sync?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
Lip-sync capability

[/models/feature/character-swap](https://www.runcomfy.com/models/feature/character-swap?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
Character / face swap

[/models/feature/upscale-video](https://www.runcomfy.com/models/feature/upscale-video?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli)
Video upscalers

## Commands

### runcomfy run

Synchronous run — submit, poll, download.

Flag
What

`--input '<JSON>'`
Inline JSON body. Strings can contain newlines; quote-escape as needed

`--input-file <path>`
Read body from a file (JSON or YAML by extension)

`--output-dir <path>`
Where to download result files (default: cwd)

`--no-download`
Skip the download step; only print the result JSON

`--no-wait`
Submit and return `request_id` immediately; don't poll

`--timeout <seconds>`
Cap the polling wait. Default: model-dependent

`--output json`
Print machine-readable JSON for piping (default human-readable)

`--quiet`
Suppress progress, keep only the final result line

### runcomfy login / runcomfy whoami / runcomfy logout

`login` runs the device-code flow; `whoami` prints the active identity; `logout` removes the local token file. Set `RUNCOMFY_TOKEN` env var to override the file entirely.

### runcomfy status

Check status of a `--no-wait` job:

RID=$(runcomfy --output json run google/nano-banana-2/text-to-image \

--input '{"prompt": "..."}' --no-wait | jq -r .request_id)

runcomfy status "$RID"


Full command reference: [docs.runcomfy.com/cli/commands](https://docs.runcomfy.com/cli/commands?utm_source=skills.sh&#x26;utm_medium=skill&#x26;utm_campaign=runcomfy-cli).

## Scripting patterns

### Pipe-friendly JSON

runcomfy --output json run openai/gpt-image-2/text-to-image \

--input '{"prompt": "X"}' \

--no-download \

| jq -r '.images[0]'


### Batch from a file of prompts

while IFS= read -r prompt; do

runcomfy run blackforestlabs/flux-2-klein/9b/text-to-image \

--input "$(jq -nc --arg p "$prompt" '{prompt:$p, steps:8}')" \

--output-dir "./out/$(date +%s%N)"

done < prompts.txt


### Submit now, poll later

Submit one or many jobs without blocking

RID=$(runcomfy --output json run bytedance/seedance-v2/pro \

--input '{"prompt": "..."}' --no-wait | jq -r .request_id)

Later — possibly from a different shell:

runcomfy status "$RID"


### Retry on transient failure

The CLI returns **exit code 75** on retryable errors (timeout, 429). Wrap with a shell retry loop:

for i in 1 2 3; do

runcomfy run <model_id> --input '{...}' &#x26;&#x26; break

rc=$?

[ $rc -eq 75 ] &#x26;&#x26; sleep $((2**i)) &#x26;&#x26; continue

exit $rc

done

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card