Package Exports
- @inliner/cli
- @inliner/cli/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@inliner/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@inliner/cli
CLI for Inliner.ai — generate and edit AI images from the terminal.
Install
npm install -g @inliner/cliOr run directly with npx:
npx @inliner/cli generate "hero image" --project mysite --size 1200x600Setup
Get an API key from Account > API Keys in the Inliner dashboard.
export INLINER_API_KEY=your-keyOr pass it per-command:
inliner-ai generate "hero" --api-key=YOUR_KEY --project mysiteCommands
Smart Mode (Default)
When no command is specified, the CLI parses your input as a smart description string:
# Pattern 1: Filename with dimensions and format → saves to local file
inliner-ai "hero-image_1200x600.png" -p mysite
# → Generates 1200x600 PNG, saves to hero-image_1200x600.png
# Pattern 2: Description with dimensions → outputs URL (or pipe to file)
inliner-ai "fat happy cats 900x900" -p mysite
# → Generates 900x900 PNG, prints URL to stdout
# Pattern 3: Filename with format only → saves to local file
inliner-ai "sunset-landscape.jpg" -p mysite
# → Generates JPG (API decides dimensions, usually 1024x1024), saves to sunset-landscape.jpg
# Override output filename with -o flag
inliner-ai "hero-image_1200x600.png" -p mysite -o custom-name.png
# → Generates image, saves to custom-name.png instead
# Auto-detects project if omitted (uses default project or first project)
inliner-ai "test-image_800x600.png"
# → Uses your default project automatically, saves to test-image_800x600.pngSmart URL behavior (default):
- The CLI calls
POST /url/recommendto create a concise, readable slug. - It then calls
POST /content/generatewith your full prompt + that slug. - Result: long descriptive prompts still generate high-quality images, while URLs remain short and SEO-friendly.
- Use
--no-smart-urlto force legacy prompt-to-slug behavior.
Supported patterns:
description_WxH.jpgordescription_WxH.png→ extracts dimensions and format, saves to filedescription WxH→ extracts dimensions, defaults to PNG, outputs URLdescription.jpg→ extracts format, API decides dimensions (usually 1024x1024), saves to filedescription→ no dimensions or format, API decides (usually 1024x1024 PNG), outputs URL- Auto-detects project if
-pis omitted - Use
-o filename.pngto override the auto-detected output filename
generate
Generate an AI image from a text prompt.
# Print image URL to terminal
inliner-ai generate "modern office hero" -p acme --size 1200x600
# Pipe binary to file
inliner-ai gen "sunset landscape" -p mysite > hero.png
# Save directly
inliner-ai g "product shot" -p store -o product.png
# Auto-detect project (uses default project or first project)
inliner-ai generate "hero image" --size 1200x600
# No dimensions specified - API decides (usually 1024x1024)
inliner-ai generate "hero image" -p mysiteOptions:
| Flag | Description |
|---|---|
-p, --project |
Project namespace (auto-detects if omitted) |
--size WxH |
Dimensions (default: API decides, usually 1024x1024) |
--width, --height |
Alternative to --size |
-f, --format |
png or jpg (default: png) |
--no-smart-url |
Disable smart URL recommendation and use legacy slug path |
-o, --output |
Save to file |
edit
Edit an image with AI instructions. Accepts a local file, Inliner URL, or stdin.
# Edit a local file
inliner-ai edit photo.png "remove the background" -p myproject -o clean.png
# Pipe from stdin
cat photo.jpg | inliner-ai edit - "make it warmer" -p proj > warm.jpg
# Edit an existing Inliner image by URL
inliner-ai edit https://img.inliner.ai/proj/hero_800x600.png "add sunset sky"For local files, the CLI uploads the image to your project first, then applies the AI edit.
inline
Process HTML files to resolve Inliner image references. Reads from stdin or a file.
# Replace placeholders with Inliner image tags
inliner-ai inline template.html -p acme > output.html
# Embed images as base64 data URIs (for emails, offline HTML)
cat email.html | inliner-ai inline --embed > email-inlined.htmlSupported HTML patterns (with --project):
<!-- inliner: hero banner sunset landscape 1200x600 png -->
<!-- Becomes: <img src="https://img.inliner.ai/acme/hero-banner-sunset-landscape_1200x600.png" ...> -->
<img data-inliner="product shot on white background" width="800" height="600">
<!-- Gets an Inliner src URL added -->With --embed, downloads all img.inliner.ai images and replaces URLs with data: URIs.
projects
List your Inliner projects.
inliner-ai projects
inliner-ai proj --jsoncreate-project
Create a new project (reserves the namespace for your account).
# Create a project with required name
inliner-ai create-project my-project --name "My Project"
# Create with description and set as default
inliner-ai create-project marketing --name "Marketing Team" --description "Marketing assets" --default
# JSON output
inliner-ai create-project dev --name "Development" --jsonOptions:
| Flag | Description |
|---|---|
--name <name> |
Display name (required) |
--description <desc> |
Description (optional) |
--default |
Set as default project (optional) |
--json |
Output raw JSON |
images
List generated images.
inliner-ai images
inliner-ai img -p myproject --limit 20
inliner-ai img --search "hero" --jsontags
Manage tags for existing assets.
# List account tags with usage counts
inliner-ai tags list
# Add tags to multiple assets
inliner-ai tags add --ids 111,222 --tags hero,banner
# Remove tags
inliner-ai tags remove --ids 111 --tags outdated
# Replace all tags
inliner-ai tags replace --ids 111 --tags product,launchmetadata
Bulk update metadata on existing assets.
# Update caption and alt text on multiple assets
inliner-ai metadata update --ids 111,222 --caption "Homepage hero" --alt-text "Team collaborating"
# Update custom metadata JSON
inliner-ai metadata update --ids 111 --custom-metadata '{"campaign":"spring-2026"}'
# Clear a field by passing an empty string
inliner-ai metadata update --ids 111 --caption ""usage
Show credit usage for your account.
inliner-ai usage
inliner-ai u --jsonSmart Output
The CLI adapts its output based on context:
| Context | Behavior |
|---|---|
| Interactive terminal (TTY) | Prints the image URL |
Piped (| ... or > file) |
Outputs raw image bytes |
--output file.png |
Saves to file, prints URL to stderr |
This means standard Unix patterns work naturally:
# Save to file via redirect
inliner-ai generate "hero" -p site > hero.png
# Pipe through ImageMagick
inliner-ai generate "logo" -p brand --size 400x400 | convert - -resize 200x200 logo-small.png
# Chain edit operations
inliner-ai edit photo.png "remove background" -p proj | inliner-ai edit - "add gradient bg" -p proj > final.pngProject Selection
The CLI automatically selects a project in this order:
--projectflag (explicit)INLINER_DEFAULT_PROJECTenvironment variable- Default project (project marked as default in your account)
- First project (fallback if no default is set)
When auto-detecting, the CLI prints which project was used to stderr:
Using default project: mysiteEnvironment Variables
| Variable | Description |
|---|---|
INLINER_API_KEY |
API key (required) |
INLINER_DEFAULT_PROJECT |
Default project namespace (if --project omitted) |
INLINER_API_URL |
API base URL (default: https://api.inliner.ai) |
INLINER_IMG_URL |
Image CDN URL (default: https://img.inliner.ai) |
Links
- Inliner.ai
- Tutorials
- @inliner/mcp-server — MCP server for AI coding agents