Macro Kiwi

My Claude Code skill for the AI capabilities Claude doesn’t ship with: image generation, image editing, vision, and an escape hatch to other providers. One self-contained CLI, no server to run.

kj6dev/macro-kiwi· MIT

Claude Code is the agent I use day to day, and Claude is great at what Claude is great at. What it cannot do natively is generate an app icon, edit a photograph, or read the text out of a screenshot. macro-kiwi is the small CLI I wrote to close that gap without bolting four separate clients onto my workflow. Each command is backed by whichever provider does that one job best:

  • Image generation — OpenAI’s gpt-image-1 and DALL-E 3, for app icons, illustrations, and the occasional bird painting.
  • Image editing — Google’s Nano Banana (Gemini 2.5 Flash Image), which edits from a conversational prompt instead of a precise mask. “Remove the chair, swap the background to a forest, brighten the subject” just works.
  • Vision — GPT-4o for OCR, object identification, and describing a screenshot the agent needs to understand.
  • Text completion — the escape hatch, used only when I specifically want a non-Claude model to compare against.

It started as an MCP server and is now a skill: the same capabilities as a command the agent runs on demand through uv, with no daemon to keep alive. The SKILL.md carries the provider guidance and the current per-image and per-token costs, so the agent picks the right tool and a runaway loop cannot quietly rack up spend. Every generated image lands on disk next to a .txt sidecar holding the exact prompt, which is the only thing that has ever let me recreate a style three months later.

macro-kiwi ships inside synodic-kit, so if you run that plugin you already have it. Standalone, it is one uv-run command and a skill file, with no MCP config to wire up. Full source on GitHub at kj6dev/macro-kiwi, MIT-licensed.