eightstatecli 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,13 @@
1
+ __pycache__/
2
+ *.pyc
3
+ .env
4
+ output_images/
5
+ *.png
6
+ *.jpg
7
+ *.jpeg
8
+ *.webp
9
+ debug_image.py
10
+ run_remaining.py
11
+ gpt_image2_showcase.py
12
+ generate_all.py
13
+ imggen
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eightstate
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,177 @@
1
+ Metadata-Version: 2.4
2
+ Name: eightstatecli
3
+ Version: 0.4.0
4
+ Summary: Eightstate CLI — unified AI services from the command line
5
+ Project-URL: Homepage, https://github.com/eight-state/eightstate
6
+ Project-URL: Repository, https://github.com/eight-state/eightstate
7
+ Author-email: Eightstate <hello@eightstate.co>
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: ai,cli,image-generation,research,transcription,web-search
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Software Development :: Libraries
17
+ Classifier: Topic :: Utilities
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: httpx>=0.24.0
20
+ Requires-Dist: openai>=1.0.0
21
+ Description-Content-Type: text/markdown
22
+
23
+ # escli
24
+
25
+ ```
26
+ ┌─────────────────────────────────┐
27
+ │ escli v0.3.1 │
28
+ │ eightstate command line │
29
+ └─────────────────────────────────┘
30
+ ```
31
+
32
+ AI services from the command line. Generate images, edit photos, and more. Works for humans and agents.
33
+
34
+ ## Install
35
+
36
+ ### macOS / Linux
37
+
38
+ ```bash
39
+ curl -fsSL https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.sh | bash
40
+ ```
41
+
42
+ ### Windows
43
+
44
+ ```powershell
45
+ irm https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.ps1 | iex
46
+ ```
47
+
48
+ ### Manual install (any platform)
49
+
50
+ ```bash
51
+ # requires uv (https://docs.astral.sh/uv)
52
+ uv tool install git+https://github.com/eight-state/eightstate#subdirectory=cli
53
+
54
+ # or with pip
55
+ pip install git+https://github.com/eight-state/eightstate#subdirectory=cli
56
+ ```
57
+
58
+ ## Quickstart
59
+
60
+ ```bash
61
+ # 1. authenticate
62
+ escli auth login
63
+
64
+ # 2. generate an image
65
+ escli image gen "a sunset over the ocean" --open
66
+
67
+ # 3. list models
68
+ escli models
69
+ ```
70
+
71
+ ## Usage
72
+
73
+ ### Image Generation
74
+
75
+ ```bash
76
+ escli i g "a mountain landscape" # square, auto-named
77
+ escli i g "app mockup" -s portrait -q high --open # portrait, opens after
78
+ escli i g "logo design" -s sq -o logo.png # named output
79
+ escli i g "wallpaper" -s wide -f webp # landscape webp
80
+ escli i g "product photo" -q high -d ./output/ # to directory
81
+ ```
82
+
83
+ ### Image Editing
84
+
85
+ ```bash
86
+ escli i e "make it snow" -i summer.jpg --open
87
+ escli i e "repaint as oil painting" -i photo.jpg -q high -o painted.png
88
+ escli i e "remove the background" -i product.png
89
+ ```
90
+
91
+ ### Sizes
92
+
93
+ | Alias | Dimensions | Use case |
94
+ |-------|-----------|----------|
95
+ | `square`, `sq` | 1024x1024 | Logos, icons, social posts |
96
+ | `landscape`, `wide`, `ls` | 1536x1024 | Wallpapers, banners, headers |
97
+ | `portrait`, `tall`, `port` | 1024x1536 | Phone mockups, posters, stories |
98
+
99
+ ### Quality
100
+
101
+ | Level | Speed | Detail |
102
+ |-------|-------|--------|
103
+ | `low` | ~15s | Fast drafts |
104
+ | `medium` | ~25s | Balanced |
105
+ | `high` | ~40s | Best quality |
106
+
107
+ ### Auth Profiles
108
+
109
+ ```bash
110
+ escli auth login # interactive
111
+ escli auth login --key sk-xxx # non-interactive
112
+ escli auth login --key sk-xxx -p work # named profile
113
+ escli auth status # show current (alias: whoami)
114
+ escli auth profiles # list all (alias: ls)
115
+ escli auth switch work # switch profile (alias: use)
116
+ escli auth logout # remove current
117
+ escli auth logout --all # remove everything
118
+ ```
119
+
120
+ ## Agent / CI Usage
121
+
122
+ All commands support `--json` for structured output and `--quiet` for zero stderr noise:
123
+
124
+ ```bash
125
+ # generate with pure JSON output
126
+ escli --json --quiet i g "a logo" -s sq -o /tmp/logo.png
127
+
128
+ # returns:
129
+ # {"success": true, "path": "/abs/path/logo.png", "size_bytes": 123456,
130
+ # "elapsed_seconds": 18.4, "prompt": "a logo", "model": "gpt-image-2",
131
+ # "image_size": "1024x1024", "quality": "high"}
132
+
133
+ # auth via env var (no login needed)
134
+ ESCLI_API_KEY=sk-xxx escli --json models
135
+
136
+ # non-interactive login for CI
137
+ escli auth login --key $API_KEY --profile ci
138
+
139
+ # edit with JSON output
140
+ escli --json --quiet i e "make it blue" -i input.png -o output.png
141
+ # {"success": true, "path": "/abs/path/output.png", "input": "/abs/path/input.png", ...}
142
+ ```
143
+
144
+ **Exit codes:** `0` success, `1` error, `2` usage
145
+
146
+ **Error JSON:** `{"success": false, "error": "message"}`
147
+
148
+ ## Shortcuts
149
+
150
+ | Short | Full |
151
+ |-------|------|
152
+ | `escli i g` | `escli image generate` |
153
+ | `escli i e` | `escli image edit` |
154
+ | `escli a` | `escli auth` |
155
+ | `escli m` | `escli models` |
156
+
157
+ ## Environment Variables
158
+
159
+ | Variable | Description | Default |
160
+ |----------|-------------|---------|
161
+ | `ESCLI_API_KEY` | API key (overrides profile) | |
162
+ | `ESCLI_BASE_URL` | API endpoint | `https://ai.eightstate.co/v1` |
163
+ | `ESCLI_IMAGE_MODEL` | Default model | `gpt-image-2` |
164
+ | `ESCLI_IMAGE_QUALITY` | Default quality | `high` |
165
+ | `ESCLI_IMAGE_SIZE` | Default size | `1024x1024` |
166
+ | `ESCLI_IMAGE_FORMAT` | Default format | `png` |
167
+ | `ESCLI_OUT_DIR` | Output directory | `.` |
168
+ | `ESCLI_TIMEOUT` | Timeout seconds | `300` |
169
+ | `ESCLI_CONFIG_DIR` | Config directory | `~/.escli` |
170
+
171
+ ## Config
172
+
173
+ Credentials stored at `~/.escli/config.json` with `600` permissions (owner-only read/write).
174
+
175
+ ## License
176
+
177
+ MIT
@@ -0,0 +1,155 @@
1
+ # escli
2
+
3
+ ```
4
+ ┌─────────────────────────────────┐
5
+ │ escli v0.3.1 │
6
+ │ eightstate command line │
7
+ └─────────────────────────────────┘
8
+ ```
9
+
10
+ AI services from the command line. Generate images, edit photos, and more. Works for humans and agents.
11
+
12
+ ## Install
13
+
14
+ ### macOS / Linux
15
+
16
+ ```bash
17
+ curl -fsSL https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.sh | bash
18
+ ```
19
+
20
+ ### Windows
21
+
22
+ ```powershell
23
+ irm https://raw.githubusercontent.com/eight-state/eightstate/main/cli/install.ps1 | iex
24
+ ```
25
+
26
+ ### Manual install (any platform)
27
+
28
+ ```bash
29
+ # requires uv (https://docs.astral.sh/uv)
30
+ uv tool install git+https://github.com/eight-state/eightstate#subdirectory=cli
31
+
32
+ # or with pip
33
+ pip install git+https://github.com/eight-state/eightstate#subdirectory=cli
34
+ ```
35
+
36
+ ## Quickstart
37
+
38
+ ```bash
39
+ # 1. authenticate
40
+ escli auth login
41
+
42
+ # 2. generate an image
43
+ escli image gen "a sunset over the ocean" --open
44
+
45
+ # 3. list models
46
+ escli models
47
+ ```
48
+
49
+ ## Usage
50
+
51
+ ### Image Generation
52
+
53
+ ```bash
54
+ escli i g "a mountain landscape" # square, auto-named
55
+ escli i g "app mockup" -s portrait -q high --open # portrait, opens after
56
+ escli i g "logo design" -s sq -o logo.png # named output
57
+ escli i g "wallpaper" -s wide -f webp # landscape webp
58
+ escli i g "product photo" -q high -d ./output/ # to directory
59
+ ```
60
+
61
+ ### Image Editing
62
+
63
+ ```bash
64
+ escli i e "make it snow" -i summer.jpg --open
65
+ escli i e "repaint as oil painting" -i photo.jpg -q high -o painted.png
66
+ escli i e "remove the background" -i product.png
67
+ ```
68
+
69
+ ### Sizes
70
+
71
+ | Alias | Dimensions | Use case |
72
+ |-------|-----------|----------|
73
+ | `square`, `sq` | 1024x1024 | Logos, icons, social posts |
74
+ | `landscape`, `wide`, `ls` | 1536x1024 | Wallpapers, banners, headers |
75
+ | `portrait`, `tall`, `port` | 1024x1536 | Phone mockups, posters, stories |
76
+
77
+ ### Quality
78
+
79
+ | Level | Speed | Detail |
80
+ |-------|-------|--------|
81
+ | `low` | ~15s | Fast drafts |
82
+ | `medium` | ~25s | Balanced |
83
+ | `high` | ~40s | Best quality |
84
+
85
+ ### Auth Profiles
86
+
87
+ ```bash
88
+ escli auth login # interactive
89
+ escli auth login --key sk-xxx # non-interactive
90
+ escli auth login --key sk-xxx -p work # named profile
91
+ escli auth status # show current (alias: whoami)
92
+ escli auth profiles # list all (alias: ls)
93
+ escli auth switch work # switch profile (alias: use)
94
+ escli auth logout # remove current
95
+ escli auth logout --all # remove everything
96
+ ```
97
+
98
+ ## Agent / CI Usage
99
+
100
+ All commands support `--json` for structured output and `--quiet` for zero stderr noise:
101
+
102
+ ```bash
103
+ # generate with pure JSON output
104
+ escli --json --quiet i g "a logo" -s sq -o /tmp/logo.png
105
+
106
+ # returns:
107
+ # {"success": true, "path": "/abs/path/logo.png", "size_bytes": 123456,
108
+ # "elapsed_seconds": 18.4, "prompt": "a logo", "model": "gpt-image-2",
109
+ # "image_size": "1024x1024", "quality": "high"}
110
+
111
+ # auth via env var (no login needed)
112
+ ESCLI_API_KEY=sk-xxx escli --json models
113
+
114
+ # non-interactive login for CI
115
+ escli auth login --key $API_KEY --profile ci
116
+
117
+ # edit with JSON output
118
+ escli --json --quiet i e "make it blue" -i input.png -o output.png
119
+ # {"success": true, "path": "/abs/path/output.png", "input": "/abs/path/input.png", ...}
120
+ ```
121
+
122
+ **Exit codes:** `0` success, `1` error, `2` usage
123
+
124
+ **Error JSON:** `{"success": false, "error": "message"}`
125
+
126
+ ## Shortcuts
127
+
128
+ | Short | Full |
129
+ |-------|------|
130
+ | `escli i g` | `escli image generate` |
131
+ | `escli i e` | `escli image edit` |
132
+ | `escli a` | `escli auth` |
133
+ | `escli m` | `escli models` |
134
+
135
+ ## Environment Variables
136
+
137
+ | Variable | Description | Default |
138
+ |----------|-------------|---------|
139
+ | `ESCLI_API_KEY` | API key (overrides profile) | |
140
+ | `ESCLI_BASE_URL` | API endpoint | `https://ai.eightstate.co/v1` |
141
+ | `ESCLI_IMAGE_MODEL` | Default model | `gpt-image-2` |
142
+ | `ESCLI_IMAGE_QUALITY` | Default quality | `high` |
143
+ | `ESCLI_IMAGE_SIZE` | Default size | `1024x1024` |
144
+ | `ESCLI_IMAGE_FORMAT` | Default format | `png` |
145
+ | `ESCLI_OUT_DIR` | Output directory | `.` |
146
+ | `ESCLI_TIMEOUT` | Timeout seconds | `300` |
147
+ | `ESCLI_CONFIG_DIR` | Config directory | `~/.escli` |
148
+
149
+ ## Config
150
+
151
+ Credentials stored at `~/.escli/config.json` with `600` permissions (owner-only read/write).
152
+
153
+ ## License
154
+
155
+ MIT
@@ -0,0 +1,39 @@
1
+ [project]
2
+ name = "eightstatecli"
3
+ version = "0.4.0"
4
+ description = "Eightstate CLI — unified AI services from the command line"
5
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ license = "MIT"
8
+ authors = [{ name = "Eightstate", email = "hello@eightstate.co" }]
9
+ keywords = ["cli", "ai", "image-generation", "transcription", "web-search", "research"]
10
+ classifiers = [
11
+ "Development Status :: 4 - Beta",
12
+ "Environment :: Console",
13
+ "Intended Audience :: Developers",
14
+ "License :: OSI Approved :: MIT License",
15
+ "Programming Language :: Python :: 3",
16
+ "Topic :: Software Development :: Libraries",
17
+ "Topic :: Utilities",
18
+ ]
19
+ dependencies = [
20
+ "openai>=1.0.0",
21
+ "httpx>=0.24.0",
22
+ ]
23
+
24
+ [project.urls]
25
+ Homepage = "https://github.com/eight-state/eightstate"
26
+ Repository = "https://github.com/eight-state/eightstate"
27
+
28
+ [project.scripts]
29
+ escli = "escli:main"
30
+
31
+ [build-system]
32
+ requires = ["hatchling"]
33
+ build-backend = "hatchling.build"
34
+
35
+ [tool.hatch.build.targets.wheel]
36
+ packages = ["src/escli"]
37
+
38
+ [tool.hatch.build.targets.sdist]
39
+ include = ["src/escli"]