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.
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
List & Inspect
pixault transforms list
pixault transforms get thumbnail
The list view highlights locked parameters in yellow.
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"
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
# Check processing status
pixault eps status img_01JKXYZ
# Trigger design splitting
pixault eps split img_01JKXYZ
# Extract vector SVG from EPS
pixault eps extract-svg img_01JKXYZ
The status command shows a color-coded breakdown chart of succeeded, failed, and remaining assets.
The extract-svg command converts the EPS to a vector SVG (preserving paths, not rasterizing) and automatically splits multi-design files into individual SVGs.
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 splitting
12 March 2026