{"id":50665700,"url":"https://github.com/saadjs/codex-advisor","last_synced_at":"2026-06-08T06:04:57.882Z","repository":{"id":361986193,"uuid":"1256751110","full_name":"saadjs/codex-advisor","owner":"saadjs","description":"Claude Code plugin that refines coding prompts with Codex app-server","archived":false,"fork":false,"pushed_at":"2026-06-02T04:40:58.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-02T06:08:37.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saadjs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-02T04:02:18.000Z","updated_at":"2026-06-02T04:41:02.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/saadjs/codex-advisor","commit_stats":null,"previous_names":["saadjs/codex-advisor"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/saadjs/codex-advisor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saadjs%2Fcodex-advisor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saadjs%2Fcodex-advisor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saadjs%2Fcodex-advisor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saadjs%2Fcodex-advisor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saadjs","download_url":"https://codeload.github.com/saadjs/codex-advisor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saadjs%2Fcodex-advisor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34050246,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-08T06:04:37.562Z","updated_at":"2026-06-08T06:04:57.870Z","avatar_url":"https://github.com/saadjs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Codex Advisor\n\n[![Claude Code plugin](https://img.shields.io/badge/Claude%20Code-plugin-8A63D2)](https://docs.claude.com/en/docs/claude-code/plugins)\n[![Codex app-server](https://img.shields.io/badge/Codex-app--server-111827)](https://developers.openai.com/codex/app-server)\n[![Node \u003e=20](https://img.shields.io/badge/node-%3E%3D20-339933?logo=nodedotjs\u0026logoColor=white)](package.json)\n[![GitHub last commit](https://img.shields.io/github/last-commit/saadjs/codex-advisor)](https://github.com/saadjs/codex-advisor/commits/main)\n\nCodex Advisor is a Claude Code plugin that asks `codex app-server` to rewrite a rough request into a precise coding-agent spec.\n\nThe default path is the `refine` command. All three skills are manually invoked only (`disable-model-invocation: true`) — Claude never triggers them on its own. That keeps the user in the loop before Claude acts on the rewritten prompt and avoids adding a Codex round trip to every message.\n\nThe `refine-with-context` command adds a repo-inspection pass first: file tree, current git status and diff, and ripgrep matches for likely relevant terms. It uses `gpt-5.4-mini` by default for a faster context-aware refinement pass.\n\n## Usage\n\nInstall from GitHub:\n\n```bash\nclaude plugin marketplace add saadjs/codex-advisor\nclaude plugin install codex-advisor@codex-advisor\n```\n\nOr load a local checkout for development:\n\n```bash\nclaude --plugin-dir /path/to/codex-advisor\n```\n\nThen invoke the command:\n\n```text\n/codex-advisor:refine add retry logic to the uploader\n```\n\nThe skill runs:\n\n```bash\nnode \"${CLAUDE_PLUGIN_ROOT}/scripts/codex-refine.mjs\"\n```\n\nwith the request on stdin. It prints a rewritten spec and asks whether to run it, revise it, or stop.\n\nFor a context-aware refinement pass, invoke the command:\n\n```text\n/codex-advisor:refine-with-context add retry logic to the uploader\n```\n\nIt runs:\n\n```bash\nnode \"${CLAUDE_PLUGIN_ROOT}/scripts/codex-refine.mjs\" --with-context \u003c\u003c'CODEX_ADVISOR_REQUEST'\nadd retry logic to the uploader\nCODEX_ADVISOR_REQUEST\n```\n\nThe bridge reads bounded repository context before starting the Codex turn, then asks Codex to replace speculative `ASSUMPTION`s with concrete file paths, symbols, commands, tests, and current-diff references where the context supports them.\n\nTo refine with context and run the result automatically — without the confirmation stop — invoke:\n\n```text\n/codex-advisor:refine-and-run add retry logic to the uploader\n```\n\nIt performs the same context-aware refinement as `refine-with-context`, prints the spec for the record, and then implements it in the same turn instead of asking whether to run, revise, or stop.\n\n## Optional Hook\n\n`hooks/hooks.example.json` contains an optional `UserPromptSubmit` hook. Rename or copy it to `hooks/hooks.json` only if you want automatic prompt refinement on every sufficiently long prompt.\n\nCurrent Claude Code hook docs describe `systemMessage` as the standard way to pass context from `UserPromptSubmit`. The script uses that by default. If you need the older `hookSpecificOutput.additionalContext` shape from earlier examples, pass:\n\n```bash\nnode \"${CLAUDE_PLUGIN_ROOT}/scripts/codex-refine.mjs\" --hook --hook-output=both\n```\n\nUseful environment variables:\n\n```bash\nCODEX_ADVISOR_MODEL=gpt-5.5\nCODEX_ADVISOR_CONTEXT_MODEL=gpt-5.4-mini\nCODEX_ADVISOR_EFFORT=low\nCODEX_ADVISOR_TIMEOUT_MS=90000\nCODEX_ADVISOR_MIN_CHARS=40\nCODEX_ADVISOR_DISABLE=1\nCODEX_ADVISOR_CODEX_BIN=codex\nCODEX_ADVISOR_CONTEXT_SEARCH_TERMS=8\nCODEX_ADVISOR_CONTEXT_FILE_TREE_LINES=250\nCODEX_ADVISOR_CONTEXT_DIFF_CHARS=20000\n```\n\nThe `CODEX_ADVISOR_CONTEXT_*` variables tune the bounded repository context collected for `--with-context` runs: the number of ripgrep search terms, the file-tree line cap, and the character budget for the gathered `git diff`. Non-numeric values fall back to the defaults shown above.\n\n`CODEX_ADVISOR_EFFORT` sets the Codex reasoning effort. For the default models (gpt-5.5 / gpt-5.4-mini), accepted values are `low`, `medium`, `high`, `xhigh` (default `low`). Unknown custom models pass the effort through to `codex app-server`, which remains the authoritative validator.\n\nThe bridge also accepts per-invocation flags: `--model \u003cname\u003e` and `--effort \u003clevel\u003e` override the model and reasoning effort for a single run, and `--out \u003cfile\u003e` writes the refined spec to a file in addition to stdout (text mode only).\n\nThe Codex turn is started with `approvalPolicy: \"never\"` and a read-only sandbox policy so the refinement pass cannot request interactive approvals or make changes.\n\n## Development\n\n```bash\nnpm test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaadjs%2Fcodex-advisor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaadjs%2Fcodex-advisor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaadjs%2Fcodex-advisor/lists"}