Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 56 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A command-line tool for interacting with the [Runware](https://runware.ai) API. Built in Go, distributed as a single static binary.

Run image generation, video generation, audio generation, 3D, upscaling, background removal, captioning, search models, and more.
Run image generation, video generation, audio generation, 3D, upscaling, background removal, captioning, search models, deploy serverless applications, and more.

## Install

Expand Down Expand Up @@ -45,6 +45,9 @@ runware ping
# Generate an image
runware run runware:400@1 positivePrompt="a chess match in the park" width=1024 height=1024

# Deploy a serverless application
runware serverless deploy ./app.py --id my-app --gpu-type h100 --wait

# Check your account details
runware account details
```
Expand Down Expand Up @@ -128,6 +131,54 @@ runware run tencent:hunyuan-3d@3.1-pro positivePrompt="A red vintage sports car"
runware run tencent:hunyuan-3d@3.1-pro inputs.images.0="https://example.com/product.jpg"
```

### `runware serverless` — applications

Deploy, invoke, and manage Runware serverless applications. Full command reference is in [docs/runware_serverless.md](./docs/runware_serverless.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought (non-blocking): This block copies about 25 commands from the generated reference, and make docs does not update the README. Keep the main flow (gpus, deploy, invoke, logs) and let the link carry the rest, so that this copy does not go stale.


```shell
# List GPU types and per-second pricing
runware serverless gpus

# Create from a Python entry file (the working directory, or --src-dir, is zipped and uploaded)
runware serverless deploy ./app.py --id my-app --gpu-type h100 --wait

# Create from a container source (Dockerfile + container.yaml at the directory root)
runware serverless deploy --id my-app --gpu-type h100 --container ./wrapper --wait

# Later deploys with the same --id upload a new source and roll version N+1
runware serverless deploy ./app.py --id my-app --wait

# Inspect
runware serverless apps list
runware serverless apps show my-app
runware serverless apps endpoints my-app
runware serverless apps workers my-app --state live

# Invoke an endpoint (path is a bare segment, e.g. infer)
runware serverless apps invoke my-app infer -f payload.json --wait

# Logs, events, and usage
runware serverless apps logs my-app --follow
runware serverless apps events my-app
runware serverless usage --for this-month --group-by app,day
runware serverless apps usage my-app --for this-month

# Environment, secrets, and scale
runware serverless apps env set my-app MY_KEY --value-file ./value.txt
runware serverless secrets set FOO --value-file ./foo.txt
runware serverless secrets attach my-app FOO
runware serverless apps scale my-app --max-workers 2

# Lifecycle
runware serverless apps stop my-app
runware serverless apps resume my-app
runware serverless open my-app
```

`--volume`, `--env`, `--env-file`, and `--name` apply on create only. Change `--gpu-type` and other worker settings with `apps scale`, and environment with `apps env`. An environment change or a secret attach, detach, or rotation records a new version (or rolls live workers) — you do not need to redeploy source to apply them.

`.env` files are never packed into the source archive. Prefer `--env-file` and `secrets set --value-file` so values stay out of the process list.

### Authentication

```shell
Expand Down Expand Up @@ -238,6 +289,7 @@ All commands support `--format json` for piping into `jq` or scripts.
| Variable | Description |
|----------|-------------|
| `RUNWARE_API_KEY` | API key (overrides config file) |
| `RUNWARE_DASHBOARD_URL` | Dashboard base URL for `serverless open` (default `https://my.runware.ai`) |

### Config file

Expand Down Expand Up @@ -354,9 +406,9 @@ Once installed, `Tab` works at every level:
```
# Complete subcommands
$ runware <Tab>
auth account completion config model
ping preset result run upload
version
auth account completion config media
model ping preset result run
serverless upload version

# Complete model AIR identifiers for `run`
$ runware run <Tab>
Expand Down
Loading