#CLI Tool

The Pixault CLI (pixault) provides a rich terminal interface for managing images, transforms, folders, plugins, and EPS processing from the command line. Built with Spectre.Console for polished output including progress bars, tables, and tree views.

Source on GitHub

#Installation

dotnet tool install -g Pixault.Cli

Or build from source:

git clone https://github.com/Pixault/pixault-cli.git
cd pixault-cli
dotnet build src/Pixault.Cli.csproj

#Configuration

#Interactive Setup

pixault config init

This launches an interactive wizard that prompts for:

  • API base URL — your Pixault instance (default: https://img.pixault.io)

  • CDN URL — public CDN endpoint (defaults to base URL)

  • Default project — project ID used when --project is not specified

  • API key — for authenticated operations

  • HMAC secret — for signed URL generation (optional)

Configuration is saved to ~/.pixault/config.json.

#Environment Variables

You can override any config value with environment variables (highest priority):

Variable

Description

PIXAULT_BASE_URL

API base URL

PIXAULT_CDN_URL

CDN URL

PIXAULT_PROJECT

Default project ID

PIXAULT_API_KEY

API key

PIXAULT_HMAC_SECRET

HMAC signing secret

#View Current Config

pixault config show

Displays a table of all settings with their values (secrets masked) and whether each comes from the config file, environment, or defaults.

#Upload

Upload a single file, multiple files with glob patterns, or an entire directory:

# Single file
pixault upload photo.jpg
# With metadata
pixault upload photo.jpg --alt "Sunset over the ocean" --tags "nature,sunset,ocean"
# Glob pattern
pixault upload "images/*.png" --folder portfolio
# To a specific project
pixault upload banner.webp -p my-project --folder headers

Upload shows a progress bar with transfer speed for each file and a success panel with the image ID and CDN URL.

#Images

#List Images

pixault images list
pixault images list --limit 50 --search "hero"
pixault images list --category tattoo-flash --keyword dragon
pixault images list --author "Jane" --folder portfolio
pixault images list --video  # videos only

#Get Image Details

pixault images get img_01JKXYZ

Shows a detailed panel with all metadata, keywords as styled tags, and a clickable CDN URL.

#Update Metadata

pixault images update img_01JKXYZ --name "Hero Banner" --category marketing
pixault images update img_01JKXYZ --keywords "hero,banner,landing" --author "Design Team"

#Delete Image

pixault images delete img_01JKXYZ          # with confirmation prompt
pixault images delete img_01JKXYZ --force  # skip confirmation

#Generate CDN URL

Build transform URLs directly from the terminal:

# Basic resize
pixault images url img_01JKXYZ -w 800 -q 85
# With named transform and format
pixault images url img_01JKXYZ -t gallery -w 1200 --format avif
# Full transform
pixault images url img_01JKXYZ -w 400 -h 300 --fit cover -q 90 --blur 5

#List Derived Assets

For EPS files that have been split into individual designs:

pixault images derived img_01JKXYZ

#Folders

# Tree view of all folders
pixault folders list
# Create a folder
pixault folders create portfolio/landscapes
# Delete a folder
pixault folders delete portfolio/old --force

#Named Transforms

#List & Inspect

pixault transforms list
pixault transforms get thumbnail

The list view highlights locked parameters in yellow.

#Create a Transform

pixault transforms create thumbnail -w 200 -h 200 --fit cover -q 85 --lock "w,h"
pixault transforms create watermarked --watermark img_01WMXYZ --wm-position BottomRight --wm-opacity 30 --lock "wm"

#Delete a Transform

pixault transforms delete old-preset --force

#Plugins

# All available plugins
pixault plugins list
# Installed plugins for your project
pixault plugins installed
# Activate/deactivate
pixault plugins activate background-remove
pixault plugins deactivate background-remove

#EPS Processing

All EPS processing happens server-side. The CLI sends requests to the Pixault API, which queues background jobs for rasterization, splitting, and SVG extraction. The workflow is: upload → trigger processing → poll status → access results.

#End-to-End Walkthrough

Step 1: Upload the EPS file

pixault upload stock-icons.eps --folder eps-files

Pixault validates the EPS (checks for %!PS-Adobe- header and %%BoundingBox DSC comment), stores the original, and automatically queues a background rasterization job at 300 DPI. The response includes the image ID (e.g., eps_01JKXYZ).

Step 2: Check rasterization progress

pixault eps status eps_01JKXYZ

Shows a color-coded breakdown chart of processing progress — how many assets have succeeded, failed, or are still pending. Repeat until status shows Completed.

For multi-page EPS files, one PNG is generated per page. Single-page files produce one rasterized PNG.

Step 3: Split into individual designs (optional)

Stock EPS files often pack multiple designs into a single page. The split command detects whitespace gaps between designs and extracts each one as a separate image.

pixault eps split eps_01JKXYZ

This is asynchronous — the server queues the work and returns immediately. Poll status to track progress:

pixault eps status eps_01JKXYZ

Step 4: Extract vector SVGs (optional)

Convert the EPS to SVG format, preserving vector paths and shapes rather than rasterizing:

pixault eps extract-svg eps_01JKXYZ

Also asynchronous. The server converts EPS → PDF → SVG, sanitizes the output, and if multiple designs are detected, extracts individual design SVGs as well.

Step 5: View the results

pixault images derived eps_01JKXYZ

Lists all derived assets — rasterized PNGs, split designs, and extracted SVGs — each with their own image ID, dimensions, and content type. These derived images work like any other Pixault image: you can transform, deliver, and manage them with standard commands.

# Generate a CDN URL for a split design
pixault images url img_01JKABC -w 400 -q 85
# Get metadata for an extracted SVG
pixault images get img_01JKDEF

#EPS Commands Reference

Command

Description

pixault eps status <id>

Check processing job progress (rasterization, split, or SVG extraction)

pixault eps split <id>

Trigger auto-detection and extraction of individual designs

pixault eps extract-svg <id>

Convert EPS to vector SVG with per-design extraction

pixault images derived <id>

List all derived assets for an EPS parent

See the EPS Processing API for details on the server-side pipeline, splitting algorithm, and derivation types.

#Global Options

Every command that interacts with a project supports --project (or -p) to override the configured default:

pixault images list -p other-project
pixault upload photo.jpg -p client-site --folder uploads

#Command Reference

pixault
├── config init          # Interactive setup wizard
├── config show          # Display current configuration
├── upload <path>        # Upload file(s)
├── images
│   ├── list             # List with pagination and filters
│   ├── get <id>         # Image detail panel
│   ├── update <id>      # Update metadata
│   ├── delete <id>      # Delete (with confirmation)
│   ├── url <id>         # Generate CDN URL
│   └── derived <id>     # List derived assets
├── folders
│   ├── list             # Tree view
│   ├── create <path>    # Create folder
│   └── delete <path>    # Delete folder
├── transforms
│   ├── list             # List transforms
│   ├── get <name>       # Transform details
│   ├── create <name>    # Create transform
│   └── delete <name>    # Delete transform
├── plugins
│   ├── list             # Available plugins
│   ├── installed        # Project plugins
│   ├── activate <name>  # Activate plugin
│   └── deactivate <n>   # Deactivate plugin
└── eps
    ├── status <id>      # Processing status
    ├── split <id>       # Trigger design splitting
    └── extract-svg <id> # Extract vector SVGs