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.
Files changed (57) hide show
  1. package/README.md +208 -98
  2. package/dist/cli.js +6 -1
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/build.d.ts.map +1 -1
  5. package/dist/commands/build.js +9 -0
  6. package/dist/commands/build.js.map +1 -1
  7. package/dist/commands/frame.d.ts.map +1 -1
  8. package/dist/commands/frame.js +11 -2
  9. package/dist/commands/frame.js.map +1 -1
  10. package/dist/commands/mcp.d.ts +3 -0
  11. package/dist/commands/mcp.d.ts.map +1 -0
  12. package/dist/commands/mcp.js +19 -0
  13. package/dist/commands/mcp.js.map +1 -0
  14. package/dist/commands/skill.d.ts +3 -0
  15. package/dist/commands/skill.d.ts.map +1 -0
  16. package/dist/commands/skill.js +119 -0
  17. package/dist/commands/skill.js.map +1 -0
  18. package/dist/core/compose.d.ts +1 -0
  19. package/dist/core/compose.d.ts.map +1 -1
  20. package/dist/core/compose.js +85 -140
  21. package/dist/core/compose.js.map +1 -1
  22. package/dist/core/layout-utils.d.ts +12 -0
  23. package/dist/core/layout-utils.d.ts.map +1 -0
  24. package/dist/core/layout-utils.js +28 -0
  25. package/dist/core/layout-utils.js.map +1 -0
  26. package/dist/core/text-utils.d.ts +1 -1
  27. package/dist/core/text-utils.d.ts.map +1 -1
  28. package/dist/core/text-utils.js +5 -9
  29. package/dist/core/text-utils.js.map +1 -1
  30. package/dist/mcp/cli-options.d.ts +112 -0
  31. package/dist/mcp/cli-options.d.ts.map +1 -0
  32. package/dist/mcp/cli-options.js +158 -0
  33. package/dist/mcp/cli-options.js.map +1 -0
  34. package/dist/mcp/server.d.ts +2 -0
  35. package/dist/mcp/server.d.ts.map +1 -0
  36. package/dist/mcp/server.js +1149 -0
  37. package/dist/mcp/server.js.map +1 -0
  38. package/dist/services/doctor.d.ts.map +1 -1
  39. package/dist/services/doctor.js +2 -1
  40. package/dist/services/doctor.js.map +1 -1
  41. package/dist/templates/registry.d.ts.map +1 -1
  42. package/dist/templates/registry.js +49 -159
  43. package/dist/templates/registry.js.map +1 -1
  44. package/dist/utils/filename-caption.d.ts +9 -0
  45. package/dist/utils/filename-caption.d.ts.map +1 -0
  46. package/dist/utils/filename-caption.js +19 -0
  47. package/dist/utils/filename-caption.js.map +1 -0
  48. package/dist/version.d.ts +2 -0
  49. package/dist/version.d.ts.map +1 -0
  50. package/dist/version.js +5 -0
  51. package/dist/version.js.map +1 -0
  52. package/package.json +7 -4
  53. package/skill/SKILL.md +225 -0
  54. package/skill/references/fonts.md +55 -0
  55. package/skill/references/gradients.md +69 -0
  56. package/skill/references/templates.md +170 -0
  57. package/skill/references/troubleshooting.md +228 -0
package/README.md CHANGED
@@ -10,37 +10,18 @@
10
10
  [![Node.js Version](https://img.shields.io/node/v/appshot-cli.svg)](https://nodejs.org)
11
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
12
12
 
13
- 🆕 **Version 0.9.1** - **Fastlane Export Integration & Screenshot Ordering**
14
- - **Export Command**: New `appshot export` command for seamless Fastlane integration
15
- - **Screenshot Ordering**: New `appshot order` command to control App Store screenshot sequence
16
- - **Order Flag**: Export with `--order` to add numeric prefixes (01_, 02_, etc.)
17
- - **Smart Ordering**: Handles existing prefixes, prevents double-prefixing
18
- - **Auto-Detection**: Automatically detects languages from your screenshots
19
- - **Language Mapping**: Smart mapping to Fastlane-compatible language codes (en → en-US, etc.)
20
- - **Device Filtering**: Export specific devices with `--devices iphone,ipad`
21
- - **Validation**: Pre-export validation with warnings and clear error messages
22
- - **Configuration Generation**: Auto-generate Deliverfile and Fastfile with `--generate-config`
23
- - **Flexible Output**: Choose between symlinks (default) or file copying with `--copy`
24
- - **iPad Pro Support**: Automatic IPAD_PRO_3GEN_129_ prefix for proper Fastlane recognition
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
- - [Claude Code Integration](#-claude-code-integration)
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
- ## 🤖 Claude Code Integration
200
+ ## 🤖 MCP Server & Agent Integration
220
201
 
221
- Appshot includes comprehensive [Claude Code](https://claude.ai/code) slash commands for AI-assisted screenshot generation. See the [complete commands documentation](./commands/README.md) for detailed examples and workflows.
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
- ### Available Commands
204
+ ### Installation
224
205
 
225
- Appshot provides specialized commands for different tasks:
206
+ **Claude Code** (recommended):
207
+ ```bash
208
+ # Add the MCP server
209
+ claude mcp add appshot-mcp appshot mcp
226
210
 
227
- - `/appshot-init` - Initialize and configure new projects
228
- - `/appshot-preset` - One-line preset commands for instant screenshots
229
- - `/appshot-style` - Apply gradients, fonts, and visual styling
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
- ### Quick Installation
215
+ **Claude Desktop** (macOS):
236
216
 
237
- ```bash
238
- # If you have AppShot source code
239
- cd appshot
240
- ./commands/install.sh
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
- # If installed via npm
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
- # Manual installation
247
- mkdir -p ~/.claude/commands
248
- ln -sf "$(pwd)/commands"/*.md ~/.claude/commands/
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
- ### How It Works
253
+ ### Example: Agent Workflow
252
254
 
253
- When you use a command like `/appshot-style ocean iphone` in Claude Code:
255
+ ```
256
+ Agent: I'll set up your App Store screenshots.
254
257
 
255
- 1. Claude receives complete documentation for that specific task
256
- 2. All necessary configurations and examples are provided inline
257
- 3. No need to search documentation or run help commands
258
- 4. Claude can immediately execute the appropriate AppShot CLI commands
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
- ### Example Conversation
265
+ Screenshots ready in final/iphone/en/
266
+ ```
261
267
 
268
+ **Auto-Caption Workflow** (generate captions from filenames):
262
269
  ```
263
- User: I need to add Apple Watch support to my existing iPhone project
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
- Claude: I'll help you add Apple Watch to your project. Let me use /appshot-config
266
- to show you the exact configuration needed.
275
+ Captions auto-generated: "home-screen.png" "Home Screen"
276
+ ```
267
277
 
268
- Add this to your .appshot/config.json under "devices":
278
+ ### Claude Code Skill
269
279
 
270
- "watch": {
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
- Note: Apple Watch has special caption handling - uses 2-line wrapping
277
- and smaller font size (36px max) for the smaller screen.
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
- ### Features for AI Agents
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
- - **Self-Contained**: Each command includes all necessary information
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
- ### Learn More
316
+ 3. **Server Lifecycle**: The MCP server connection is unstable and may require frequent restarts.
289
317
 
290
- For complete documentation, examples, and advanced workflows, see:
291
- - 📚 [Commands Documentation](./commands/README.md) - Full guide with examples
292
- - 📁 [Commands Directory](./commands/) - Individual command files
293
- - 🛠️ [Installation Script](./commands/install.sh) - Automated setup
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 (NEW! v0.9.1)
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 v0.9.1+ automatically flattens the structure during export:
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 Integration Guide
2936
- - [ ] Agent API Mode
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
- - [ ] Image Backgrounds (as alternative to gradients)
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.9.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('0.9.1')
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":"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"}
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;AAUpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YA8W/B"}
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"}
@@ -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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,CAAC,OAAO,UAAU,QAAQ;IAC9B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;SAC7B,WAAW,CAAC,iEAAiE,CAAC;SAC9E,MAAM,CAAC,kBAAkB,EAAE,iDAAiD,EAAE,uBAAuB,CAAC;SACtG,MAAM,CAAC,gBAAgB,EAAE,2DAA2D,CAAC;SACrF,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,EAAE,cAAc,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;SACtD,MAAM,CAAC,mBAAmB,EAAE,4BAA4B,EAAE,GAAG,CAAC;SAC9D,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC;SAC1C,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;SACpD,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;SAC7D,MAAM,CAAC,yBAAyB,EAAE,uDAAuD,EAAE,OAAO,CAAC;SACnG,MAAM,CAAC,mBAAmB,EAAE,8CAA8C,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,uDAAuD,CAAC;SAC5E,MAAM,CAAC,WAAW,EAAE,qCAAqC,CAAC;SAC1D,MAAM,CAAC,gBAAgB,EAAE,kDAAkD,CAAC;SAC5E,WAAW,CAAC,OAAO,EAAE;EACxB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;IAClB,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;;;IAG7B,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC;;;IAGlC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC;;;IAGxC,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC;;;IAGjC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;;;IAG7B,EAAE,CAAC,GAAG,CAAC,qCAAqC,CAAC;;;IAG7C,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;;;IAGvC,EAAE,CAAC,GAAG,CAAC,gDAAgD,CAAC;;;IAGxD,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;;;IAGvC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC;;;IAGxC,EAAE,CAAC,GAAG,CAAC,yCAAyC,CAAC;;;EAGnD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;8BACU,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC;;EAEjE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;;sBAKV,CAAC;SAClB,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;6CAKc,CAAC;YAEtC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBAClD,iCAAiC;gBACjC,OAAO,CAAC,GAAG,CACT,EAAE,CAAC,MAAM,CAAC,sCAAsC,CAAC;oBACjD,EAAE,CAAC,GAAG,CAAC,wIAAwI,CAAC;oBAChJ,EAAE,CAAC,GAAG,CAAC,yHAAyH,CAAC;oBACjI,EAAE,CAAC,GAAG,CAAC,yHAAyH,CAAC;oBACjI,IAAI,CACL,CAAC;YACJ,CAAC;YAED,qBAAqB;YACrB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAEnD,0DAA0D;YAC1D,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3D,iCAAiC;YACjC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEnD,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,sBAAsB;YACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,MAAM,kCAAkC,CAAC,CAAC;oBACjF,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEnD,kCAAkC;gBAClC,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,8BAA8B,QAAQ,EAAE,CAAC,CAAC;oBACtE,SAAS;gBACX,CAAC;gBAED,iCAAiC;gBACjC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE/C,gDAAgD;gBAChD,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;qBAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;qBAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;qBACtD,IAAI,EAAE,CAAC;gBAEV,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,2BAA2B,QAAQ,EAAE,CAAC,CAAC;oBACnE,SAAS;gBACX,CAAC;gBAED,wCAAwC;gBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;gBACxF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;gBAElD,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAE3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC,MAAM,cAAc,CAAC,CAAC;gBAC1H,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,MAAM,GAAG,CAAC,CAAC,CAAC;gBACpF,CAAC;gBAED,wBAAwB;gBACxB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,mCAAmC;oBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC/C,CAAC;oBAED,iCAAiC;oBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;wBACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;wBACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;4BAC9C,IAAI,CAAC;gCACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gCAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gCAElD,+CAA+C;gCAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gCACzC,IAAI,WAAW,GAAG,EAAE,CAAC;gCACrB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oCACpC,WAAW,GAAG,WAAW,CAAC;gCAC5B,CAAC;qCAAM,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oCAC1D,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gCACxC,CAAC;gCAED,yCAAyC;gCACzC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oCACrC,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;gCAC9C,CAAC;gCAED,4CAA4C;gCAC5C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gCAEhG,sDAAsD;gCACtD,IAAI,gBAAoC,CAAC;gCACzC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oCACjB,IAAI,CAAC;wCACH,+CAA+C;wCAC/C,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wCAE9C,oCAAoC;wCACpC,gBAAgB,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;6CACtC,GAAG,EAAE,CAAC,uBAAuB;6CAC7B,QAAQ,EAAE,CAAC;oCAChB,CAAC;oCAAC,OAAO,KAAK,EAAE,CAAC;wCACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wCACjJ,OAAO;oCACT,CAAC;gCACH,CAAC;gCAED,yCAAyC;gCACzC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCAEnF,wDAAwD;gCACxD,IAAI,QAAgB,CAAC;gCACrB,IAAI,SAAiB,CAAC;gCAEtB,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;oCAC/B,sCAAsC;oCACtC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oCAC/C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gCAClD,CAAC;qCAAM,CAAC;oCACN,uCAAuC;oCACvC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;oCAC/C,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gCAClD,CAAC;gCAED,wCAAwC;gCACxC,MAAM,iBAAiB,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;gCAChF,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;oCACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,oBAAoB,iBAAiB,KAAK,YAAY,CAAC,UAAU,uBAAuB,WAAW,mBAAmB,CAAC,CAAC,CAAC;gCAClK,CAAC;gCAED,+BAA+B;gCAC/B,IAAI,KAAK,GAAG,IAAI,CAAC;gCACjB,IAAI,aAAa,GAAG,IAAI,CAAC;gCACzB,IAAI,SAAS,GAAG,KAAK,CAAC;gCAEtB,qCAAqC;gCACrC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;oCACzB,8EAA8E;oCAC9E,iCAAiC;oCACjC,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,SAAS,EACT,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAC3B,MAA6C,EAC7C,YAAY,CAAC,cAAc,EAC3B,IAAI,CAAC,MAAM,CAAC,oBAAoB;qCACjC,CAAC;oCAEF,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oCACrB,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;oCAEhC,IAAI,aAAa,EAAE,CAAC;wCAClB,SAAS,GAAG,IAAI,CAAC;wCACjB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;4CAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,WAAW,IAAI,WAAW,QAAQ,CAAC,CAAC,CAAC;wCACtH,CAAC;oCACH,CAAC;yCAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC;wCACnD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;oCACrF,CAAC;gCACH,CAAC;gCAED,qCAAqC;gCACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oCAChB,iBAAiB;oCACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;oCAE/D,yBAAyB;oCACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,QAAQ,IAAI,SAAS,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC;oCAE7E,kBAAkB;oCAClB,IAAI,aAAa,EAAE,CAAC;wCAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,aAAa,CAAC,WAAW,KAAK,aAAa,CAAC,UAAU,IAAI,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;oCAC5H,CAAC;yCAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;wCAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;oCAC5D,CAAC;oCAED,oBAAoB;oCACpB,IAAI,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;wCAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;wCAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,MAAM,WAAW,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wCAEjL,iBAAiB;wCACjB,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wCACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC;oCAC/C,CAAC;oCAED,mBAAmB;oCACnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,QAAQ,IAAI,SAAS,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC;oCAE5E,cAAc,EAAE,CAAC;gCACnB,CAAC;qCAAM,CAAC;oCACN,mBAAmB;oCACnB,IAAI,KAAa,CAAC;oCAClB,IAAI,CAAC;wCACH,uBAAuB;wCACvB,IAAI,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;wCAEzC,qCAAqC;wCACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4CACpB,gBAAgB,GAAG;gDACjB,IAAI,EAAE,OAAO;gDACb,KAAK,EAAE,IAAI,CAAC,UAAU;gDACtB,GAAG,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;gDAClC,cAAc,EAAE,IAAI;6CACrB,CAAC;wCACJ,CAAC;6CAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;4CAC/B,gBAAgB,GAAG;gDACjB,IAAI,EAAE,MAAM;gDACZ,GAAG,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;gDAClC,cAAc,EAAE,IAAI;6CACrB,CAAC;wCACJ,CAAC;6CAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4CAC7B,gBAAgB,GAAG,SAAS,CAAC;wCAC/B,CAAC;wCAED,KAAK,GAAG,MAAM,yBAAyB,CAAC;4CACtC,UAAU,EAAE,gBAAiB;4CAC7B,KAAK,EAAE,KAAK;4CACZ,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;gDAC7B,UAAU,EAAE,aAAa,CAAC,UAAU;gDACpC,WAAW,EAAE,aAAa,CAAC,WAAW;gDACtC,UAAU,EAAE,aAAa,CAAC,UAAU;gDACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ;gDAChC,UAAU,EAAE,aAAa,CAAC,UAAU;gDACpC,WAAW,EAAE,aAAa,CAAC,WAAW;gDACtC,IAAI,EAAE,aAAa,CAAC,IAAI;6CACzB,CAAC,CAAC,CAAC,SAAS;4CACb,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;4CACzD,aAAa,EAAE,MAAM,CAAC,OAAO;4CAC7B,cAAc,EAAE,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;4CACrE,gBAAgB,EAAE,gBAAgB;4CAClC,YAAY,EAAE,YAAY;4CAC1B,WAAW,EAAE,QAAQ;4CACrB,YAAY,EAAE,SAAS;4CACvB,OAAO,EAAE,IAAI,CAAC,OAAO;yCACtB,CAAC,CAAC;oCACL,CAAC;oCAAC,OAAO,KAAK,EAAE,CAAC;wCACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wCACjH,OAAO;oCACT,CAAC;oCAED,mBAAmB;oCACnB,MAAM,KAAK,CAAC,KAAK,CAAC;yCACf,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE;wCACjD,GAAG,EAAE,QAAQ;wCACb,kBAAkB,EAAE,IAAI;qCACzB,CAAC;yCACD,GAAG,EAAE,CAAE,uBAAuB;yCAC9B,MAAM,CAAC,UAAU,CAAC,CAAC;oCAEtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EACpD,EAAE,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oCAC/F,cAAc,EAAE,CAAC;gCACnB,CAAC;4BACH,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gCACvG,WAAW,EAAE,CAAC;4BAChB,CAAC;wBACH,CAAC,CAAC,CAAC;wBAEH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC9B,CAAC;gBACH,CAAC;YACH,CAAC;YAED,UAAU;YACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,cAAc,iCAAiC,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,cAAc,wBAAwB,CAAC,CAAC,CAAC;gBACnE,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,WAAW,SAAS,CAAC,CAAC,CAAC;gBACjD,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -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;AAgKpC,MAAM,CAAC,OAAO,UAAU,QAAQ,YA+H/B"}
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"}
@@ -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)) {