Documentation

OpenArt CLI

openart-pp-cli

Install

npx -y @mvanhorn/printing-press-library install openart

Installs the CLI binary and the agent skill for Claude Code, Codex, Cursor, Gemini CLI, Copilot, and more. Add --cli-only or --skill-only for one half. Requires Node.

Documentation

Spend your OpenArt credits programmatically. Generate videos with Seedance, Kling, Veo and more from the terminal.

Learn more at Openart.

Printed by @mvanhorn (Matt Van Horn).

Quick Start

1. Install

See Install above.

2. Authenticate

This CLI uses your browser session for authentication. Log in to in Chrome, then:

openart-pp-cli auth login --chrome

Requires a cookie extraction tool. Install one:

pip install pycookiecheat          # Python (recommended)
brew install barnardb/cookies/cookies  # Homebrew

When your session expires, run auth login --chrome again.

3. Verify Setup

openart-pp-cli doctor

This checks your configuration and credentials.

4. Try Your First Command

openart-pp-cli history mock-value

Unique Features

These capabilities aren't available in any other tool for this API.

Generation

  • video gen — Submit + poll + download videos in one command (Seedance, Kling, Veo, Wan, Grok Imagine).

    openart-pp-cli video gen --prompt "a phoenix" --model byte-plus-seedance-2 --duration 10 --count 2 --wait --download ./out/
    
  • image gen — Submit + poll + download images in one command. The Nano Banana family has two variants: nano-banana (50 credits, verified end-to-end) and nano-banana-pro (120 credits, higher quality, gated as experimental). There is no nano-banana-2 — Pro is the upgrade path. The other image models (gpt-image-2, gpt-image-1-5, flux-2-pro, byte-plus-seedream-4, byte-plus-seedream-4-5, google-imagen-4, qwen-image-max) are also gated as --accept-experimental (their submit shapes were inferred from the JS bundle but not individually exercised live). Run openart-pp-cli models list --family image to see slugs, costs, and the experimental flag before picking.

    # verified, cheapest path
    openart-pp-cli image gen --prompt "donkey on Mercer Island" --model nano-banana --count 2 --wait --download ./out/
    
    # higher-quality Pro variant — opt in with --accept-experimental
    openart-pp-cli image gen --prompt "donkey on Mercer Island" --model nano-banana-pro --count 2 --accept-experimental --wait --download ./out/
    
  • video gen --no-audio — Disables Seedance's auto-generated audio track. Workaround for OutputAudioSensitiveContentDetected moderation failures, and also halves the cost on Seedance 2.0 normal mode.

    openart-pp-cli video gen --prompt "..." --model seedance2 --no-audio --wait
    

Credit-aware spending

  • cost estimate — Project the credit cost of a generation before you spend.

    Use before any batch submit to avoid burning credits on a misconfigured run.

    openart-pp-cli cost estimate --model byte-plus-seedance-2 --duration 10 --count 4 --agent
    
  • credits burn — Aggregate credit spend by model, tool, day, or project.

    Answers 'where did my credits go?' so you can shift work to cheaper models.

    openart-pp-cli credits burn --since 7d --by model --agent
    
  • credits forecast — Project how many weeks of runway your current balance gives at recent burn.

    Surfaces 'this paid plan covers another 6 weeks' so you can decide when to top up or slow down.

    openart-pp-cli credits forecast --agent
    

Cross-model leverage

  • models cheapest — Find the cheapest model that satisfies a target shape (type/duration/resolution/features).

    Lets agents try a prompt on Grok Imagine for 150 credits before committing to Seedance 2's 800.

    openart-pp-cli models cheapest --type video --duration 10 --resolution 720p --agent
    
  • compare — Run one prompt across multiple models in parallel; return a side-by-side report with cost and URLs.

    Decide which model deserves the long Seedance shoot before committing.

    openart-pp-cli compare --prompt "a phoenix in molten gold" --models byte-plus-seedance-2,kling2-6,grok-imagine --duration 5 --agent
    

Prompt history as memory

  • prompts replay — Re-run a past generation, optionally on a different model, with parameter bumps.

    Iterate on past wins without retyping prompts; A/B test models cheaply.

    openart-pp-cli prompts replay 3dVHEhDjyq82gLwBudaG --model byte-plus-seedance-2 --bump duration=10 --agent
    
  • prompts find — Full-text search prior generations by prompt text with OpenArt-specific filters (model, audio, duration, starred, since).

    Recover the prompt you wrote three weeks ago instead of paying to recreate it.

    openart-pp-cli prompts find "molten dragon" --model byte-plus-seedance-2 --has-audio --since 30d --agent
    
  • prompts top — Rank past prompts by total credit spend over a window.

    Surface 'I have spent 8k credits iterating this dragon prompt' before iterating again.

    openart-pp-cli prompts top --since 30d --by spend --agent
    
  • stats — One-shot stats over the local media library: counts per type/model/period and rolling spend.

    A 'where am I' snapshot for both human users and agents starting a session.

    openart-pp-cli stats --since 30d --agent
    

Usage

Run openart-pp-cli --help for the full command reference and flag list.

Commands

credits

Credit balance and ledger

  • openart-pp-cli credits logs - Get the credit ledger (CONSUME, RECHARGE, REFUND entries)

forms

Generation forms (submit a video, image, lipsync, motion-sync, etc.)

  • openart-pp-cli forms submit - Submit a generation. capability_id is ':' URL-encoded (e.g. 'byte-plus-seedance-2:text2video'). Returns historyId + resourceIds; poll resources/ until status='completed'.

history

Generation history (submissions)

  • openart-pp-cli history get - Get a generation history entry by ID. Includes capability_id and the original input.

media

Generation history and uploaded media

  • openart-pp-cli media get - Get a single resource by ID. Use this to poll a generation in progress until status='completed' and url is populated.
  • openart-pp-cli media list - List generated and uploaded resources (videos, images, audio) in the active project

project

Projects within a workspace

  • openart-pp-cli project default - Get the default project ID for the active workspace
  • openart-pp-cli project folders - List folders inside a project
  • openart-pp-cli project list - List projects in the active workspace

prompt

Prompt utilities (auto-polish, reverse from image)

  • openart-pp-cli prompt enhance - Auto-polish a prompt (LLM rewrite for better generation)
  • openart-pp-cli prompt from_image - Reverse: extract a suggested prompt from an image URL

templates

Saved generation templates

  • openart-pp-cli templates list - List saved templates

upload

Upload reference images for image-to-video and other ref-based forms

  • openart-pp-cli upload list - List uploaded reference images
  • openart-pp-cli upload persist - Persist an uploaded image as a referencable asset
  • openart-pp-cli upload sign - Get a signed upload URL for a new reference image

user

User identity, workspace, and credit balance

  • openart-pp-cli user current_workspace - Get the active workspace for this session
  • openart-pp-cli user info - Get current user identity, subscription, and credit balance
  • openart-pp-cli user last_active - Heartbeat the active session
  • openart-pp-cli user settings - Get user settings

workspace

Workspaces and team membership

  • openart-pp-cli workspace list - List workspaces this user can access
  • openart-pp-cli workspace members - List members of the active workspace

Output Formats

# Human-readable table (default in terminal, JSON when piped)
openart-pp-cli history mock-value

# JSON for scripting and agents
openart-pp-cli history mock-value --json

# Filter to specific fields
openart-pp-cli history mock-value --json --select id,name,status

# Dry run — show the request without sending
openart-pp-cli history mock-value --dry-run

# Agent mode — JSON + compact + no prompts in one flag
openart-pp-cli history mock-value --agent

Agent Usage

This CLI is designed for AI agent consumption:

  • Non-interactive - never prompts, every input is a flag
  • Pipeable - --json output to stdout, errors to stderr
  • Filterable - --select id,name returns only fields you need
  • Previewable - --dry-run shows the request without sending
  • Explicit retries - add --idempotent to create retries when a no-op success is acceptable
  • Confirmable - --yes for explicit confirmation of destructive actions
  • Piped input - write commands can accept structured input when their help lists --stdin
  • Offline-friendly - sync/search commands can use the local SQLite store when available
  • Agent-safe by default - no colors or formatting unless --human-friendly is set

Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.

Health Check

openart-pp-cli doctor

Verifies configuration, credentials, and connectivity to the API.

Configuration

Config file: ~/.config/openart-pp-cli/config.toml

Static request headers can be configured under headers; per-command header overrides take precedence.

Troubleshooting

Authentication errors (exit code 4)

  • Run openart-pp-cli doctor to check credentials Not found errors (exit code 3)
  • Check the resource ID is correct
  • Run the list command to see available items

HTTP Transport

This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.

Discovery Signals

This CLI was generated with browser-captured traffic analysis.

  • Capture coverage: 0 API entries from 0 total network entries
  • Reachability: browser_clearance_http (0% confidence)

Generated by CLI Printing Press

For agents: pass /documentation/openart/agents.md to install this CLI from a prompt.