Agent skill

Gpt Image

by nikships in nikships/droidproxy

Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY).

MITAuto-check passedMedia & Creative

Install Gpt Image

skills CLI
$ npx skills add nikships/droidproxy --skill gpt-image -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nikships/droidproxy gpt-image --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nikships/droidproxy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gpt-image .claude/skills/gpt-image && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gpt-image
GitHub stars
122
Token cost
~2.5k tokens
SKILL.md length
1,108 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY).

  • The user asks to generate
  • SKILL.md covers Generate, Edit, Prompting and Parameters, plus 4 more sections
  • Calls jq and curl; needs OPENAI_API_KEY
  • Edit an image with GPT

What it does

Gpt Image is an agent skill from nikships/droidproxy. Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY). Use when the user asks to generate, create, draw, or edit an image with GPT, OpenAI, Codex, gpt-image, or DALL-E, including transparent PNGs, and DroidProxy Codex OAuth is available. Prefer this over inventing image URLs or base64. If they name Grok or Imagine, use grok-imagine instead.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative, covering Image generation and LLM API integration. It works with OpenAI and macOS. The repository describes itself as: macOS menu bar app that proxies Claude/Codex/Grok + More subscriptions for use with Factory Droid CLI. Actively maintained and updated with new model releases! The licence is MIT.

When your agent uses it

  • The user asks to generate
  • Edit an image with GPT
  • Including transparent PNGs
  • DroidProxy Codex OAuth is available

Example prompts

  • “/gpt-image”

Requirements

  • A credential in OPENAI_API_KEY

What it can do on your machine

Read from SKILL.md and the folder at commit 9fdd443. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.openai.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • OPENAI_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gpt Image loads about 2.5k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 1,108 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~102
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nikships/droidproxy at commit 9fdd443, republished under its MIT licence (© nikships). 1,108 words, ~2,469 tokens.

Download SKILL.mdSave it as .claude/skills/gpt-image/SKILL.md (or your agent's skills folder).
name
gpt-image
description
Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAI_API_KEY). Use when the user asks to generate, create, draw, or edit an image with GPT, OpenAI, Codex, gpt-image, or DALL-E, including transparent PNGs, and DroidProxy Codex OAuth is available. Prefer this over inventing image URLs or base64. If they name Grok or Imagine, use grok-imagine instead.
version
2.0.0

GPT Image 2.5 (via DroidProxy Codex)

POST http://localhost:8317/v1/images/generations (or /edits) with Authorization: Bearer dummy-not-used. Send only gpt-image-2.5-flare or gpt-image-2.5-sunburst. Never send an older image model, a dated snapshot, or a chat id (gpt-* without image). Never use an OPENAI_API_KEY. Chat models on :8317 do not generate images.

Default to Flare for fast, high-quality everyday generation. Use Sunburst when the user prioritizes demanding quality, editing precision, or subject preservation over latency. If Sunburst meets the requirements, prefer Flare only after it produces acceptable results on the same prompt, references, dimensions, and quality setting.

Use this for generating or editing visual assets, not for understanding an image the user already attached.

Generate

Requests often take 15–70s. Use --max-time 180. Default quality to auto; select a higher explicit setting only to meet a quality requirement.

bash
RESP=$(curl -sS --max-time 180 http://localhost:8317/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer dummy-not-used" \
  -d "$(jq -n --arg p "A red balloon on a wooden table, soft natural light" \
    '{model:"gpt-image-2.5-flare", prompt:$p, size:"1024x1024",
      quality:"auto"}')")

if B64=$(printf '%s' "$RESP" | jq -er '.data[0].b64_json' 2>/dev/null); then
  printf '%s' "$B64" | base64 -d > out.png
else
  printf '%s\n' "$RESP" >&2
  exit 1
fi

Check .data[0].b64_json before decoding. On failure print the raw body — Codex errors are JSON (usage_limit_reached, auth_not_found, moderation_blocked).

Edit

Same auth. JSON with a data URL — no upload step, no file_id. Do not pass the data URL through jq --arg: a typical generated PNG is larger than ARG_MAX (~1MB on macOS) and jq dies with Argument list too long. Write the data URL to a file and use --rawfile, then POST with --data-binary. Decode the same way as Generate.

bash
SRC_FILE=$(mktemp)
REQ=$(mktemp)
printf 'data:image/png;base64,%s' "$(base64 -i ./photo.png)" > "$SRC_FILE"
jq -n --arg p "Make it blue-tinted studio lighting" --rawfile u "$SRC_FILE" \
  '{model:"gpt-image-2.5-sunburst", prompt:$p, images:[{image_url:$u}],
    quality:"auto"}' > "$REQ"

RESP=$(curl -sS --max-time 180 http://localhost:8317/v1/images/edits \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer dummy-not-used" \
  --data-binary @"$REQ")
rm -f "$SRC_FILE" "$REQ"

if B64=$(printf '%s' "$RESP" | jq -er '.data[0].b64_json' 2>/dev/null); then
  printf '%s' "$B64" | base64 -d > out.png
else
  printf '%s\n' "$RESP" >&2
  exit 1
fi

Pick the data-URL mime from the source (image/jpeg, image/png, image/webp). Optional mask.image_url (PNG with alpha) marks the region to replace. Chain edits by feeding each output back as the next images[0].image_url.

Prompting

If the user gives a detailed prompt or asks you to use theirs, use it verbatim. Otherwise define the intended result, then describe the subject, action/pose, setting, style, composition, lighting/mood, visible details, and constraints. For complex work, use labeled sections. Keep requirements easy to read rather than relying on special prompt syntax.

Quote required text exactly, specify its placement and typography, ask for no extra text, and verify spelling and legibility. For edits, say “change only X” and explicitly list what must stay the same. Identify each reference image by number and role (subject, style, clothing, or background). Make one change per edit and restate critical preservation constraints on every turn.

Ground named people, brands, places, and “current/latest” facts with a web search first. For a named real person, edit from a real reference photo — do not generate the likeness from text alone.

Parameters

FieldValuesNotes
modelgpt-image-2.5-flare, gpt-image-2.5-sunburstFlare by default; Sunburst for demanding quality or precise edits. No other model ids.
promptstringRequired on generate and edit.
sizeauto or WIDTHxHEIGHTEach edge ≤3840 and divisible by 16; aspect ratio ≤3:1; 655,360–8,294,400 total pixels. Above 2560×1440 is experimental.
qualityauto, low, medium, high, xhigh, maxDefault auto. Compare one setting at a time; use xhigh/max only for an unmet quality requirement. Never send hd or standard.
n1–10Default 1. Same-prompt variations use n, not parallel calls.
backgroundauto, opaque, transparenttransparent needs output_format png or webp.
output_formatpng, jpeg, webpSend png for transparency.
output_compression0–100JPEG/WebP only. Omit unless asked.
images[{image_url}]Edits only. Data URL or https URL.
mask{image_url}Edits only. PNG with alpha.

Response

json
{"created": 0, "background": "opaque", "data": [{"b64_json": "..."}],
 "output_format": "png", "quality": "low", "size": "1536x1024", "usage": {}}

GPT Image 2.5 always returns base64, so do not send response_format. .data[0] is only b64_json — no url, no mime_type. Pick the file extension from top-level output_format when present, otherwise from the decoded magic bytes (PNG / JFIF / RIFF…WEBP).

Codex OAuth often ignores size and sometimes quality. A 1024x1024 / low request may come back 1536x1024 / low, or an off-enum size like 1312x1199 with quality: medium. Trust the response size / quality / background and the decoded IHDR. Do not retry just because they differ from the request.

Show full SKILL.md (510 more words)Show less

Transparency

When the user explicitly wants a transparent PNG or alpha background (sticker, cutout, icon), send both:

json
{"background":"transparent","output_format":"png"}

If they asked for a campaign, slide, or print asset without mentioning transparency, keep opaque or ask. Don't assume.

The prompt beats background. If it describes a backdrop, scene, color, plinth, or shadow, the model paints that instead of alpha. Keep the prompt on an isolated subject and say so explicitly:

  • Isolated object, fully visible, generously padded
  • Actual fully transparent alpha
  • No backdrop, rectangle, plinth, cast shadow, watermark, or readable label text
  • Preserve natural transparency, refraction, and fine material edges (glass, ribbon, fibers)

Size by use: icons/stickers 1024x1024, product shots 1024x1536, charts 1536x1024. Compare medium or high when the asset has small text. Expect the returned pixel size to differ; that's not a failure.

Products / campaign cutouts. One object. No scene. Ask for fully transparent alpha around the silhouette. Good for reuse across storefronts and seasonal backgrounds.

Charts for dark slides. Ask for a genuinely transparent background and a transparent plot area — not just a transparent silhouette. No card, frame, filled panel, title, or grid fill. Specify pale/white labels and bright series colors so they read on navy or gradient themes. Keep exact data values in the prompt, then verify labels and proportions against the source before using the chart.

Icons, stickers, decorations. Keep everything outside the tile, die-cut border, or sprig transparent — including gaps between branches and leaves. No text, watermark, or drop shadow.

Print-on-demand. Generate the artwork and any blank garments as separate transparent PNGs. Keep open space inside the design transparent too (no white rectangle or badge). Composite locally; do not bake the print onto the garment in one generation if they need to reuse it.

After decoding, confirm a real alpha channel (RGBA / PNG tRNS) and that some pixels are fully transparent. Also check top-level "background":"transparent". If the file is opaque, strip backdrop language from the prompt and retry once.

If background:transparent 400s, generate on a flat uniform background that contrasts with the subject and key it out locally (PIL, ImageMagick). Recolor the subject for the background they named before you finish — a near-black mark on a dark header is invisible. Say what you did.

Failures

SymptomFix
Connection refusedDroidProxy isn't running — tell the user to launch it
auth_not_found / no auth for codexCodex not connected, or the account is Free. Settings → Connect Codex. Image gen requires Plus/Pro.
usage_limit_reached (plan_type, resets_in_seconds)Quota exhausted. Tell the user when it resets. Do not retry in a loop.
401 after a long idleOAuth session dead — Settings → Connect Codex
400 unsupported modelUse gpt-image-2.5-flare or gpt-image-2.5-sunburst; no other model is supported.
jq: Argument list too longYou put a data URL in jq --arg. Use --rawfile as in Edit.
Response size/quality ≠ requestNot a failure. Save the image. Do not retry.

On moderation_blocked, stop. Don't retry and don't paraphrase the prompt to evade the filter. Report the API's own message. Never invent image content or a URL for a request that failed.

Sources

© nikships, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/gpt-image of nikships/droidproxy.

Open the folder on GitHubat commit 9fdd443

Compare with similar skills

Gpt Image next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gpt Image compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gpt Image this skillnikships/droidproxy122—~2.5kAutomated safety check: PassMIT
Gpt Image Genninehills/skills280—~1.8kAutomated safety check: NotesMIT
Codex Image2fengfengzhidao/codex-image2-skill144—~1.2kAutomated safety check: PassMIT
Talking Avatar Voice Chat Appbuildfastwithai/gen-ai-experiments785—~1.7kAutomated safety check: PassMIT
Draw Image DiagramsRealSeaberry/AutoMCM-Pro257—~1.9kAutomated safety check: NotesMIT
Afmscouzi1966/maclocal-api346—~1.2kAutomated safety check: PassMIT

Similar skills

  • Gpt Image Gen

    ninehills/skills

    生图 / 生成图片 / 画图 — 用 OpenAI gpt-image-2 生成图像。支持文生图、参考图生图 (img2img)、蒙版修补 (inpainting)。当用户要求用 GPT 画图、OpenAI 生图、gpt-image-2、文+图生图、参考图片生成、img2img、inpainting 时必加载此技能。Auth 自动继承 OPENAIAPIKEY / Codex OAuth…

    280 GitHub stars~1.8k tokensUpdated 3 mo ago
    Media & CreativeAuto-check: notes
  • Codex Image2

    fengfengzhidao/codex-image2-skill

    Generate or edit raster images through a configurable OpenAI-compatible Image API using gpt-image-2.

    144 GitHub stars~1.2k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Talking Avatar Voice Chat App

    buildfastwithai/gen-ai-experiments

    Builds a realtime voice-chat app around a talking character portrait made from your photo or a text description, with mouth sprites driven by the audio.

    785 GitHub stars~1.7k tokensUpdated 18 days ago
    AI & LLM EngineeringAuto-check passed
  • Draw Image Diagrams

    RealSeaberry/AutoMCM-Pro

    Generates diagrams, flowcharts and conceptual illustrations with OpenAI's gpt-image models, while leaving data plots and result figures to real plotting code.

    257 GitHub stars~1.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check: notes
  • Afm

    scouzi1966/maclocal-api

    Maintain and extend AFM (maclocal-api), a Swift OpenAI-compatible local LLM server and CLI for Apple Foundation Models, MLX models, API gateway proxying, and Vision OCR.

    346 GitHub stars~1.2k tokensUpdated yesterday
    AI & LLM EngineeringAuto-check passed
  • Codex CLI OmniRoute Config

    diegosouzapw/OmniRoute

    A step-by-step workflow for pointing the OpenAI Codex CLI at an OmniRoute gateway on Linux, macOS or Windows, plus settings that keep multi-hour sessions alive.

    75k GitHub stars~686 tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from nikships/droidproxy

  • Droid Model Setup

    nikships/droidproxy

    Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set…

    122 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Grok Imagine

    nikships/droidproxy

    Generate or edit images via Grok Imagine Image 2.0 through DroidProxy (no XAIAPIKEY).

    122 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Release

    nikships/droidproxy

    Build, sign, notarize, and publish a new DroidProxy release.

    122 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Gpt Image

What does Gpt Image do?

Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY). Gpt Image is an agent skill from nikships/droidproxy.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY).

When should I use Gpt Image?

Gpt Image fits situations like: the user asks to generate; edit an image with GPT; including transparent PNGs; droidProxy Codex OAuth is available.

How do I install Gpt Image in Claude Code?

Run `npx skills add nikships/droidproxy --skill gpt-image -a claude-code`. Or copy the skill folder (skills/gpt-image in nikships/droidproxy) into .claude/skills/gpt-image in your project. Claude Code loads it when a task matches its description.

How do I install Gpt Image in Codex?

Run `npx skills add nikships/droidproxy --skill gpt-image -a codex`. Or copy the skill folder (skills/gpt-image in nikships/droidproxy) into .agents/skills/gpt-image in your project. Codex loads it when a task matches its description.

Can I use Gpt Image in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nikships/droidproxy --skill gpt-image -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gpt-image, .gemini/skills/gpt-image, .github/skills/gpt-image and .opencode/skills/gpt-image in your project.

What does Gpt Image need to run?

Going by SKILL.md and its folder, Gpt Image needs the command-line tools its instructions call (jq and curl) and credentials named OPENAI_API_KEY. Our summary lists: A credential in OPENAI_API_KEY.

Does Gpt Image access the network?

SKILL.md names 1 domain. As links in the text: developers.openai.com. This is read from the text; nothing was executed.

Is Gpt Image safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Gpt Image use?

Gpt Image is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gpt Image use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gpt Image?

Skills that share tags, products or a category with Gpt Image: Gpt Image Gen (ninehills/skills, 280 stars), Codex Image2 (fengfengzhidao/codex-image2-skill, 144 stars), Talking Avatar Voice Chat App (buildfastwithai/gen-ai-experiments, 785 stars) and Draw Image Diagrams (RealSeaberry/AutoMCM-Pro, 257 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gpt Image?

nikships (a GitHub user) maintains it in nikships/droidproxy, which has 122 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

Source: nikships/droidproxy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.