#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.
#Installation
dotnet tool install -g Pixault.CliOr 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 initThis 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
--projectis 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 |
|---|---|
|
|
API base URL |
|
|
CDN URL |
|
|
Default project ID |
|
|
API key |
|
|
HMAC signing secret |
#View Current Config
pixault config showDisplays 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 headersUpload 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_01JKXYZShows 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 thumbnailThe 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-filesPixault 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_01JKXYZShows 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_01JKXYZThis is asynchronous — the server queues the work and returns immediately. Poll status to track progress:
pixault eps status eps_01JKXYZStep 4: Extract vector SVGs (optional)
Convert the EPS to SVG format, preserving vector paths and shapes rather than rasterizing:
pixault eps extract-svg eps_01JKXYZAlso 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_01JKXYZLists 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 |
|---|---|
|
|
Check processing job progress (rasterization, split, or SVG extraction) |
|
|
Trigger auto-detection and extraction of individual designs |
|
|
Convert EPS to vector SVG with per-design extraction |
|
|
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