Ewo image generate
Open-source image & video generation agent skills, powered by ewo's OpenAI-compatible media API. Free to start, pay-as-you-go.
npx -y skills add RZX00/ewo-skills --skill ewo-image-generateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 15 days oldThe repository was created 15 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate or edit images. Use whenever the user asks to draw, create, or modify any picture, illustration, logo, poster, icon, or photo — 画图/画一张/生成图片/改图/做个logo/海报/插画/头像. Free to start — new ewo accounts get a trial credit; then pay-as-you-go with your own ewo key (sk-ewo-…), no subscription.
SKILL.md
4.6 KB, as published. Nobody here has run it
Image Generate & Edit — ewo open skill
A drop-in, multi-model media API. This skill calls ewo's public OpenAI-compatible endpoint; you pay only for what you generate, from a prepaid ewo wallet. Free to start — a new ewo account comes with a small trial credit, enough to try it out before you ever recharge.
- Endpoint:
POST https://api.ewo.so/v1/images/generations - Default
model:gpt-image-2. Pick a model by setting themodelfield.
Step 1 — resolve ORIGIN and KEY (first hit wins)
ORIGIN=https://api.ewo.so. For the key:
- Environment:
KEY=$EWO_API_KEY. - Config file:
~/.ewo/credentials(or%USERPROFILE%\.ewo\credentialson Windows) — a lineapi_key=sk-ewo-...or a JSON{ "api_key": "sk-ewo-..." }. - If the ewo desktop app is running, its managed key also works — set
EWO_API_KEYfrom it.
If you find no key, STOP — do not call the API. Tell the user, in their language:
This skill uses ewo's image/video API. It's free to start:
- Sign up at https://api.ewo.so/sign-up — new accounts get a free trial credit.
- Create an API key at https://api.ewo.so/keys (it starts with
sk-ewo-).- Save it:
export EWO_API_KEY=sk-ewo-...(or putapi_key=sk-ewo-...in~/.ewo/credentials), then ask me again.
Step 2 — call the endpoint
Write the JSON body to a temp file — never inline user text into shell quoting.
cat > /tmp/ewo-req.json <<'EOF'
{
"model": "gpt-image-2",
"prompt": "a fluffy orange cat, watercolor style",
"size": "1024x1024"
}
EOF
curl -sS --max-time 180 "$ORIGIN/v1/images/generations" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d @/tmp/ewo-req.json -o /tmp/ewo-resp.json
Fields
prompt(string, required) — The image prompt. When editing (image_url provided), describe the desired edit.model(string, optional) (one of: gpt-image-2) — Optional image model. Defaults togpt-image-2.image_url(string, optional) — Optional. URL or data URL of a source image to edit; when provided the invocation runs in edit mode against an edit-capable model.mask_url(string, optional) — Optional mask URL or data URL. Only valid together with image_url.size(string, optional) (one of: 1024x1024, 1024x1536, 1536x1024, auto)quality(string, optional) (one of: standard, medium, high, auto) — Requested quality tier (OpenAI-image models only). Non-OpenAI image models (Nano Banana, Doubao Seedream) ignore this and render at their native quality; it is dropped before upstream so it never causes a 4xx.background(string, optional) (one of: opaque, transparent, auto)output_format(string, optional) (one of: png, jpeg, webp)
Step 3 — save the image
The synchronous response is the OpenAI images shape: .data[0] holds either
b64_json (a multi-megabyte base64 payload — NEVER print it into the chat, it
destroys your context) or url (a short-lived link — download it immediately).
B64=$(jq -r '.data[0].b64_json // empty' /tmp/ewo-resp.json)
URL=$(jq -r '.data[0].url // empty' /tmp/ewo-resp.json)
OUT="ewo-image-$(date +%s).png" # or the path the user asked for
if [ -n "$B64" ]; then printf %s "$B64" | base64 -d > "$OUT"; else curl -sS "$URL" -o "$OUT"; fi
echo "saved: $OUT"
Finish by telling the user the saved file path.
Editing an existing image
To edit instead of generate, POST the same body plus image (a data: URL of
the source picture) to $ORIGIN/v1/images/edits. gpt-image-2 supports editing.
Failures (JSON { error: { code, message } }) — do NOT blind-retry 4xx
401(missing / invalid / expired key) → the user has no working ewo key. Walk them through Step 1 signup (sign up at https://api.ewo.so/sign-up, create a key at https://api.ewo.so/keys), then stop.402HABITAT_INSUFFICIENT_BALANCE→ the ewo wallet is empty. Tell the user, in their language, to recharge at https://api.ewo.so/console/topup, then stop. Do not retry —402is terminal.400invalid_request_error→ fix the request body against the Fields list.429→ real rate limit; honorRetry-Afterand retry once.503→ temporary ewo-side capacity issue; wait a few seconds, retry once.
Gives 0 of the 12 instructions most images graphics skills give
Counted across 371 of the 372 authors here whose files we hold, read 2026-08-06
- create a complete brand world in one imagein 19 of 371, across 5 files
- infer the brand strategy before generatingin 19 of 371, across 5 files
- use a clean presentation gridin 19 of 371, across 5 files
- confirm connection status is activein 19 of 371, across 4 files
- base the visual system on meaningin 17 of 371, across 3 files
- use very little textin 17 of 371, across 3 files
- make every panel feel connectedin 17 of 371, across 3 files
- call RUBE_SEARCH_TOOLS firstin 17 of 371, across 3 files
- convert dash-format node IDs to colon formatin 17 of 371, across 5 files
- match reference quality and rhythm if providedin 16 of 371, across 2 files
- narrow scope or reduce depth to avoid oversized payloadsin 16 of 371, across 4 files
- generate a simple and memorable logoin 15 of 371, across 1 file
Said here and by no other author read
- resolve the API key first
- stop immediately if no API key is found
- use curl to call the endpoint
- decode base64 responses to a file
- download URL responses immediately
- tell the user the saved file path
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.