Eightstate CLI — unified AI services from the command line
Project description
escli
┌─────────────────────────────────┐
│ escli v0.3.1 │
│ eightstate command line │
└─────────────────────────────────┘
AI services from the command line. Generate images, edit photos, and more. Works for humans and agents.
Install
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.sh | bash
Windows
irm https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.ps1 | iex
Manual install (any platform)
# requires uv (https://docs.astral.sh/uv)
uv tool install git+https://github.com/eight-state/eightstate#subdirectory=cli
# or with pip
pip install git+https://github.com/eight-state/eightstate#subdirectory=cli
Quickstart
# 1. authenticate
escli auth login
# 2. generate an image
escli image gen "a sunset over the ocean" --open
# 3. list models
escli models
Usage
Image Generation
escli i g "a mountain landscape" # square, auto-named
escli i g "app mockup" -s portrait -q high --open # portrait, opens after
escli i g "logo design" -s sq -o logo.png # named output
escli i g "wallpaper" -s wide -f webp # landscape webp
escli i g "product photo" -q high -d ./output/ # to directory
Image Editing
escli i e "make it snow" -i summer.jpg --open
escli i e "repaint as oil painting" -i photo.jpg -q high -o painted.png
escli i e "remove the background" -i product.png
Sizes
| Alias | Dimensions | Use case |
|---|---|---|
square, sq |
1024x1024 | Logos, icons, social posts |
landscape, wide, ls |
1536x1024 | Wallpapers, banners, headers |
portrait, tall, port |
1024x1536 | Phone mockups, posters, stories |
Quality
| Level | Speed | Detail |
|---|---|---|
low |
~15s | Fast drafts |
medium |
~25s | Balanced |
high |
~40s | Best quality |
Auth Profiles
escli auth login # interactive
escli auth login --key sk-xxx # non-interactive
escli auth login --key sk-xxx -p work # named profile
escli auth status # show current (alias: whoami)
escli auth profiles # list all (alias: ls)
escli auth switch work # switch profile (alias: use)
escli auth logout # remove current
escli auth logout --all # remove everything
Agent / CI Usage
All commands support --json for structured output and --quiet for zero stderr noise:
# generate with pure JSON output
escli --json --quiet i g "a logo" -s sq -o /tmp/logo.png
# returns:
# {"success": true, "path": "/abs/path/logo.png", "size_bytes": 123456,
# "elapsed_seconds": 18.4, "prompt": "a logo", "model": "gpt-image-2",
# "image_size": "1024x1024", "quality": "high"}
# auth via env var (no login needed)
ESCLI_API_KEY=sk-xxx escli --json models
# non-interactive login for CI
escli auth login --key $API_KEY --profile ci
# edit with JSON output
escli --json --quiet i e "make it blue" -i input.png -o output.png
# {"success": true, "path": "/abs/path/output.png", "input": "/abs/path/input.png", ...}
Exit codes: 0 success, 1 error, 2 usage
Error JSON: {"success": false, "error": "message"}
Shortcuts
| Short | Full |
|---|---|
escli i g |
escli image generate |
escli i e |
escli image edit |
escli a |
escli auth |
escli m |
escli models |
Environment Variables
| Variable | Description | Default |
|---|---|---|
ESCLI_API_KEY |
API key (overrides profile) | |
ESCLI_BASE_URL |
API endpoint | https://ai.eightstate.co/v1 |
ESCLI_IMAGE_MODEL |
Default model | gpt-image-2 |
ESCLI_IMAGE_QUALITY |
Default quality | high |
ESCLI_IMAGE_SIZE |
Default size | 1024x1024 |
ESCLI_IMAGE_FORMAT |
Default format | png |
ESCLI_OUT_DIR |
Output directory | . |
ESCLI_TIMEOUT |
Timeout seconds | 300 |
ESCLI_CONFIG_DIR |
Config directory | ~/.escli |
Config
Credentials stored at ~/.escli/config.json with 600 permissions (owner-only read/write).
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eightstatecli-0.4.3.tar.gz.
File metadata
- Download URL: eightstatecli-0.4.3.tar.gz
- Upload date:
- Size: 39.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62a234840c48af10527a15192c934f8ea3dd285ff6caafce68587b6a9b687ab4
|
|
| MD5 |
cf242d8cf7d9dfe19701b011b7c949e8
|
|
| BLAKE2b-256 |
a0b8097fbfc5074cc798b24c286ba777232f28d1dcaa0526061fd9da5cc2793d
|
File details
Details for the file eightstatecli-0.4.3-py3-none-any.whl.
File metadata
- Download URL: eightstatecli-0.4.3-py3-none-any.whl
- Upload date:
- Size: 47.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a9563569909d6e39338fe4615260e2d25699dd658244dc0682e4bd3efc9cd59
|
|
| MD5 |
313a50ceac005968a7977a0f3126f5f6
|
|
| BLAKE2b-256 |
afcd441e9f553d8d592c4ca17f6fc42ee285e32bd8057b82b85060d847751f68
|