[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94501":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":15,"starSnapshotCount":15,"syncStatus":13,"lastSyncTime":34,"discoverSource":35},94501,"codex-bridge","Sateezg\u002Fcodex-bridge","Sateezg","Image generation (gpt-image-2) and GPT-5 subagents for Claude Code — through the Codex CLI login you already have. No OpenAI API key.","https:\u002F\u002Fgithub.com\u002FSateezg\u002Fcodex-bridge#readme",null,"Shell",272,2,281,0,75,48.93,"MIT License",false,"main",true,[23,24,25,26,27,28,29,30],"ai-agents","claude-code","claude-code-plugin","codex","gpt-5","gpt-image-2","image-generation","openai","2026-08-24 04:01:22","\u003Cdiv align=\"center\">\n\n# codex-bridge\n\n**Give Claude Code image generation and a team of GPT-5 subagents — using the Codex CLI login you already have.**\n\n[![Claude Code plugin](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FClaude%20Code-plugin-D97757)](https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fplugins)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg)](LICENSE)\n[![No API key required](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FOpenAI%20API%20key-not%20required-brightgreen)](#why-no-api-key)\n\n\u003C\u002Fdiv>\n\nClaude Code can't generate images, and everything it does runs on your Claude quota. The Codex CLI can generate images with **gpt-image-2**, and runs on your **ChatGPT plan** — a completely separate budget. This plugin bridges the two.\n\nTwo things you get:\n\n**1. Claude can produce images.** Ask for an icon, a mockup, a hero image, a full favicon set — Claude writes the prompt, drives gpt-image-2 through Codex, then *looks at the result* and regenerates if it missed.\n\n**2. Claude can delegate to GPT-5.** Four Codex-powered subagents handle review, debugging, bulk implementation, and image work. Claude stays the orchestrator: it scopes the task, Codex does the volume, Claude verifies the result. Heavy work runs on your ChatGPT quota and its intermediate output never enters your Claude context.\n\n\u003Ca id=\"why-no-api-key\">\u003C\u002Fa>\n> **No OpenAI API key.** Everything routes through `codex login`, so it bills against your ChatGPT plan rather than API credits.\n\n## Demo\n\n\u003Cdiv align=\"center\">\n\n![Claude generating an icon through Codex, in a real terminal](assets\u002Fdemo.gif)\n\n\u003C\u002Fdiv>\n\nOne style contract across a set. Each sibling was generated with an earlier icon passed as `--ref`, so the palette, stroke weight, glyph scale and margins carry over instead of being re-described and re-interpreted every time:\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ficon-rocket.png\" width=\"170\" alt=\"Paper rocket icon\"> \u003Cimg src=\"assets\u002Ficon-gear.png\" width=\"170\" alt=\"Settings gear icon\"> \u003Cimg src=\"assets\u002Ficon-shield.png\" width=\"170\" alt=\"Shield with checkmark icon\">\n\u003C\u002Fdiv>\n\n> **Every image in this repository was generated by this plugin** — the GIF above, these icons, and the social preview card. The exact commands and the VHS recording script are in [`assets\u002FREADME.md`](assets\u002FREADME.md), so you can reproduce all of it.\n\n## Contents\n\n- [Demo](#demo) · [Install](#install) · [Quickstart](#quickstart) · [What's inside](#whats-inside)\n- [Feature 1 — images](#feature-1--images) · [Feature 2 — GPT-5 subagents](#feature-2--gpt-5-subagents)\n- [How it works](#how-it-works) · [Limitations](#limitations) · [Troubleshooting](#troubleshooting)\n\n## Install\n\n**Prerequisites**\n\n| | |\n| :-- | :-- |\n| Codex CLI | `npm i -g @openai\u002Fcodex` or `brew install codex` |\n| Logged in | `codex login` → verify with `codex login status` (should say *Logged in using ChatGPT*) |\n| ChatGPT plan | Plus, Pro, or Team |\n| Claude Code | any current version |\n\n**Then:**\n\n```\n\u002Fplugin marketplace add Sateezg\u002Fcodex-bridge\n\u002Fplugin install codex-bridge@codex-bridge\n```\n\nRun `\u002Freload-plugins` if Claude Code asks you to.\n\n\u003Cdetails>\n\u003Csummary>Other install methods\u003C\u002Fsummary>\n\nTry it for one session, no install:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FSateezg\u002Fcodex-bridge.git\nclaude --plugin-dir .\u002Fcodex-bridge\n```\n\nAuto-load from your skills directory:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FSateezg\u002Fcodex-bridge.git ~\u002F.claude\u002Fskills\u002Fcodex-bridge\nchmod +x ~\u002F.claude\u002Fskills\u002Fcodex-bridge\u002Fbin\u002F*\n```\n\nLoads as `codex-bridge@skills-dir` on your next session.\n\n\u003C\u002Fdetails>\n\n## Quickstart\n\nNothing to configure. Just ask in plain language:\n\n```\ngenerate a hero image for the landing page, save it in assets\u002F\nmake the sky in assets\u002Fhero.png sunset orange, keep everything else\nset up favicons and an OG card for this project\nreview my changes before I commit\nask codex why this test only fails under --parallel\nrename useSession to useAuthSession across the whole repo\n```\n\nThe last one is the interesting case. Claude notices it's mechanical work across many files and offers the split before starting:\n\n> This touches 34 files with the same change. I can hand the edits to Codex — runs on your ChatGPT quota and keeps 34 file dumps out of this context — then review its diff here. Want me to?\n\n## What's inside\n\n**Skills** — Claude picks these up automatically; you can also call them as `\u002Fcodex-bridge:\u003Cname>`.\n\n| Skill | Fires when |\n| :-- | :-- |\n| `generate-image` | a task needs a new image that doesn't exist yet |\n| `edit-image` | you point at an image file and ask to change or restyle it |\n| `asset-set` | favicons, app icons, OG cards, or a matching icon family |\n| `ask-codex` | you want GPT-5's take on one question about this repo |\n| `codex-review` | \"review my changes\" — diff, branch, or module |\n| `codex-delegate` | a task is big or repetitive enough that delegating saves you tokens |\n\n**Subagents** — Claude launches these itself, or you can name them.\n\n| Subagent | Does | Can write files? |\n| :-- | :-- | :-- |\n| `codex-artist` | images, icon sets, style-matched asset families | images only |\n| `codex-reviewer` | review a diff, then verifies every finding against the code | no |\n| `codex-debugger` | root-cause a failure, proposes a patch | no |\n| `codex-implementer` | bulk mechanical edits and scaffolding | **yes** — after you agree |\n| `codex-second-opinion` | general independent opinion on an approach | no |\n\n**Executables** — on your `PATH` while the plugin is enabled, and usable straight from a shell.\n\n| | |\n| :-- | :-- |\n| `codex-imagegen` | generate or edit an image; prints the output path |\n| `codex-run` | run any task on Codex; prints only its final answer |\n\n## Feature 1 — images\n\n```bash\ncodex-imagegen \"flat vector rocket icon, #2563EB on white, 2px stroke, minimal\" .\u002Frocket.png\ncodex-imagegen \"change the sky to sunset orange, keep everything else identical\" .\u002Fout.png --ref .\u002Fhero.png\ncodex-imagegen \"settings gear, same style as the reference\" .\u002Fsettings.png --ref .\u002Fhome.png\n```\n\n| Option | |\n| :-- | :-- |\n| `--size WxH` | `1024x1024`, `1536x1024`, `1024x1536`, `2048x2048`, `3840x2160`, … — see note below |\n| `--ref \u003Cfile>` | source or style reference, repeatable up to 4 — turns the call into an edit |\n| `--model \u003Cname>` | model override |\n| `--timeout \u003Csec>` | default 600 |\n\nA custom size is only accepted if all of these hold: longest edge ≤ 3840px, both edges multiples of 16, long-to-short ratio ≤ 3:1, total pixels between 655,360 and 8,294,400. Square is fastest. For anything outside that — favicons, a 1200×630 OG card — generate a large master and resample locally.\n\nThe wrapper prints the path it actually wrote. Codex is instructed not to overwrite existing assets, so it occasionally saves `out-v2.png`; the wrapper detects that (and the `~\u002F.codex\u002Fgenerated_images\u002F\u003Csession>\u002F` default location) and reports the real path.\n\nWhat makes this better than pasting prompts into a chat window: the skills teach Claude to pull your **actual palette** out of `tailwind.config.*` or your design tokens, to reuse one style contract across a whole set so the assets match, to derive size variants with ImageMagick instead of regenerating, and to **open the PNG and check it** before telling you it's done.\n\n## Feature 2 — GPT-5 subagents\n\nThe point isn't \"Claude can also call GPT-5\". It's the division of labour: **Claude scopes and verifies, Codex does the volume.**\n\n```\nyou ──▶ Claude          scopes the work, writes the brief, reviews the result\n             │\n             ▼\n        codex-run ──▶ Codex CLI ──▶ GPT-5 \u002F gpt-image-2\n                                     (your ChatGPT quota)\n```\n\nBecause Codex runs as a separate process, its intermediate output — the 40 files it read, the search results, the generated boilerplate — never enters your Claude context. You pay Claude tokens only for the brief and the review.\n\n**What gets delegated**, per the `codex-delegate` rubric: mechanical edits across many files, bulk generation, exhaustive repo sweeps, all image work, and self-contained subtasks. **What doesn't:** architecture calls, ambiguous requirements, anything needing the conversation history, and small edits — round-tripping a two-line fix costs *more*, not less.\n\nEvery subagent follows the same contract: read-only by default, verify before reporting, and never claim success on unverified work. Only `codex-implementer` writes to your files, only after you've agreed, and only with a clean working tree so its changes land as a reviewable diff.\n\nStraight from a shell:\n\n```bash\ncodex-run -C . \"which module owns rate limiting? name the file\"\ncodex-run -C . -r \"now show me the minimal patch\"          # -r continues the session\ngit diff main...HEAD | codex-run -C . --timeout 1200 -      # pipe a diff in\n```\n\n| Option | |\n| :-- | :-- |\n| `-C, --cd \u003Cdir>` | working directory (default: cwd) |\n| `-s, --sandbox \u003Cmode>` | `read-only` (default), `workspace-write`, `danger-full-access` |\n| `-m, --model \u003Cname>` | e.g. `gpt-5-codex` |\n| `-r, --resume` | continue the previous session instead of starting fresh |\n| `--schema \u003Cfile>` | constrain the answer to a JSON Schema |\n| `--raw` | also dump Codex's event log to stderr |\n| `--timeout \u003Csec>` | default 900 |\n\n## How it works\n\nBoth wrappers shell out to `codex exec`, Codex's non-interactive mode.\n\n**Images** run in a `workspace-write` sandbox scoped to the output directory:\n\n```bash\ncodex exec -C \u003Coutdir> -s workspace-write --skip-git-repo-check [-i \u003Cref>...] \\\n  \"Use the \\$imagegen image generation tool to ... save to .\u002F\u003Cfile>.png ...\"\n```\n\n`$imagegen` is Codex's built-in image skill; it calls gpt-image-2 with your ChatGPT credentials and writes the PNG into the working directory. The wrapper verifies the file landed — falling back to `$CODEX_HOME\u002Fgenerated_images\u002F` if Codex saved it there instead — and prints the absolute path so Claude can read the image back.\n\n**Text tasks** capture the final message with `-o` instead of scraping the event log, so subagents get a clean answer rather than a transcript:\n\n```bash\ncodex exec -C \u003Cdir> -s read-only --skip-git-repo-check -o \u003Ctmpfile> \"\u003Ctask>\"\n```\n\nBoth fail fast and loudly: a missing `codex` binary or a logged-out session exits `1` with an actionable message rather than hanging. Timeouts exit `124`. Both handle BSD and GNU `stat`, and degrade gracefully when `timeout`\u002F`gtimeout` isn't installed.\n\n## Limitations\n\n- **Quota, not free.** Image turns burn ChatGPT plan quota roughly 3–5× faster than text turns. Set `OPENAI_API_KEY` and Codex switches to API billing instead.\n- **Transparency takes two steps.** The default path can't emit alpha, so the skills generate on a flat `#00FF00` key and strip it with the `remove_chroma_key.py` helper Codex already ships. True native transparency needs Codex's CLI fallback plus an `OPENAI_API_KEY`; the skills surface that as a choice rather than switching silently.\n- **Slow.** 1–4 minutes per image; a repo-wide Codex task can take 10+ minutes. Skills set long Bash timeouts accordingly.\n- **Codex is blind to your conversation.** Every brief has to stand alone. This is exactly why the subagents verify before reporting.\n- **macOS and Linux.** Not tested on Windows.\n\n## Troubleshooting\n\n| Symptom | Fix |\n| :-- | :-- |\n| `codex CLI not found on PATH` | install Codex CLI, then reopen your shell |\n| `codex is not logged in` | run `codex login`; confirm with `codex login status` |\n| `Operation not permitted` from codex | ownership on `~\u002F.codex` — `sudo chown -R $(whoami) ~\u002F.codex` |\n| Got `out-v2.png` instead of `out.png` | expected — Codex won't overwrite; use the path the wrapper printed |\n| Image lands somewhere unexpected | the wrapper also checks `$CODEX_HOME\u002Fgenerated_images\u002F\u003Csession>\u002F`; pass an absolute output path |\n| `failed to load models cache: missing field base_instructions` | harmless Codex cache warning; clear it with `rm -rf ~\u002F.codex\u002Fcache` if it persists |\n| Codex output full of MCP\u002Fhook errors | your Codex config, not this plugin — the wrapper ignores them. Prune unused MCP servers in `~\u002F.codex\u002Fconfig.toml` to speed runs up |\n| Skills don't show up | `\u002Freload-plugins`, then `\u002Fhelp` → Custom commands |\n| Wrapper \"permission denied\" | `chmod +x ~\u002F.claude\u002Fskills\u002Fcodex-bridge\u002Fbin\u002F*` |\n| Everything times out | raise `--timeout`; check `codex exec -C . -s read-only \"say hi\"` works standalone |\n\n## Contributing\n\nIssues and PRs welcome.\n\n```bash\nclaude plugin validate .\nbash -n bin\u002Fcodex-imagegen && bash -n bin\u002Fcodex-run\n```\n\n## Credits\n\n- [openai\u002Fcodex](https:\u002F\u002Fgithub.com\u002Fopenai\u002Fcodex) — the Codex CLI and its `$imagegen` skill\n- [Codex CLI image generation write-up](https:\u002F\u002Fcodex.danielvaughan.com\u002F2026\u002F04\u002F27\u002Fcodex-cli-image-generation-gpt-image-2-visual-development-workflows\u002F)\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","codex-bridge 是一个为 Claude Code 扩展能力的插件，使其能调用 Codex CLI 实现图像生成（基于 gpt-image-2）和协同调用 GPT-5 子智能体。核心特点包括：无需 OpenAI API Key，复用用户已登录的 Codex CLI 账户与 ChatGPT 订阅配额；支持图像风格一致性控制（如图标套系生成）；Claude 作为任务编排者，子代理执行耗资源操作并隔离上下文。适用于需在 Claude 环境中安全、低成本完成图像设计、代码审查、批量实现等混合任务的开发者与产品原型团队。","2026-08-10 02:30:09","CREATED_QUERY"]