codex-images
Skill126 starsChanged 26 days agoMITView on GitHub
Generates images with Codex (OpenAI's coding agent and its built-in image tool, included in a ChatGPT plan) - YouTube thumbnails, covers, B-roll stills, board images, profile pictures - one Codex job per image, several in parallel, with the creator's photos as reference when the face matters, then copies them into the project with a manifest. Use when the user says generate an image, a thumbnail, a cover, make me a visual, codex images, génère une image, miniature, or when publish or short-editing needs an image.
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Melvynx/ai-maxxing-skillstheir own version, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Melvynx/ai-maxxing-skills★ 32same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- brollSkill
- clipsSkill
- editingSkill
- insta-auditSkill
- outliersSkill
- publishSkill
- short-editingSkill
- short-translateSkill
- stealSkill
- studio-scriptSkill
- studio-setupSkill
- voxSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Not installed: npm i -g @openai/codex (needs Node 20+), or brew install codex on macOS.
- Very specific: line 22
Not logged in: they run codex login themselves (it opens the browser, "Sign in with ChatGPT").
- Distinctive: line 28
Ask only what is missing, in one message:
- Distinctive: line 69
Look at each image: the text spelled right, the face like them, nothing odd (hands, extra letters).
- Very specific: line 71
Write <out>/manifest.json: one entry per image with file, prompt, refs, date.
- Very specific: line 76
Delete <out>/logs/ once everything is fine.
- Distinctive: line 83
Only use photos of people who agreed, and no logos or characters they don't own.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Codex Images
Images made by Codex's built-in image tool, run from the terminal: one codex exec per image, several at once. It uses their ChatGPT plan (Plus or Pro), no API key.
Talk to them in their language. <out> = the output folder: video-agent/edits/<slug>/images/ for a video, else video-agent/images/<name>/.
1. Codex (once)
codex --version
codex login status- Not installed:
npm i -g @openai/codex(needs Node 20+), orbrew install codexon macOS. - Not logged in: they run
codex loginthemselves (it opens the browser, "Sign in with ChatGPT"). Never ask for an OpenAI key or password in the chat.
2. The brief
One image = one prompt. Never pack several ideas into one job.
Ask only what is missing, in one message:
- What for: thumbnail (1280x720, 16:9), short cover (1080x1920, 9:16), square post (1:1), a still for an image board or B-roll (the video's format).
- How many: 1 by default; 3 variants for a thumbnail (a different idea each, not the same one three times).
- Their face: a thumbnail with them in it needs 1 to 3 clear photos (a frame of a take works:
ffmpeg -v error -y -ss <t> -i <take> -frames:v 1 -q:v 2 <out>/ref-face.jpg). Pass the absolute paths.
Write each prompt in English, concrete: the subject, the framing, the background, the light, the colors, the text on the image (3 words at most, written exactly in quotes, in the video's language), and the format. For a thumbnail: one subject, big readable text, strong contrast, a face with a clear emotion, nothing in the bottom right corner (YouTube puts the duration there). Every claim on the image comes from the video.
Show the prompts in a numbered list and wait for a yes (each image uses some of their Codex usage limit).
3. Generate
One job per prompt, at most 3 at a time, each in the background. Always end with < /dev/null (without it codex exec waits for input forever), and keep the last message in a file:
mkdir -p <out>/logs
codex exec --skip-git-repo-check -s workspace-write -C "$PWD" \
--output-last-message <out>/logs/<n>-<name>.txt \
"Use your built-in image_gen tool to generate exactly one raster image for the prompt below. Do not edit any file. Do not ask questions. No SVG, no HTML, no placeholder.
Reference images (pass them to image_gen as referenced_image_paths): <absolute paths, or none>
When done, reply with exactly these two lines:
ASSET_NAME: <kebab-case-name>
IMAGE_PATH: <absolute path of the generated image>
Image prompt:
<the prompt>" \
< /dev/null > <out>/logs/<n>-<name>.log 2>&1A job takes about 1 to 3 minutes. When it ends, read its .txt, take IMAGE_PATH and copy the image:
cp "<IMAGE_PATH>" <out>/<n>-<name>.pngNo IMAGE_PATH in the answer: the newest file in ~/.codex/generated_images/ (ls -t ~/.codex/generated_images/*/* | head -3) created after the job started. Nothing new there: the job failed, show the end of its .log (often a usage limit, or codex login needed) and run that one again once.
4. Check and hand over
- One image per prompt, and no two identical (
shasum <out>/*.png). - The size:
sips -g pixelWidth -g pixelHeight <file>(macOS) orffprobe -v error -show_entries stream=width,height -of csv=p=0 <file>. A thumbnail must be 16:9: crop or scale it to 1280x720 with ffmpeg (-vf "scale=1280:720:force_original_aspect_ratio=increase,crop=1280:720"), under 2 MB as JPG. - Look at each image: the text spelled right, the face like them, nothing odd (hands, extra letters). A wrong one: fix the prompt and run that one again.
Write <out>/manifest.json: one entry per image with file, prompt, refs, date. Show the images, then:
- A thumbnail or cover:
/publishuses<edit>/images/(they pick one, it is copied as<edit>/cover.jpg, the cover and the YouTube thumbnail). - A still for a video:
/short-editingcan place it as animgitem on a board (copy it into the short'sassets/images/).
Delete <out>/logs/ once everything is fine.
Honest limits
- The image tool is OpenAI's, inside Codex: the result depends on it, and it changes. Text on the image can come out misspelled: always check it.
- A face from reference photos looks close, rarely perfect. Real photos of them stay the safest for a thumbnail.
- Each image counts against their ChatGPT plan's Codex limits; a limit reached means waiting or a bigger plan.
- Only use photos of people who agreed, and no logos or characters they don't own.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

