appshot-cli 0.9.1 → 1.0.0
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.
- package/README.md +208 -98
- package/dist/cli.js +6 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +9 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/frame.d.ts.map +1 -1
- package/dist/commands/frame.js +11 -2
- package/dist/commands/frame.js.map +1 -1
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +19 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/skill.d.ts +3 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +119 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/core/compose.d.ts +1 -0
- package/dist/core/compose.d.ts.map +1 -1
- package/dist/core/compose.js +85 -140
- package/dist/core/compose.js.map +1 -1
- package/dist/core/layout-utils.d.ts +12 -0
- package/dist/core/layout-utils.d.ts.map +1 -0
- package/dist/core/layout-utils.js +28 -0
- package/dist/core/layout-utils.js.map +1 -0
- package/dist/core/text-utils.d.ts +1 -1
- package/dist/core/text-utils.d.ts.map +1 -1
- package/dist/core/text-utils.js +5 -9
- package/dist/core/text-utils.js.map +1 -1
- package/dist/mcp/cli-options.d.ts +112 -0
- package/dist/mcp/cli-options.d.ts.map +1 -0
- package/dist/mcp/cli-options.js +158 -0
- package/dist/mcp/cli-options.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +1149 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/services/doctor.d.ts.map +1 -1
- package/dist/services/doctor.js +2 -1
- package/dist/services/doctor.js.map +1 -1
- package/dist/templates/registry.d.ts.map +1 -1
- package/dist/templates/registry.js +49 -159
- package/dist/templates/registry.js.map +1 -1
- package/dist/utils/filename-caption.d.ts +9 -0
- package/dist/utils/filename-caption.d.ts.map +1 -0
- package/dist/utils/filename-caption.js +19 -0
- package/dist/utils/filename-caption.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +7 -4
- package/skill/SKILL.md +225 -0
- package/skill/references/fonts.md +55 -0
- package/skill/references/gradients.md +69 -0
- package/skill/references/templates.md +170 -0
- package/skill/references/troubleshooting.md +228 -0
package/README.md
CHANGED
|
@@ -10,37 +10,18 @@
|
|
|
10
10
|
[](https://nodejs.org)
|
|
11
11
|
[](https://opensource.org/licenses/MIT)
|
|
12
12
|
|
|
13
|
-
🆕 **Version 0.
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
17
|
-
- **
|
|
18
|
-
- **
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **Dry Run Mode**: Preview export operations with `--dry-run`
|
|
26
|
-
|
|
27
|
-
**Version 0.9.0** - **Professional Template System & Enhanced Positioning**
|
|
28
|
-
- **Quick Start**: New `appshot quickstart` command for instant setup with templates
|
|
29
|
-
- **Templates**: 8 professional templates (modern, minimal, bold, elegant, showcase, playful, corporate, nerdy)
|
|
30
|
-
- **One Command Setup**: Apply complete visual styles with `appshot template <name>`
|
|
31
|
-
- **Smart Defaults**: Each template includes optimized settings for all devices
|
|
32
|
-
- **Caption Integration**: Templates can include captions directly with `--caption`
|
|
33
|
-
- **Vertical Alignment**: Pin caption text to top or center within the caption box
|
|
34
|
-
- **Side Margins**: Control caption box width with `sideMargin` (unified wrapping calculation)
|
|
35
|
-
- **Outer Margins**: Add spacing with `marginTop`/`marginBottom` for better visual balance
|
|
36
|
-
- **Apple Watch Fix**: Resolved positioning bug allowing proper framePosition control
|
|
37
|
-
- **Exact Width Parity**: Caption wrapping now identical between preview and final render
|
|
38
|
-
- **Template Samples Overhaul**: Local-only gallery with consolidated generator. Run `npm run samples` to regenerate all 8 presets across iPhone, iPad, Watch, and Mac. Gallery assets now live under `template-samples/gallery/` and the samples page matches the appshot.sh look (including ASCII header).
|
|
39
|
-
|
|
40
|
-
> Note on layout changes (0.9.0): This release refines caption placement rules.
|
|
41
|
-
> - Overlay captions are anchored by the bottom of the entire caption box (padding/border included), and `0` values are respected.
|
|
42
|
-
> - Above/Below captions enforce a minimum optical clearance from the device and stay fully on‑canvas. In pathological cases where device + caption don’t fit, the engine adapts placement so order is preserved.
|
|
43
|
-
> - Visual results may differ compared to 0.8.x when captions were near device edges. Adjust `marginTop` (below) / `marginBottom` (above) or `frameScale`/`framePosition` for fine‑tuning.
|
|
13
|
+
🆕 **Version 1.0.0** - **MCP Server & Agent-First Architecture**
|
|
14
|
+
- **MCP Server**: Full Model Context Protocol support for AI agents (Claude Desktop, Claude Code, etc.)
|
|
15
|
+
- **17 MCP Tools**: Complete coverage - init, build, captions, gradients, backgrounds, fonts, config, validate, specs, doctor, presets, localize, languages, frame, export, clean, projectInfo
|
|
16
|
+
- **Claude Code Skill**: Install with `appshot skill` - includes templates, troubleshooting guides
|
|
17
|
+
- **Auto-Caption**: Generate captions from filenames with `--auto-caption` or MCP `action: "auto"`
|
|
18
|
+
- **Direct Tool Access**: Agents can manage entire screenshot workflows without shell access
|
|
19
|
+
|
|
20
|
+
**Version 0.9.x** - **Layout Engine, Templates & Fastlane**
|
|
21
|
+
- **Fastlane Export**: Seamless integration with `appshot export` and screenshot ordering
|
|
22
|
+
- **8 Professional Templates**: modern, minimal, bold, elegant, showcase, playful, corporate, nerdy
|
|
23
|
+
- **Unified Layout Engine**: Single planner for all caption/device combinations
|
|
24
|
+
- **Safety Insets**: Automatic 40px protection for App Store cropping
|
|
44
25
|
|
|
45
26
|
## 📖 Table of Contents
|
|
46
27
|
|
|
@@ -50,7 +31,7 @@
|
|
|
50
31
|
- [Prerequisites](#prerequisites)
|
|
51
32
|
- [Installation](#installation)
|
|
52
33
|
- [Your First Screenshot](#your-first-screenshot)
|
|
53
|
-
- [
|
|
34
|
+
- [MCP Server & Agent Integration](#-mcp-server--agent-integration)
|
|
54
35
|
- [Core Concepts](#-core-concepts)
|
|
55
36
|
- [Visual Customization](#-visual-customization)
|
|
56
37
|
- [Gradient System](#gradient-system)
|
|
@@ -216,81 +197,136 @@ final/
|
|
|
216
197
|
└── dashboard.png # 2048×2732 iPad Pro screenshot
|
|
217
198
|
```
|
|
218
199
|
|
|
219
|
-
## 🤖
|
|
200
|
+
## 🤖 MCP Server & Agent Integration
|
|
220
201
|
|
|
221
|
-
Appshot
|
|
202
|
+
Appshot provides a full Model Context Protocol (MCP) server, enabling AI agents like Claude Desktop and Claude Code to manage screenshot workflows directly through tool calls.
|
|
222
203
|
|
|
223
|
-
###
|
|
204
|
+
### Installation
|
|
224
205
|
|
|
225
|
-
|
|
206
|
+
**Claude Code** (recommended):
|
|
207
|
+
```bash
|
|
208
|
+
# Add the MCP server
|
|
209
|
+
claude mcp add appshot-mcp appshot mcp
|
|
226
210
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
- `/appshot-caption` - Manage captions and translations
|
|
231
|
-
- `/appshot-build` - Build screenshots with troubleshooting
|
|
232
|
-
- `/appshot-config` - Complete configuration reference
|
|
233
|
-
- `/appshot-quick` - Quick reference for common tasks
|
|
211
|
+
# Verify it's connected
|
|
212
|
+
claude mcp list
|
|
213
|
+
```
|
|
234
214
|
|
|
235
|
-
|
|
215
|
+
**Claude Desktop** (macOS):
|
|
236
216
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
217
|
+
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"mcpServers": {
|
|
221
|
+
"appshot": {
|
|
222
|
+
"command": "appshot",
|
|
223
|
+
"args": ["mcp"]
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
```
|
|
241
228
|
|
|
242
|
-
|
|
243
|
-
cd node_modules/appshot-cli
|
|
244
|
-
./commands/install.sh
|
|
229
|
+
> **Note:** Claude Desktop MCP support is experimental and may have issues. Claude Code is the recommended integration.
|
|
245
230
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
231
|
+
### Available MCP Tools
|
|
232
|
+
|
|
233
|
+
| Tool | Description |
|
|
234
|
+
|------|-------------|
|
|
235
|
+
| `appshot.projectInfo` | Get project metadata (devices, languages, config) |
|
|
236
|
+
| `appshot.init` | Initialize new project structure |
|
|
237
|
+
| `appshot.build` | Generate final screenshots |
|
|
238
|
+
| `appshot.frame` | Apply device frames only (transparent background) |
|
|
239
|
+
| `appshot.captions` | Read/write caption text, auto-generate from filenames |
|
|
240
|
+
| `appshot.gradients` | List/apply gradient presets |
|
|
241
|
+
| `appshot.backgrounds` | Configure background images |
|
|
242
|
+
| `appshot.fonts` | List/validate available fonts |
|
|
243
|
+
| `appshot.config` | Modify device-specific settings |
|
|
244
|
+
| `appshot.validate` | Check App Store compliance |
|
|
245
|
+
| `appshot.specs` | View App Store specifications |
|
|
246
|
+
| `appshot.doctor` | Run system diagnostics |
|
|
247
|
+
| `appshot.presets` | Manage App Store presets |
|
|
248
|
+
| `appshot.localize` | AI-powered caption translation |
|
|
249
|
+
| `appshot.languages` | Discover available translations |
|
|
250
|
+
| `appshot.export` | Export for Fastlane |
|
|
251
|
+
| `appshot.clean` | Remove generated files |
|
|
250
252
|
|
|
251
|
-
###
|
|
253
|
+
### Example: Agent Workflow
|
|
252
254
|
|
|
253
|
-
|
|
255
|
+
```
|
|
256
|
+
Agent: I'll set up your App Store screenshots.
|
|
254
257
|
|
|
255
|
-
1.
|
|
256
|
-
2.
|
|
257
|
-
3.
|
|
258
|
-
|
|
258
|
+
1. appshot.init with force: true
|
|
259
|
+
2. appshot.gradients with action: "apply", preset: "ocean"
|
|
260
|
+
3. appshot.captions with device: "iphone", action: "set",
|
|
261
|
+
filename: "home.png", caption: "Welcome Home"
|
|
262
|
+
4. appshot.build with devices: ["iphone"]
|
|
263
|
+
5. appshot.validate
|
|
259
264
|
|
|
260
|
-
|
|
265
|
+
✓ Screenshots ready in final/iphone/en/
|
|
266
|
+
```
|
|
261
267
|
|
|
268
|
+
**Auto-Caption Workflow** (generate captions from filenames):
|
|
262
269
|
```
|
|
263
|
-
|
|
270
|
+
1. appshot.init with force: true
|
|
271
|
+
2. appshot.template with template: "modern"
|
|
272
|
+
3. appshot.captions with device: "iphone", action: "auto"
|
|
273
|
+
4. appshot.build with devices: ["iphone"]
|
|
264
274
|
|
|
265
|
-
|
|
266
|
-
|
|
275
|
+
✓ Captions auto-generated: "home-screen.png" → "Home Screen"
|
|
276
|
+
```
|
|
267
277
|
|
|
268
|
-
|
|
278
|
+
### Claude Code Skill
|
|
269
279
|
|
|
270
|
-
|
|
271
|
-
"input": "./screenshots/watch",
|
|
272
|
-
"resolution": "410x502",
|
|
273
|
-
"autoFrame": true
|
|
274
|
-
}
|
|
280
|
+
For Claude Code users, install the appshot skill for guided workflows:
|
|
275
281
|
|
|
276
|
-
|
|
277
|
-
|
|
282
|
+
```bash
|
|
283
|
+
# Install skill to ~/.claude/skills/appshot/
|
|
284
|
+
appshot skill
|
|
285
|
+
|
|
286
|
+
# Update existing installation
|
|
287
|
+
appshot skill --force
|
|
288
|
+
|
|
289
|
+
# Uninstall
|
|
290
|
+
appshot skill --uninstall
|
|
278
291
|
```
|
|
279
292
|
|
|
280
|
-
|
|
293
|
+
The skill provides:
|
|
294
|
+
- Project workflow guidance (init → captions → styling → build)
|
|
295
|
+
- Template recommendations by app type (dev tools → nerdy, business → corporate)
|
|
296
|
+
- Troubleshooting guide for common errors
|
|
297
|
+
- Reference files for all 24 gradients, 10 fonts, and 8 templates
|
|
298
|
+
|
|
299
|
+
### Agent-Friendly Features
|
|
300
|
+
|
|
301
|
+
- **Structured Output**: All tools return JSON for easy parsing
|
|
302
|
+
- **No Interactive Prompts**: Full automation without user input
|
|
303
|
+
- **Predictable Commands**: Consistent tool interfaces
|
|
304
|
+
- **Complete Coverage**: Every CLI feature available as MCP tool
|
|
305
|
+
|
|
306
|
+
### Claude Desktop: Not Yet Supported
|
|
307
|
+
|
|
308
|
+
> ⚠️ **Note**: Claude Desktop MCP integration is not currently working reliably. We recommend using **Claude Code** for the best experience with appshot's MCP tools.
|
|
309
|
+
|
|
310
|
+
**Known Issues with Claude Desktop:**
|
|
311
|
+
|
|
312
|
+
1. **Working Directory**: Claude Desktop runs MCP servers from the user's home directory, causing path resolution issues.
|
|
281
313
|
|
|
282
|
-
|
|
283
|
-
- **No Lookups Required**: Commands work without external documentation
|
|
284
|
-
- **Agent-Friendly**: Non-interactive commands for full automation
|
|
285
|
-
- **Complete Examples**: Real-world configurations and workflows
|
|
286
|
-
- **Troubleshooting**: Built-in solutions for common issues
|
|
314
|
+
2. **Tool Availability**: MCP tools may not appear or function correctly in Claude Desktop's interface.
|
|
287
315
|
|
|
288
|
-
|
|
316
|
+
3. **Server Lifecycle**: The MCP server connection is unstable and may require frequent restarts.
|
|
289
317
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
318
|
+
**Recommended Alternative:**
|
|
319
|
+
|
|
320
|
+
Use **Claude Code** with the appshot skill for reliable agent integration:
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
# Install the skill
|
|
324
|
+
appshot skill
|
|
325
|
+
|
|
326
|
+
# Claude Code will now have access to appshot documentation and workflows
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
We're working with Anthropic to resolve Claude Desktop compatibility issues.
|
|
294
330
|
|
|
295
331
|
## 📘 Core Concepts
|
|
296
332
|
|
|
@@ -959,6 +995,14 @@ appshot style --device iphone
|
|
|
959
995
|
}
|
|
960
996
|
```
|
|
961
997
|
|
|
998
|
+
#### Safe Layout Defaults (NEW in v0.9.2)
|
|
999
|
+
|
|
1000
|
+
- **40 px Safety Insets** automatically pad the top/bottom of every canvas so captions survive App Store rounding—no manual margins required.
|
|
1001
|
+
- **48 px Above / 36 px Below Gaps** keep the caption box visually detached from the device; override with `caption.box.marginTop` only if you truly need a different gap.
|
|
1002
|
+
- **Bottom breathing room**: Increase `caption.box.marginBottom` per device (e.g., 80 px for iPad, 140 px for MacBook) whenever App Store Connect crops the screenshot bottom edge; the planner pushes the device up while keeping captions pinned.
|
|
1003
|
+
- **Templates Only Style**: Built-in presets now just set fonts/colors; spacing always comes from the planner, so switching templates won’t break compliance.
|
|
1004
|
+
- **Verbose Metrics**: Run `appshot build --dry-run --verbose` to see `Insets`, `Caption gap`, and `Overlay bottom spacing` lines for each device, then tweak the per-device `captionBox` margins without touching the template math.
|
|
1005
|
+
|
|
962
1006
|
#### Caption Styling (Enhanced in v0.8.7)
|
|
963
1007
|
|
|
964
1008
|
Create professional captions with customizable backgrounds and borders:
|
|
@@ -1326,7 +1370,7 @@ iPad Pro 12.9" (3rd gen) screenshots are automatically renamed with the `IPAD_PR
|
|
|
1326
1370
|
- **CI/CD**: Use `--copy` for portable archives
|
|
1327
1371
|
- **Clean**: Use `--clean` to remove old exports before creating new ones
|
|
1328
1372
|
|
|
1329
|
-
### Screenshot Ordering
|
|
1373
|
+
### Screenshot Ordering
|
|
1330
1374
|
|
|
1331
1375
|
> **📌 Important Discovery**: Fastlane uploads screenshots in alphabetical order by filename. Without explicit ordering, your carefully arranged screenshots may appear in the wrong sequence on the App Store!
|
|
1332
1376
|
|
|
@@ -1378,7 +1422,7 @@ EOF
|
|
|
1378
1422
|
#### 1. Nested Directory Limitations
|
|
1379
1423
|
**Problem**: Fastlane's `deliver` command struggles with nested device directories inside language folders.
|
|
1380
1424
|
|
|
1381
|
-
**Solution**: Appshot
|
|
1425
|
+
**Solution**: Appshot automatically flattens the structure during export:
|
|
1382
1426
|
```bash
|
|
1383
1427
|
# Appshot structure (nested):
|
|
1384
1428
|
final/iphone/en/home.png →
|
|
@@ -1648,6 +1692,7 @@ appshot build [options]
|
|
|
1648
1692
|
- `--no-frame` - Skip device frames
|
|
1649
1693
|
- `--no-gradient` - Skip gradient backgrounds
|
|
1650
1694
|
- `--no-caption` - Skip captions
|
|
1695
|
+
- `--auto-caption` - Generate captions from filenames when none exist
|
|
1651
1696
|
|
|
1652
1697
|
**Language Detection:**
|
|
1653
1698
|
When `--langs` is not specified, appshot automatically determines languages in this order:
|
|
@@ -1675,6 +1720,9 @@ appshot build --dry-run
|
|
|
1675
1720
|
|
|
1676
1721
|
# Verbose mode for debugging
|
|
1677
1722
|
appshot build --verbose --devices iphone
|
|
1723
|
+
|
|
1724
|
+
# Auto-generate captions from filenames
|
|
1725
|
+
appshot build --auto-caption --devices iphone
|
|
1678
1726
|
```
|
|
1679
1727
|
|
|
1680
1728
|
**Exit Codes:**
|
|
@@ -1889,6 +1937,7 @@ appshot frame <input> [options]
|
|
|
1889
1937
|
- `--suffix <text>` - Filename suffix when not overwriting (default: "-framed")
|
|
1890
1938
|
- `--overwrite` - Overwrite original file name
|
|
1891
1939
|
- `--dry-run` - Preview files without processing
|
|
1940
|
+
- `--frame-tone <tone>` - Frame color treatment (`original` | `neutral`)
|
|
1892
1941
|
- `--verbose` - Show detailed information
|
|
1893
1942
|
|
|
1894
1943
|
**Features:**
|
|
@@ -1917,8 +1966,71 @@ appshot frame ./screenshots --dry-run --verbose
|
|
|
1917
1966
|
|
|
1918
1967
|
# JPEG output (white background)
|
|
1919
1968
|
appshot frame screenshot.png --format jpeg
|
|
1969
|
+
|
|
1970
|
+
# Generate neutral (desaturated) device frames
|
|
1971
|
+
appshot frame screenshot.png --frame-tone neutral
|
|
1920
1972
|
```
|
|
1921
1973
|
|
|
1974
|
+
### `appshot mcp`
|
|
1975
|
+
|
|
1976
|
+
Start the Model Context Protocol (MCP) server for AI agent integration. Enables Claude Desktop, Claude Code, and other MCP-compatible agents to control appshot directly.
|
|
1977
|
+
|
|
1978
|
+
```bash
|
|
1979
|
+
appshot mcp [options]
|
|
1980
|
+
```
|
|
1981
|
+
|
|
1982
|
+
**Options:**
|
|
1983
|
+
- `--stdio` - Use stdio transport (default)
|
|
1984
|
+
|
|
1985
|
+
**Usage:**
|
|
1986
|
+
Register in Claude Desktop's config to enable AI-powered screenshot workflows. See [MCP Server & Agent Integration](#-mcp-server--agent-integration) for setup details.
|
|
1987
|
+
|
|
1988
|
+
```bash
|
|
1989
|
+
appshot mcp
|
|
1990
|
+
```
|
|
1991
|
+
|
|
1992
|
+
**Tools exposed:**
|
|
1993
|
+
|
|
1994
|
+
- `appshot.projectInfo` – Returns `appshot.json` metadata (devices, languages, templates).
|
|
1995
|
+
- `appshot.doctor` – Runs diagnostics and returns console output.
|
|
1996
|
+
- `appshot.build` – Wraps `appshot build` with options for devices, languages, and rendering flags.
|
|
1997
|
+
- `appshot.frame` – Batch frames screenshots (including `--frame-tone neutral` support).
|
|
1998
|
+
- `appshot.export` – Runs the Fastlane export pipeline.
|
|
1999
|
+
|
|
2000
|
+
The server uses the stdio transport, so you can register it in Anthropic Desktop by pointing at `appshot mcp` (working directory = your Appshot project). The same entry point works for any MCP-compatible agent or automation.
|
|
2001
|
+
|
|
2002
|
+
### `appshot skill`
|
|
2003
|
+
|
|
2004
|
+
Install the appshot skill for Claude Code. The skill provides workflow guidance, template recommendations, and troubleshooting help.
|
|
2005
|
+
|
|
2006
|
+
```bash
|
|
2007
|
+
appshot skill [options]
|
|
2008
|
+
```
|
|
2009
|
+
|
|
2010
|
+
**Options:**
|
|
2011
|
+
- `--force` - Overwrite existing installation
|
|
2012
|
+
- `--uninstall` - Remove the skill
|
|
2013
|
+
- `--path <dir>` - Custom installation path
|
|
2014
|
+
|
|
2015
|
+
**Examples:**
|
|
2016
|
+
```bash
|
|
2017
|
+
# Install skill to ~/.claude/skills/appshot/
|
|
2018
|
+
appshot skill
|
|
2019
|
+
|
|
2020
|
+
# Update existing installation
|
|
2021
|
+
appshot skill --force
|
|
2022
|
+
|
|
2023
|
+
# Uninstall
|
|
2024
|
+
appshot skill --uninstall
|
|
2025
|
+
```
|
|
2026
|
+
|
|
2027
|
+
**Skill contents:**
|
|
2028
|
+
- `SKILL.md` - Main documentation with workflows and scenarios
|
|
2029
|
+
- `references/templates.md` - All 8 templates with recommendations by app type
|
|
2030
|
+
- `references/gradients.md` - All 24 gradient presets with colors
|
|
2031
|
+
- `references/fonts.md` - All 10 embedded font families
|
|
2032
|
+
- `references/troubleshooting.md` - Common errors and solutions
|
|
2033
|
+
|
|
1922
2034
|
### `appshot device` (macOS only)
|
|
1923
2035
|
|
|
1924
2036
|
Capture screenshots from iOS simulators.
|
|
@@ -2930,24 +3042,22 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
|
2930
3042
|
- [x] AI-Powered Translations (GPT-4o, GPT-5, o1, o3)
|
|
2931
3043
|
- [x] Comprehensive Font System (v0.4.0)
|
|
2932
3044
|
- [x] Frame-Only Mode (v0.8.0)
|
|
3045
|
+
- [x] MCP Server with 17 tools (v1.0.0)
|
|
3046
|
+
- [x] Claude Code Skill (v1.0.0)
|
|
3047
|
+
- [x] Fastlane Export Integration (v0.9.1)
|
|
3048
|
+
- [x] Professional Template System (v0.9.0)
|
|
3049
|
+
- [x] Auto-Caption from Filenames (v0.9.2)
|
|
2933
3050
|
|
|
2934
3051
|
### In Progress 🚧
|
|
2935
|
-
- [ ] MCP
|
|
2936
|
-
- [ ]
|
|
3052
|
+
- [ ] Claude Desktop MCP compatibility
|
|
3053
|
+
- [ ] Android Device Support (Google Play Store)
|
|
2937
3054
|
|
|
2938
3055
|
### Planned 📋
|
|
2939
|
-
- [ ] Fastlane Integration Plugin
|
|
2940
3056
|
- [ ] GitHub Actions Marketplace Action
|
|
2941
3057
|
- [ ] CI/CD Templates (Jenkins, GitLab CI, CircleCI)
|
|
2942
|
-
- [ ]
|
|
2943
|
-
- [ ] Screenshot Templates System
|
|
2944
|
-
- [ ] Android Device Support (Google Play Store)
|
|
2945
|
-
- [ ] Batch Config Files
|
|
2946
|
-
- [ ] Screenshot Validation API
|
|
2947
|
-
- [ ] Auto-Caption Generation (AI-powered)
|
|
2948
|
-
- [ ] Smart Frame Detection (ML-based)
|
|
2949
|
-
- [ ] Pipeline Mode
|
|
3058
|
+
- [ ] AI-Powered Caption Enhancement
|
|
2950
3059
|
- [ ] WebP/AVIF Support
|
|
3060
|
+
- [ ] Screenshot A/B Testing Framework
|
|
2951
3061
|
- [ ] Differential Builds
|
|
2952
3062
|
- [ ] Screenshot A/B Testing Framework
|
|
2953
3063
|
|
|
@@ -2971,7 +3081,7 @@ For security vulnerabilities, please see [SECURITY.md](SECURITY.md).
|
|
|
2971
3081
|
### NPM Package
|
|
2972
3082
|
|
|
2973
3083
|
- 📦 [appshot-cli on NPM](https://www.npmjs.com/package/appshot-cli)
|
|
2974
|
-
- 🔄 Latest version: 0.
|
|
3084
|
+
- 🔄 Latest version: 1.0.0
|
|
2975
3085
|
|
|
2976
3086
|
---
|
|
2977
3087
|
|
package/dist/cli.js
CHANGED
|
@@ -26,6 +26,9 @@ import quickstartCmd from './commands/quickstart.js';
|
|
|
26
26
|
import presetCmd from './commands/preset.js';
|
|
27
27
|
import exportCmd from './commands/export.js';
|
|
28
28
|
import orderCmd from './commands/order.js';
|
|
29
|
+
import mcpCmd from './commands/mcp.js';
|
|
30
|
+
import skillCmd from './commands/skill.js';
|
|
31
|
+
import { APP_VERSION } from './version.js';
|
|
29
32
|
const program = new Command();
|
|
30
33
|
const logo = String.raw ` _ _ _
|
|
31
34
|
/ \ _ __ _ __ ___| |__ ___ | |_
|
|
@@ -67,7 +70,7 @@ ${pc.bold('Common Workflows:')}
|
|
|
67
70
|
$ appshot watch start --process # Auto-process new screenshots` : ''}
|
|
68
71
|
|
|
69
72
|
${pc.dim('Docs: https://github.com/chrisvanbuskirk/appshot')}`)
|
|
70
|
-
.version(
|
|
73
|
+
.version(APP_VERSION)
|
|
71
74
|
.addHelpText('after', `\n${pc.bold('Environment Variables:')}
|
|
72
75
|
OPENAI_API_KEY API key for translation features
|
|
73
76
|
APPSHOT_DISABLE_FONT_SCAN Skip system font detection (CI optimization)
|
|
@@ -92,6 +95,8 @@ program.addCommand(buildCmd());
|
|
|
92
95
|
program.addCommand(frameCmd());
|
|
93
96
|
program.addCommand(orderCmd());
|
|
94
97
|
program.addCommand(exportCmd());
|
|
98
|
+
program.addCommand(mcpCmd());
|
|
99
|
+
program.addCommand(skillCmd());
|
|
95
100
|
// Add device and watch commands only on macOS
|
|
96
101
|
if (platform() === 'darwin') {
|
|
97
102
|
program.addCommand(deviceCmd());
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,YAAY,MAAM,yBAAyB,CAAC;AACnD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,aAAa,MAAM,0BAA0B,CAAC;AACrD,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAC7C,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAE3C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;6CAKsB,CAAC;AAE9C,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;;;;EAI7B,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;;;EAUpB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;EAMvB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;;;;;gEAOkC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC;;6EAEb,CAAC,CAAC,CAAC,EAAE;;EAEhF,EAAE,CAAC,GAAG,CAAC,kDAAkD,CAAC,EAAE,CAAC;KAC5D,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YAuX/B"}
|
package/dist/commands/build.js
CHANGED
|
@@ -7,6 +7,7 @@ import { loadConfig, loadCaptions } from '../core/files.js';
|
|
|
7
7
|
import { autoSelectFrame, getImageDimensions, initializeFrameRegistry } from '../core/devices.js';
|
|
8
8
|
import { composeAppStoreScreenshot } from '../core/compose.js';
|
|
9
9
|
import { resolveLanguages, normalizeLanguageCode } from '../utils/language.js';
|
|
10
|
+
import { filenameToCaption } from '../utils/filename-caption.js';
|
|
10
11
|
export default function buildCmd() {
|
|
11
12
|
const cmd = new Command('build')
|
|
12
13
|
.description('Generate final screenshots with frames, gradients, and captions')
|
|
@@ -25,6 +26,7 @@ export default function buildCmd() {
|
|
|
25
26
|
.option('--auto-background', 'auto-detect background.png in device folders')
|
|
26
27
|
.option('--dry-run', 'show what would be rendered without generating images')
|
|
27
28
|
.option('--verbose', 'show detailed rendering information')
|
|
29
|
+
.option('--auto-caption', 'generate captions from filenames when none exist')
|
|
28
30
|
.addHelpText('after', `
|
|
29
31
|
${pc.bold('Examples:')}
|
|
30
32
|
${pc.dim('# Build all devices')}
|
|
@@ -57,6 +59,9 @@ ${pc.bold('Examples:')}
|
|
|
57
59
|
${pc.dim('# Show detailed rendering info')}
|
|
58
60
|
$ appshot build --verbose
|
|
59
61
|
|
|
62
|
+
${pc.dim('# Auto-generate captions from filenames')}
|
|
63
|
+
$ appshot build --auto-caption
|
|
64
|
+
|
|
60
65
|
${pc.bold('Output:')}
|
|
61
66
|
Screenshots are saved to: ${pc.cyan('final/[device]/[language]/')}
|
|
62
67
|
|
|
@@ -159,6 +164,10 @@ ${pc.bold('Language Detection:')}
|
|
|
159
164
|
else if (captionData && typeof captionData === 'object') {
|
|
160
165
|
captionText = captionData[lang] || '';
|
|
161
166
|
}
|
|
167
|
+
// Fallback to auto-caption from filename
|
|
168
|
+
if (!captionText && opts.autoCaption) {
|
|
169
|
+
captionText = filenameToCaption(screenshot);
|
|
170
|
+
}
|
|
162
171
|
// Get screenshot dimensions and orientation
|
|
163
172
|
const { width: srcWidth, height: srcHeight, orientation } = await getImageDimensions(inputPath);
|
|
164
173
|
// In dry-run mode, skip loading the screenshot buffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/commands/frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/commands/frame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoKpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YAwI/B"}
|
package/dist/commands/frame.js
CHANGED
|
@@ -86,7 +86,8 @@ async function processSingleFile(inputPath, framesDir, options) {
|
|
|
86
86
|
},
|
|
87
87
|
outputFormat: options.format || 'png',
|
|
88
88
|
jpegQuality: 92,
|
|
89
|
-
verbose: options.verbose
|
|
89
|
+
verbose: options.verbose,
|
|
90
|
+
frameTone: options.frameTone
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
93
|
catch (err) {
|
|
@@ -137,6 +138,7 @@ export default function frameCmd() {
|
|
|
137
138
|
.option('--suffix <text>', 'filename suffix when not overwriting', '-framed')
|
|
138
139
|
.option('--overwrite', 'overwrite original file name')
|
|
139
140
|
.option('--dry-run', 'preview files without processing')
|
|
141
|
+
.option('--frame-tone <tone>', 'frame color treatment (original|neutral)', 'original')
|
|
140
142
|
.option('--verbose', 'show detailed information')
|
|
141
143
|
.addHelpText('after', `
|
|
142
144
|
${pc.bold('Examples:')}
|
|
@@ -155,6 +157,12 @@ ${pc.bold('Examples:')}
|
|
|
155
157
|
${pc.dim('# Dry run with verbose logs')}
|
|
156
158
|
$ appshot frame ./screenshots --dry-run --verbose`)
|
|
157
159
|
.action(async (input, opts) => {
|
|
160
|
+
const frameToneInput = typeof opts.frameTone === 'string' ? opts.frameTone.toLowerCase() : 'original';
|
|
161
|
+
const validFrameTones = ['original', 'neutral'];
|
|
162
|
+
if (!validFrameTones.includes(frameToneInput)) {
|
|
163
|
+
console.error(pc.red('Invalid --frame-tone value. Use one of:'), validFrameTones.join(', '));
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
158
166
|
const options = {
|
|
159
167
|
output: opts.output,
|
|
160
168
|
device: opts.device,
|
|
@@ -163,7 +171,8 @@ ${pc.bold('Examples:')}
|
|
|
163
171
|
suffix: opts.suffix,
|
|
164
172
|
overwrite: Boolean(opts.overwrite),
|
|
165
173
|
verbose: Boolean(opts.verbose),
|
|
166
|
-
dryRun: Boolean(opts.dryRun)
|
|
174
|
+
dryRun: Boolean(opts.dryRun),
|
|
175
|
+
frameTone: frameToneInput
|
|
167
176
|
};
|
|
168
177
|
// Validate device option if provided
|
|
169
178
|
if (options.device && !['iphone', 'ipad', 'mac', 'watch'].includes(options.device)) {
|