Withnico Skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Withnico Skills (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<img src="assets/shotkit-banner.png" width="100%" alt="Shotkit banner" />
Open source Claude Code agent skills for iOS developers and content creators on Mac.
Built by Nicolò Curioni 🔸 — @nicolocurioni96
brew tap nicolocurioni96/tools
brew install shotkitThen use the shotkit CLI directly:
shotkit doctor # verify environment before you start
shotkit init # connect to App Store Connect
shotkit capture --bundle-id com.app.id --deeplinks "..." # auto-capture from Simulator
shotkit generate --app-name "MyApp" --template trending # generate with trending styles
shotkit upload --dir ./screenshots-output # upload to App Store ConnectInstall all skills at once:
npx ai-agent-skills install nicolocurioni96/withnico-skillsInstall a single skill:
npx ai-agent-skills install nicolocurioni96/withnico-skills --skill shotkitOr register as a Claude Code plugin:
/plugin install withnico-skills@nicolocurioni96Works with Claude Code, Cursor, Codex, Gemini CLI, OpenCode, and any agent following the Agent Skills open standard.
| Skill | What it does | Platform | Status |
|---|---|---|---|
| shotkit | End-to-end App Store screenshot pipeline: auto-capture → trending styles → App Store Connect upload | macOS | ✅ Ready |
More skills coming — see Roadmap.
The full App Store screenshot workflow in one Claude Code skill.
Trigger phrases:
What it does:
6 Template Styles:
| Template | Best For | Style |
|---|---|---|
trending | Any app | Auto-styled with curated palettes from top-charting apps |
minimal | Productivity, utilities, finance | White bg, shadow device, clean text below |
bold | Games, lifestyle, fitness | Full-bleed gradient, large text at top |
dark | Pro tools, music, photography | Black bg, colored glow, premium feel |
editorial | Creative, travel, shopping | Split layout, magazine composition |
flat | Photo/video, maps, AR | Full-bleed UI, semi-transparent text bar |
Trending palettes: aurora, sunset-pop, midnight, ocean, coral, forest, neon, slate, peach, electric — or auto-extract from your app icon.
Device frames: Add realistic Apple device bezels with --frame device:
shotkit generate --app-name "MyApp" --captures ./raw --template bold --frame device --frame-color natural-titanium| Frame Color | Device |
|---|---|
black-titanium | iPhone 16 Pro/Max |
natural-titanium | iPhone 16 Pro/Max |
white-titanium | iPhone 16 Pro/Max |
desert-titanium | iPhone 16 Pro/Max |
space-black | iPad Pro |
silver | iPad Pro |
Frames include Dynamic Island, side buttons, and accurate corner radii. Run shotkit frame-colors to list all options.
Note on device likenesses. Shotkit renders stylised bezels programmatically — it does not embed real Apple product photography. When shipping to the App Store, follow Apple's Marketing Resources & Identity Guidelines on how iPhone, iPad, and other Apple product silhouettes may be used in your creatives.
Device support (2025/2026):
Locale support: en-US, it, de, ja, fr, es, pt-BR, ko — tone-adapted per market.
App Store Connect integration:
shotkit init # connect with your API key
shotkit apps # list your apps
shotkit download --output ./backup # download existing screenshots
shotkit upload --dir ./screenshots-output # upload new screenshots
shotkit update --dir ./screenshots-output # replace existing screenshotsRequirements:
~/.shotkit/venv. Set SHOTKIT_LEGACY_INSTALL=1 before shotkit install-deps to keep the pre-2.1 behaviour of installing into system Python.Quick start:
# 1. Connect to App Store Connect
shotkit init
# 2. Full pipeline in one command
shotkit screenshots \
--bundle-id com.yourapp.bundleid \
--app-name "YourApp" \
--template trending \
--icon ./icon.png \
--deeplinks "myapp://home,myapp://detail,myapp://settings" \
--screens "home,detail,settings"
# 3. Upload to App Store Connect
shotkit upload --dir ./screenshots-outputOr step by step:
shotkit capture --bundle-id com.app.id --deeplinks "myapp://home,myapp://detail"
shotkit generate --app-name "MyApp" --captures ./raw --template trending --palette aurora
shotkit validate --dir ./screenshots-output
shotkit upload --dir ./screenshots-outputKey features:
`shotkit doctor` first. It reports which of Python, Pillow, PyJWT, cryptography, xcrun, a booted Simulator, and .shotkit.json are present, and prints a targeted hint for each miss.
Simulator won't boot. Verify the device name matches an installed runtime:
xcrun simctl list devices availablePass the exact name to --devices-sim, e.g. --devices-sim "iPhone 16 Pro Max". If the runtime is missing, install it in Xcode → Settings → Platforms.
Deep link isn't recognised. Confirm the URL scheme is registered in your app's Info.plist (CFBundleURLTypes) and that the app is already installed and launched at least once on the target Simulator. Test the deep link manually first:
xcrun simctl openurl booted "myapp://home"Upload fails with 403. The API key needs the Developer or App Manager role in App Store Connect → Users and Access → Keys. The key you generated must have access to the app you selected during shotkit init.
Upload fails with "alpha channel not permitted". App Store Connect rejects PNGs with transparency. Run shotkit validate --dir ./screenshots-output — v2.2 flags this as a warning; flatten the offending PNGs (open in Preview, export as PNG without alpha) and re-upload.
Python packages not found. If Homebrew isn't managing shotkit for you, run:
shotkit install-depsThat creates ~/.shotkit/venv and installs Pillow, PyJWT, and cryptography there. To force the pre-2.1 behaviour of installing into system Python, prefix with SHOTKIT_LEGACY_INSTALL=1.
| Skill | What it will do |
|---|---|
xcode-release-notes | git log → App Store What's New copy in multiple languages |
ios-localization | Localize App Store metadata for 28+ territories intelligently |
transcript-recycler | YouTube URL → full content repurposing pack |
youtube-package | One brief → complete bilingual YouTube video content package |
apple-notes-agent | Create, search, and manage Apple Notes from Claude Code |
swift-review | SwiftUI and iOS-specific code review: architecture, App Store compliance |
PRs welcome. Each skill lives in skills/<skill-name>/ with:
skills/my-skill/
├── SKILL.md
├── scripts/
└── references/Follow the Agent Skills open standard for SKILL.md format.
MIT — see LICENSE
Nicolò Curioni — withnico.com · @nicolocurioni96
iOS Engineer · AI Evangelist · Indie Developer · Content Creator
Discord: https://discord.gg/JXgrVwqa8b
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.