Shots logo

Shots

Organization
hypersocialinc
shots

Generate, revise, translate, and manage App Store / Google Play marketing screenshots. Full flow: initialize a .shots workspace, scrape App Store metadata, research the product from the repo and listing, identify theme, colors, audience, and competitor space, save a strategy brief, craft benefit-driven headlines, and generate 3-up GPT-Image 2 composites via OpenAI direct or fal.ai before cropping them into upload-ready panels. Supports iPhone, iPad, and Android Phone platforms. Triggers: "app store screenshots", "marketing screenshots", "store listing images", "screenshot generation", "app store assets", "google play screenshots", "shots", ".shots", "revise shots", "change screenshots", "fix panels", "redo screenshots", "translate screenshots", "localize", "scrape app store", "fetch metadata", "import app store". Do NOT use for general image generation, social media graphics, or non-store marketing assets.

Overview

Publisherhypersocialinc
Repositoryshots
Skill nameshots
Stars
248
Forks
26
Bundled files
12
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by hypersocialinc on GitHub. Read the source before you install it.

Installation

Install the Shots AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/hypersocialinc/shots/tree/master/skills/shots
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/hypersocialinc/shots.git /tmp/shots
mkdir -p .claude/skills
cp -r /tmp/shots/skills/shots .claude/skills/shots
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Shots in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Shots on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Shots is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Shots

Generate high-converting App Store screenshots. The job is not to decorate existing screens. The job is to infer the app's market, visual language, and strongest promise, then turn that into crop-safe screenshot panels built to drive installs.

Why Screenshot Quality Matters

Research shows optimized app store screenshots can achieve:

  • 68.2% conversion rate vs 26.4% industry average
  • 720% improvement in install rate
  • 7-second decision window - first 2-3 screenshots are critical

This skill is designed to leverage GPT Image 2's strengths (95%+ text accuracy, UI mockup excellence, 4K output) combined with proven conversion patterns (Story Flow, hybrid captions, visual hierarchy) to create high-converting marketing assets.

Intent Router

IntentDetectionAction
Create newNo existing shot referenced, or "new", "create", "generate", or an App Store URLRun the Create Questionnaire, then follow reference/create.md
ReviseReferences a shot ID, or says "revise", "change", "fix", "redo"Follow reference/revise.md
TranslateMentions a locale or says "translate", "localize"Follow reference/translate.md
Scrape onlySays "scrape", "fetch metadata", "import" with a URLFollow reference/scrape.md
AmbiguousYou cannot tell which flow is intendedAsk the user what they want to do

Argument Parsing

  • /shots — start the create questionnaire
  • /shots <url> — scrape the listing, then continue with create
  • /shots <description> — create using that context
  • /shots revise [shot-id] — revision flow
  • /shots translate [shot-id|run-id] [locale] — localization flow
  • /shots scrape <url> — scrape only

Shared Setup

Run these checks before every sub-command. Do not skip them.

  1. Run npm list --prefix {{scripts_path}} sharp 2>/dev/null. If it fails, run npm install --prefix {{scripts_path}}.
  2. Run node {{scripts_path}}/scaffold.mjs --init --output-dir .shots/.
  3. For create, revise, and translate, verify OPENAI_API_KEY or FAL_KEY is set. Stop immediately if neither exists.
  4. Read .shots/config.json if present.

{{scripts_path}} is the scripts/ directory next to this file.

scaffold.mjs --init is the source of truth for the workspace contract. It creates the default config.json and manifest.json; agents should fill those files in rather than inventing their own schema.

Create Questionnaire

When the create flow starts and the config is missing or incomplete, ask for all of these in one message:

  1. App name
  2. App Store URL — ask explicitly: "Do you have an existing App Store or Google Play listing? If so, paste the URL." This is the highest-value input: it unlocks automated metadata scraping, competitor research, and existing screenshot analysis.
  3. Number of screenshots to generate
  4. Devices: iPhone, iPad, Android Phone
  5. Languages/locales

Optional (only ask if the user wants to override what you'll infer):

  1. Visual style override
  2. Brand colors
  3. Differentiator override

Defaults:

  • panelCount: 3
  • devices: ["iphone"]
  • locales: ["en"]
  • Screenshot counts above 3 are produced as multiple 3-panel composites.

Research Contract

Before drafting copy or generating images, build and save a strategyBrief in .shots/config.json. This is the source of truth for benefits and prompt assembly.

Use sources in this order:

  1. User-provided brand/colors/style overrides
  2. App Store URL and scraped listing data
  3. The local repo: README, onboarding, navigation, models, root screens, existing copy
  4. .shots/app-screenshots/
  5. .shots/inspo/
  6. Competitor listings and review language
  7. Ask the user only for the highest-value unknown that cannot be inferred

If an App Store URL exists, do full-stack research by default: listing, screenshots, direct competitors, and review language. If no URL exists, infer from the repo first. If no repo signal exists, infer from screenshots/inspo. If the app is still unclear, ask the user.

Follow reference/strategy.md to:

  • identify theme, colors, and audience
  • map the competitor space
  • extract market-native words and repeated pain language
  • save the strategy brief
  • draft 6-8 benefits ranked for install intent

Prompt Contract

Always build prompts from the saved strategyBrief and approved benefits. Follow reference/prompting.md.

Hard rules:

  • Generate screenshots in batches of 3 panels per composite by default.
  • Each composite must crop cleanly into standalone portrait screenshots.
  • At least 2 of every 3 panels should show a device unless the concept clearly benefits from a text-only or lifestyle panel.
  • Headline text must be short, high-contrast, thumbnail-readable, and verbatim.
  • Device screens must show concrete UI, not generic placeholder app chrome.
  • Use visual facts, not vague praise words.
  • Decorative depth elements must reinforce the feature being sold.
  • Do not include app store badges, download buttons, or fake platform chrome.

Existing Shot Flows

For revise and translate:

  • Read .shots/manifest.json and list recent shots if no shot ID was supplied.
  • Reuse the saved strategyBrief unless the user explicitly changes positioning, audience, or visual direction.
  • Treat the original prompt as the base artifact and append precise change/preserve instructions.

Dimensions

DeviceCompositeFinal panelKey
iPhone3456x24001284x2778iphone
iPad6144x27322048x2732ipad
Android Phone3240x19201080x1920android

Config Shape

The initialized config.json contains:

  • app metadata: appName, appStoreUrl, devices, locales, panelCount
  • generation defaults: generation.provider, generation.quality, generation.timeoutMs, generation.partialImages
  • brand colors: brandColors
  • App Store data: aso, ratings, scrapedAssets
  • strategy state: strategyBrief
  • copy state: benefits

Do not hand-author a fresh schema in the agent instructions. Read the generated file and fill it in.

References

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Shots AI skill do?

Generate, revise, translate, and manage App Store / Google Play marketing screenshots. Full flow: initialize a .shots workspace, scrape App Store metadata, research the product from the repo and listing, identify theme, colors, audience, and competitor space, save a strategy brief, craft benefit-driven headlines, and generate 3-up GPT-Image 2 composites via OpenAI direct or fal.ai before cropping them into upload-ready panels. Supports iPhone, iPad, and Android Phone platforms. Triggers: "app store screenshots", "marketing screenshots", "store listing images", "screenshot generation", "app...

Why use Shots on TypingMind?

Because you install it once and use it with any model. Shots is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Shots in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/hypersocialinc/shots/tree/master/skills/shots. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Shots?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Shots?

As many as you like. As long as a model supports skills, you can use Shots with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Shots AI skill free?

It is published on GitHub by hypersocialinc. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇