finds.dev← search

// the find

betomoedano/snapai

★ 1,862 · TypeScript · MIT · updated Apr 2026

AI-powered icon generation CLI for React Native & Expo developers. Generate stunning app icons in seconds using OpenAI's latest models.

A CLI wrapper around OpenAI and Google Gemini image generation APIs, purpose-built for generating 1024x1024 app icons for React Native and Expo projects. It does one thing: take a text prompt, optionally enhance it, and save a PNG/JPEG/WebP square image. The audience is mobile developers who don't want to context-switch into a browser UI just to iterate on an icon.

The model aliasing (gpt-1.5, banana, banana-2) abstracts away the actual API model identifiers, which means updates to underlying model names don't break existing scripts. The CI/CD story is genuinely thought through — env var fallbacks, no-install npx usage, and a GitHub Actions example that actually works. The --prompt-only flag for previewing enhanced prompts before burning API credits is a small but useful touch for iterating on style. No backend, no telemetry, keys stay local or in env — this is what 'privacy-first' actually looks like in practice.

The model naming is genuinely confusing — 'banana' for Gemini is a cute internal codename that leaks into the public CLI surface, which will puzzle anyone who didn't watch the tutorial. There's no batch processing or input file support, so automating icon variants across multiple apps means writing your own shell loop. The prompt enhancement logic is a black box — you can disable it with --raw-prompt, but you can't see or tune the system prompt it uses, which makes debugging bad outputs harder than it should be. At 1862 stars it has traction, but the codebase is five TypeScript files; anyone with a non-trivial use case will hit the walls quickly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →