by realZachi
Open-source, local-first AI App Store screenshot editor.
# Add to your Claude Code skills
git clone https://github.com/realZachi/shotlumaLast scanned: 8/8/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-08T04:57:09.368Z",
"npmAuditRan": false,
"pipAuditRan": true,
"promptInjectionRan": true
}See how shotluma compares with popular alternatives.
shotluma is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by realZachi. Open-source, local-first AI App Store screenshot editor. It has 127 GitHub stars.
Yes. shotluma passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/realZachi/shotluma" and add it to your Claude Code skills directory (see the Installation section above).
shotluma is primarily written in TypeScript. It is open-source under realZachi on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh shotluma against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
An AI-first, local-first canvas editor for creating complete iOS App Store screenshot sets in the browser. The AI agent builds real, editable designs instead of flattening your ideas into generated images.
Describe your app, upload raw screenshots, and an AI agent designs the full set — not as opaque bitmaps, but by driving the same editor operations you'd use by hand. Every text layer, gradient, shape, and device mockup it places stays a real canvas element: select it, restyle it, move it, or redo it manually. Then export every artboard at exact store resolutions.

Projects live entirely in your browser — no Shotluma account or project backend. The editor itself works without AI credentials. For AI generation, connect a local Codex app/CLI signed in with your ChatGPT plan, or bring your own provider key.
1290 × 2796 or 1242 × 2688 PNGs in one ZIP.Select any artboard, describe the change, and let the AI agent revise just that screen. The result uses the same editor operations as the full-set generator and stays fully editable.

Requires Bun 1.3+ and a current desktop browser.
bun install
bun run dev
Open http://127.0.0.1:4173 and start editing.
Projects save automatically to the current browser profile. Clearing site data deletes them, so export anything important before wiping browser storage.
The recommended hosted flow uses your ChatGPT plan and needs no API key:
The connector listens only on 127.0.0.1, accepts the exact paired Shotluma origin and a random browser pairing token, and delegates authentication to Codex App Server. It does not read or copy ChatGPT tokens. Codex must already be installed and signed in with ChatGPT on that computer. Stop it with the same runtime used during setup: node ~/.local/share/shotluma/shotluma-codex-bridge.mjs stop or bun ~/.local/share/shotluma/shotluma-codex-bridge.mjs stop.
Alternatively, enter a provider key in the generation dialog (API keys / Enter API key). Keys are stored unencrypted in this browser's localStorage. Use dedicated keys with restrictive quotas, and remove them before sharing the browser profile or device.
For local development you can still use .env.local as a fallback:
cp .env.example .env.local
VITE_MOONSHOT_API_KEY=
VITE_GOOGLE_GENERATIVE_AI_API_KEY=
VITE_ALIBABA_API_KEY=
VITE_OPENAI_API_KEY=
VITE_ANTHROPIC_API_KEY=
VITE_XAI_API_KEY=
VITE_OPENCODE_API_KEY=
Restart the dev server after changing .env.local keys. Pick the provider and model in the generation dialog — models with configurable reasoning also expose their effort levels there. If a selected provider has no key, the dialog offers Enter API key and disables generation until one is saved.
How it works, and what to know:
/api/moonshot CORS proxy. OpenCode Zen and Go use a same-origin /api/opencode proxy (Vite locally, Cloudflare Worker when hosted) because those APIs do not answer browser CORS preflight. Models without native vision send screenshots and previews through a second OpenCode vision model first.VITE_* keys are exposed only by the local dev server; production builds replace every provider env key with an empty value. Never commit .env.local (see Self-hosting).For debugging, set SHOTLUMA_AI_LOGGING=true in .env.local to write one JSON file per run to the git-ignored ai-logs/ directory. Logs record provider, model, timing, visible model output, tool activity, and token usage — never prompt text, screenshots, or API keys.
| Command | Purpose |
|---|---|
bun run dev |
Start the editor on port 4173 |
bun run typecheck |
Strict TypeScript checks |
bun run lint |
Typed ESLint, complexity, and dependency rules |
bun run structure |
Enforce stylesheet module boundaries |
bun run test |
Run the Vitest suite once |
bun run test:coverage |
Tests with coverage thresholds |
bun run build |
Type-check and build the production bundle |
bun run preview |
Serve the production bundle locally, including the Moonshot and OpenCode proxies |
bun run audit |
Check dependencies for known vulnerabilities |
bun run check |
All required local and CI quality gates |
Changes to rendering, export, or AI behavior also need manual verification in the browser — the automated suite doesn't cover pixels.
bun run build produces a static app in dist/, including the downloadable Codex connector at codex/shotluma-codex-bridge.mjs. Provider env values are stripped from the bundle, so it can be hosted as a static site while users connect Codex or supply their own direct-provider keys in the browser. OpenCode on a hosted origin also needs the /api/opencode Worker in scripts/shotluma-worker.ts (the official app.shotluma.com deploy includes it).
The official editor is deployed at https://app.shotluma.com. The marketing
site at https://shotluma.com is maintained and deployed separately; its source
and production configuration are not part of this repository.
Codex connection prompts pair against the deployment's own origin. Google, Qwen, OpenAI, Anthropic, xAI, OpenRouter, and OpenCode work with browser-entered keys. Moonshot remains local-only; offering it on a hosted deployment requires an authenticated proxy. A hosted workflow with shared credentials likewise needs a backend or short-lived credential exchange.
Shotluma is a single-package React 19 + TypeScript + Vite + Tailwind CSS app.
src/App.tsx Application composition
src/app/ Project lifecycle, app shell, and export
src/editor/ History, ed