appshot-cli 0.9.2 → 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 +198 -103
- 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 +14 -2
- package/dist/core/compose.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/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
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Template Reference
|
|
2
|
+
|
|
3
|
+
8 professional templates for App Store screenshots.
|
|
4
|
+
|
|
5
|
+
## Template Selection Guide
|
|
6
|
+
|
|
7
|
+
| App Type | Recommended Template |
|
|
8
|
+
|----------|---------------------|
|
|
9
|
+
| Developer tools, CLI, OSS | `nerdy` |
|
|
10
|
+
| Business, productivity | `corporate` |
|
|
11
|
+
| Games, entertainment | `playful` |
|
|
12
|
+
| Lifestyle, premium | `elegant` |
|
|
13
|
+
| Finance, fintech | `bold` |
|
|
14
|
+
| Social, consumer | `modern` |
|
|
15
|
+
| Health, wellness | `minimal` |
|
|
16
|
+
| Custom backgrounds | `showcase` |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## modern
|
|
21
|
+
|
|
22
|
+
**Modern Vibrant** - Eye-catching gradient with floating device and clean captions
|
|
23
|
+
|
|
24
|
+
- **Category:** modern
|
|
25
|
+
- **Background:** Purple-pink diagonal gradient (`#667eea` → `#764ba2` → `#f093fb`)
|
|
26
|
+
- **Caption:** Above device, SF Pro Display, dark text (`#021d2f`)
|
|
27
|
+
- **Best for:** Consumer apps, social apps, general-purpose
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
appshot.template with template: "modern"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## minimal
|
|
36
|
+
|
|
37
|
+
**Minimal Clean** - Soft pastel background with elegant typography
|
|
38
|
+
|
|
39
|
+
- **Category:** minimal
|
|
40
|
+
- **Background:** Warm peach gradient (`#ffecd2` → `#fcb69f`)
|
|
41
|
+
- **Caption:** Above device, Helvetica Neue, dark text (`#1b2a3a`)
|
|
42
|
+
- **Best for:** Health apps, wellness, lifestyle
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
appshot.template with template: "minimal"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## bold
|
|
51
|
+
|
|
52
|
+
**Bold Impact** - Dark dramatic gradient with large device and overlay captions
|
|
53
|
+
|
|
54
|
+
- **Category:** bold
|
|
55
|
+
- **Background:** Dark purple diagonal gradient (`#0f0c29` → `#302b63` → `#24243e`)
|
|
56
|
+
- **Caption:** Overlay at bottom, SF Pro Display, white text
|
|
57
|
+
- **Best for:** Finance apps, security, premium features
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
appshot.template with template: "bold"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## nerdy
|
|
66
|
+
|
|
67
|
+
**Nerdy OSS** - Grid-lined midnight background with JetBrains Mono captions
|
|
68
|
+
|
|
69
|
+
- **Category:** bold
|
|
70
|
+
- **Background:** Auto-detect (uses background.png if present)
|
|
71
|
+
- **Caption:** Overlay at bottom, JetBrains Mono Bold, mint green (`#7CFFCB`)
|
|
72
|
+
- **Best for:** Developer tools, CLI apps, open source projects
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
appshot.template with template: "nerdy"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Note:** Place a grid/terminal background image at `screenshots/iphone/background.png` for best results.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## elegant
|
|
83
|
+
|
|
84
|
+
**Elegant Professional** - Sophisticated monochrome with floating device
|
|
85
|
+
|
|
86
|
+
- **Category:** elegant
|
|
87
|
+
- **Background:** Silver gradient (`#8e9eab` → `#eef2f3`)
|
|
88
|
+
- **Caption:** Below device, Georgia serif, dark text (`#132235`)
|
|
89
|
+
- **Best for:** Luxury apps, premium services, professional tools
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
appshot.template with template: "elegant"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## showcase
|
|
98
|
+
|
|
99
|
+
**Showcase** - Feature your app with custom backgrounds
|
|
100
|
+
|
|
101
|
+
- **Category:** professional
|
|
102
|
+
- **Background:** Auto-detect with cyan fallback (`#4facfe` → `#00f2fe`)
|
|
103
|
+
- **Caption:** Above device, SF Pro Display, white text
|
|
104
|
+
- **Best for:** Apps with strong visual branding, custom marketing assets
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
appshot.template with template: "showcase"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Tip:** Add your branded background to `screenshots/iphone/background.png`
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## playful
|
|
115
|
+
|
|
116
|
+
**Playful Energy** - Bright, fun gradients perfect for games and entertainment apps
|
|
117
|
+
|
|
118
|
+
- **Category:** playful
|
|
119
|
+
- **Background:** Pink-yellow diagonal gradient (`#fa709a` → `#fee140` → `#fa709a`)
|
|
120
|
+
- **Caption:** Above device, SF Pro Display, white text
|
|
121
|
+
- **Best for:** Games, kids apps, entertainment, social
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
appshot.template with template: "playful"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## corporate
|
|
130
|
+
|
|
131
|
+
**Corporate Professional** - Clean, professional look for business and productivity apps
|
|
132
|
+
|
|
133
|
+
- **Category:** professional
|
|
134
|
+
- **Background:** Blue-teal gradient (`#0077BE` → `#33CCCC`)
|
|
135
|
+
- **Caption:** Above device, Helvetica, dark text (`#0f1e2d`)
|
|
136
|
+
- **Best for:** Business apps, B2B, enterprise, productivity
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
appshot.template with template: "corporate"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Applying Templates
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
# Apply a template
|
|
148
|
+
appshot.template with template: "nerdy"
|
|
149
|
+
|
|
150
|
+
# Preview without applying
|
|
151
|
+
appshot.template with preview: "modern"
|
|
152
|
+
|
|
153
|
+
# List all templates
|
|
154
|
+
appshot.template with list: true
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Customizing After Template
|
|
158
|
+
|
|
159
|
+
Templates set a starting point. Customize further with:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
# Change gradient
|
|
163
|
+
appshot.gradients with action: "apply", preset: "sunset"
|
|
164
|
+
|
|
165
|
+
# Adjust device positioning
|
|
166
|
+
appshot.config with device: "iphone", frameScale: 0.85, framePosition: 30
|
|
167
|
+
|
|
168
|
+
# Change caption position
|
|
169
|
+
appshot.config with device: "iphone", captionPosition: "below"
|
|
170
|
+
```
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
Common issues and solutions when using appshot.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Project Setup Issues
|
|
8
|
+
|
|
9
|
+
### "Configuration not found"
|
|
10
|
+
|
|
11
|
+
**Cause:** No `.appshot/config.json` exists in the project.
|
|
12
|
+
|
|
13
|
+
**Solution:**
|
|
14
|
+
```
|
|
15
|
+
appshot.init with force: true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### "Input directory not found"
|
|
19
|
+
|
|
20
|
+
**Cause:** Screenshot folder doesn't exist or is empty.
|
|
21
|
+
|
|
22
|
+
**Solution:**
|
|
23
|
+
1. Create the directory: `screenshots/iphone/`
|
|
24
|
+
2. Add PNG/JPG screenshots to the folder
|
|
25
|
+
3. Run build again
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Caption Issues
|
|
30
|
+
|
|
31
|
+
### Captions not appearing
|
|
32
|
+
|
|
33
|
+
**Causes:**
|
|
34
|
+
1. No captions set for the screenshots
|
|
35
|
+
2. Caption file is empty
|
|
36
|
+
3. Wrong language specified
|
|
37
|
+
|
|
38
|
+
**Solutions:**
|
|
39
|
+
```
|
|
40
|
+
# Check current captions
|
|
41
|
+
appshot.captions with device: "iphone", action: "list"
|
|
42
|
+
|
|
43
|
+
# Auto-generate from filenames
|
|
44
|
+
appshot.captions with device: "iphone", action: "auto"
|
|
45
|
+
|
|
46
|
+
# Set manually
|
|
47
|
+
appshot.captions with device: "iphone", action: "set", filename: "screen.png", caption: "My Caption"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Caption text cut off
|
|
51
|
+
|
|
52
|
+
**Cause:** Caption too long for the available space.
|
|
53
|
+
|
|
54
|
+
**Solutions:**
|
|
55
|
+
1. Use shorter text (2-3 words ideal)
|
|
56
|
+
2. Adjust caption box settings:
|
|
57
|
+
```
|
|
58
|
+
appshot.config with device: "iphone", captionPosition: "above"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Wrong font displaying
|
|
62
|
+
|
|
63
|
+
**Cause:** Font not available on system.
|
|
64
|
+
|
|
65
|
+
**Solution:**
|
|
66
|
+
```
|
|
67
|
+
# Check font availability
|
|
68
|
+
appshot.fonts with action: "validate", font: "SF Pro Display"
|
|
69
|
+
|
|
70
|
+
# List embedded fonts (always available)
|
|
71
|
+
appshot.fonts with action: "embedded"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Embedded fonts:** Inter, Poppins, Montserrat, DM Sans, Roboto, Open Sans, Lato, Work Sans, JetBrains Mono, Fira Code
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Frame Issues
|
|
79
|
+
|
|
80
|
+
### "No matching frame found"
|
|
81
|
+
|
|
82
|
+
**Cause:** Screenshot dimensions don't match any known device.
|
|
83
|
+
|
|
84
|
+
**Solutions:**
|
|
85
|
+
1. Use standard device resolutions
|
|
86
|
+
2. Check screenshot dimensions match config
|
|
87
|
+
|
|
88
|
+
**Common iPhone resolutions:**
|
|
89
|
+
- 1290x2796 (iPhone 15 Pro Max, 16 Plus)
|
|
90
|
+
- 1179x2556 (iPhone 15 Pro, 16)
|
|
91
|
+
- 1206x2622 (iPhone 16 Pro)
|
|
92
|
+
|
|
93
|
+
### Frame looks wrong / misaligned
|
|
94
|
+
|
|
95
|
+
**Cause:** Screenshot orientation doesn't match frame.
|
|
96
|
+
|
|
97
|
+
**Solution:** Ensure portrait screenshots are taller than wide, landscape wider than tall.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Build Issues
|
|
102
|
+
|
|
103
|
+
### Build produces blank/black images
|
|
104
|
+
|
|
105
|
+
**Causes:**
|
|
106
|
+
1. Screenshot files are corrupted
|
|
107
|
+
2. Sharp module issue
|
|
108
|
+
|
|
109
|
+
**Solutions:**
|
|
110
|
+
```
|
|
111
|
+
# Run diagnostics
|
|
112
|
+
appshot.doctor
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### "Failed to load screenshot"
|
|
116
|
+
|
|
117
|
+
**Cause:** File is not a valid image or is corrupted.
|
|
118
|
+
|
|
119
|
+
**Solution:**
|
|
120
|
+
1. Verify the file opens in an image viewer
|
|
121
|
+
2. Re-export from the source
|
|
122
|
+
3. Ensure file extension matches actual format
|
|
123
|
+
|
|
124
|
+
### Build is slow
|
|
125
|
+
|
|
126
|
+
**Solutions:**
|
|
127
|
+
```
|
|
128
|
+
# Reduce concurrency on low-memory systems
|
|
129
|
+
appshot.build with concurrency: 2
|
|
130
|
+
|
|
131
|
+
# Build specific devices only
|
|
132
|
+
appshot.build with devices: ["iphone"]
|
|
133
|
+
|
|
134
|
+
# Use preview mode for testing
|
|
135
|
+
appshot.build with preview: true
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Background Issues
|
|
141
|
+
|
|
142
|
+
### Background image not appearing
|
|
143
|
+
|
|
144
|
+
**Causes:**
|
|
145
|
+
1. Image path incorrect
|
|
146
|
+
2. Mode set to gradient instead of image/auto
|
|
147
|
+
|
|
148
|
+
**Solutions:**
|
|
149
|
+
```
|
|
150
|
+
# Set background explicitly
|
|
151
|
+
appshot.backgrounds with action: "set", image: "./bg.png", fit: "cover"
|
|
152
|
+
|
|
153
|
+
# Or use auto-detect (looks for background.png in device folders)
|
|
154
|
+
appshot.build with autoBackground: true
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Background looks stretched/cropped
|
|
158
|
+
|
|
159
|
+
**Solution:** Change fit mode:
|
|
160
|
+
```
|
|
161
|
+
appshot.backgrounds with action: "set", image: "./bg.png", fit: "contain"
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Fit modes:
|
|
165
|
+
- `cover` - Fill entire area, may crop (default)
|
|
166
|
+
- `contain` - Show entire image, may letterbox
|
|
167
|
+
- `fill` - Stretch to fill (may distort)
|
|
168
|
+
- `scale-down` - Like contain but never upscale
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Validation Issues
|
|
173
|
+
|
|
174
|
+
### "Resolution mismatch"
|
|
175
|
+
|
|
176
|
+
**Cause:** Screenshot doesn't match App Store requirements.
|
|
177
|
+
|
|
178
|
+
**Solution:**
|
|
179
|
+
```
|
|
180
|
+
# Check required specs
|
|
181
|
+
appshot.specs with device: "iphone", required: true
|
|
182
|
+
|
|
183
|
+
# Use presets for correct sizing
|
|
184
|
+
appshot.build with presets: ["iphone-6-9", "ipad-13"]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Missing required sizes
|
|
188
|
+
|
|
189
|
+
**Required for App Store:**
|
|
190
|
+
- iPhone 6.9": 1320x2868 or 1290x2796
|
|
191
|
+
- iPad 13": 2064x2752 or 2048x2732
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## System Issues
|
|
196
|
+
|
|
197
|
+
### Sharp module errors
|
|
198
|
+
|
|
199
|
+
**Solution:**
|
|
200
|
+
```
|
|
201
|
+
# Run doctor to check system
|
|
202
|
+
appshot.doctor
|
|
203
|
+
|
|
204
|
+
# Reinstall if needed (in terminal)
|
|
205
|
+
npm rebuild sharp
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Permission denied errors
|
|
209
|
+
|
|
210
|
+
**Cause:** Cannot write to output directory.
|
|
211
|
+
|
|
212
|
+
**Solution:** Check file permissions on `final/` directory.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Quick Diagnostics
|
|
217
|
+
|
|
218
|
+
Run the doctor command to check all systems:
|
|
219
|
+
```
|
|
220
|
+
appshot.doctor
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
This checks:
|
|
224
|
+
- Node.js version (requires 18+)
|
|
225
|
+
- Sharp module installation
|
|
226
|
+
- Font detection capability
|
|
227
|
+
- File system permissions
|
|
228
|
+
- Frame asset availability
|