Windpaint
Commands

Account commands

Command reference for balance, projects, config show, version and auth.

balance

windpaint balance
windpaint balance --json | jq -r '.available'

Shows your organization’s credits. Credits are shared by every project in the organization.

Available    187.4
Held         4 (reserved by running jobs)
Next expiry  187.4 credits on 2026-10-29 09:00

SOURCE  REMAINING
signup  187.4

Held is credit reserved by jobs that haven’t finished; it’s charged if they complete and released if they don’t. Next expiry is the next batch of credits to expire and when. The source table breaks the balance down by where the credits came from (signup, topup, promo and so on). The JSON is the full balance object from the API, including individual credit lots.

To add credits, use Settings → Billing in the dashboard. The CLI can’t top up. See Billing.

projects

Every job, asset and run belongs to a project. See Organizations and projects.

projects list

windpaint projects
windpaint projects --archived

Lists your organization’s projects. projects list also works. A * marks the project the CLI is using, when one is set.

   SLUG          NAME           ID                                    DEFAULT  ARCHIVED
-  default       Default        1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d  yes      no
*  launch-video  Launch video   5b0c2d7e-8f61-4c1a-9e3d-2a7b6c4f8e90  no       no
FlagDescription
--archivedInclude archived projects.

projects create

windpaint projects create "Launch video"
windpaint projects create "Product shots" --slug product-shots --description "Catalog images for the fall line"

Creates a project and prints its slug, name and id. It doesn’t select it.

FlagDescription
--slug <slug>URL-safe identifier: lowercase letters, digits and hyphens, up to 64 characters. Default: derived from the name. Must be unique in your organization.
--description <text>Description.

A slug that’s already taken fails with exit code 6.

projects select

windpaint projects select launch-video
windpaint projects select --clear

Saves a default project to the config file, so later commands use it without --project. Takes an id or a slug, checks the project exists and isn’t archived, and saves its slug.

Selected project launch-video (5b0c2d7e-8f61-4c1a-9e3d-2a7b6c4f8e90)
FlagDescription
--clearRemove the saved project and fall back to your organization’s default project.

--project and WINDPAINT_PROJECT still override the saved project. See Project selection.

config show

windpaint config show

Prints the API URL, the API key (redacted) and the project in effect, where each came from, and the config file and directory paths. It doesn’t call the API. See Configuration.

API URL      https://api.windpaint.ai (default)
API key      aak_…9f3e (credentials)
Project      launch-video (config)
Config file  /Users/you/.windpaint/config.yaml
Config dir   /Users/you/.windpaint

version

windpaint version
windpaint --version
windpaint 0.1.0 (commit 3f9c2ab, built 2026-09-30T12:04:11Z, go1.25.0 darwin/arm64)

windpaint --version prints only windpaint <version>. With --json, version prints version, commit, date, go, os and arch. Include it when you report a problem.

auth

windpaint auth login --api-key aak_...
echo "$WINDPAINT_KEY" | windpaint auth login --api-key -
windpaint auth login --email [email protected]
windpaint auth whoami
windpaint auth logout
CommandDescription
auth loginVerify credentials and save them to ~/.windpaint/credentials.json. Flags: --api-key (- reads stdin), --email, --password.
auth whoamiShow the user the current key belongs to.
auth logoutDelete the saved credentials. Doesn’t revoke the key.

See Authentication for details and CI setup.

Next

Scripting and agents

JSON output, exit codes and patterns for scripts and coding agents.