Codex Workflows
scasella/claude-dynamic-workflows-codex
Run a dynamic-workflow script on a local Codex App Server — orchestrate many Codex / GPT agents (the agent / parallel / pipeline / phase / budget DSL) instead of Claude subagents, for codebase…
Hands bounded tasks from Codex to a signed-in ChatGPT web session at a chosen reasoning level, or opens a terminal chat in your project that you control.
$ npx skills add Nhahan/WebGPT --skill webgpt -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Nhahan/WebGPT webgpt --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/webgpt .claude/skills/webgpt && rm -rf skills-srcUse ~/.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/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .claude/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Nhahan/WebGPT/tree/main/skills/webgptType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Nhahan/WebGPT --skill webgpt -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Nhahan/WebGPT webgpt --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/webgpt .agents/skills/webgpt && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .agents/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Nhahan/WebGPT --skill webgpt -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Nhahan/WebGPT webgpt --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/webgpt .cursor/skills/webgpt && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .cursor/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Nhahan/WebGPT.git --path skills/webgpt--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Nhahan/WebGPT --skill webgpt -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Nhahan/WebGPT webgpt --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/webgpt .gemini/skills/webgpt && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .gemini/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Nhahan/WebGPT webgptInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Nhahan/WebGPT --skill webgpt -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/webgpt .github/skills/webgpt && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .github/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Nhahan/WebGPT --skill webgpt -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Nhahan/WebGPT webgpt --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Nhahan/WebGPT.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/webgpt .opencode/skills/webgpt && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "webgpt" agent skill from https://github.com/Nhahan/WebGPT/tree/main/skills/webgpt into .opencode/skills/webgpt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webgpt", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
webgptHands bounded tasks from Codex to a signed-in ChatGPT web session at a chosen reasoning level, or opens a terminal chat in your project that you control.
This skill lets Codex pass well-bounded pieces of work to ChatGPT in the browser, which saves the agent's own usage. You ask for WebGPT by name and may pick an effort level with m for medium, h for high, xh for xhigh or p for pro. The agent registers a worker connection first, then sends one concise English prompt per new chat covering the task, context, constraints and success criteria, and the result is saved back through the worker.
Several rules keep it tidy. Each chat gets one deliverable with its relevant tests, concurrent changes get assigned file ownership or worktrees, the controller key and connection URL are never sent, and every conversation must use Chat rather than Work. A second mode, webgpt open, starts a terminal chat in your project that you drive yourself. Reference files cover setup, recovery, workspace rules and browser-only replies, and the scripts include a diagnostic tool and test files.
Read from SKILL.md and the folder at commit 1d35588. It shows what the files ask for, not the result of running them.
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.
Ships 9 files in scripts/ (JavaScript, from the files we listed), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
WebGPT loads about 1.4k tokens when it runs, and up to ~8.7k if it reads all its reference files. Until then it costs about 45 tokens; SKILL.md has 688 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from Nhahan/WebGPT at commit 1d35588, republished under its MIT licence (© Nhahan). 688 words, ~1,410 tokens.
.claude/skills/webgpt/SKILL.md (or your agent's skills folder). This skill also uses 27 other files; get the full folder from GitHub.Delegate bounded work to save Codex usage. User instructions about division of work, model, monitoring, permissions, follow-ups and retention override defaults. Never silently take over WebGPT's assignment; Codex may perform separately assigned work concurrently.
Keep Codex ↔ WebGPT coordination in English, preserving source quotations and the requested
deliverable language. Reply in the user’s language unless they request another; leave browser UI language unchanged.
Every conversation must use Chat, never Work, including setup tests, browser-only work and
open. Verify Chat before composing or selecting a connector; return to Chat if a shortcut opens Work.
webgpt open [path]: follow open.md; skip delegation below.For Worker tasks, register first and use the returned connection.name and connection.registrationId.
With connection.status: ready, skip configuration/setup reads, directory searches and Plugins
rediscovery. Missing/invalid metadata routes to recovery.md; keep the registered task, do not register again.
Assign one bounded deliverable with its relevant tests per new chat. Investigate only enough to specify the objective, context, constraints and success criteria; leave routine commands to WebGPT. Avoid open-ended projects, arbitrary duration limits and separate chats for tiny actions. Assign file ownership/worktrees for concurrent changes. No duplicate task documents or tracking files.
Prepare one concise English prompt before opening the tab: task, necessary context/constraints and success criteria. Reference accessible project briefs by path instead of restating them. For Worker tasks, add the named connector/task token and “Save the final outcome through the Worker.” Tool schemas supply the completion protocol; do not repeat it. Never send the controller key or connection URL. Retain task and owned chat/tab identifiers in context.
Use documented browser initialization; reuse known browser identity without scanning all surfaces. For Worker tasks, select the existing connector in Chat by verified registration ID, or use a verified Chat launch URL. Mentioning a connector in prose does not select it. Import helpers once per runtime (again after reset/resume); allow 60 seconds per helper call:
var {dispatch, deleteAndClose} = await import('<skill>/scripts/browser.mjs');
var sent = await dispatch(tab, prompt, 'xh', {
startup: {connectorName, authorizeConversation: true}
});Modes: m|medium = Medium (중간; also Standard/표준), h|high = High,
xh|xhigh = Extra High (default), p|pro = Pro. Pass any of these aliases to dispatch.
Omit startup for browser-only work. The helper verifies mode, sends once and checks startup.
Choose Always allow / 항상 허용 for authorized WebGPT permission prompts whenever offered;
this is the helper default. Only an explicit narrower user request uses
permissionScope:'conversation'. Preserve unrelated permissions and runtime gates.
On submitted, reuse the returned URL and wait. Permission selections or not_observed do not
prove terminal readiness; do not poll startup. On submission_unconfirmed, inspect the existing
user turn without resending. Resolve other actionable states via recovery.md.
Emit only relevant evidence, not full AX trees/exports or unnecessary screenshots. If helper
imports are unavailable, use documented CUA; do not read helper source during normal operation.
Use client.mjs finish <ids> for quiet waiting, verified result text and collection in one call;
do not repeat status/read/collect. Do separately assigned Codex work after verified submission.
Without requested monitoring, inspect progress only for a due backup or explicit help/failure.
On backupDue, read recovery.md: one scoped chat check, then resume <id>, not another finish.
Waiting requires a live parent runtime; it cannot wake exited Codex.
Review once against the outcome and relevant diff/evidence. Hash integrity is not correctness.
Do not reread the returned artifact or rerun reported passing tests on the delivered version
unless evidence is missing/conflicting, failures or integration changes need checks, or the user
requests verification. Distinguish PASS/FAIL/NOT_RUN. A partial result
needs continuation; a cleanupError needs recovery. Do not duplicate WebGPT's investigation.
After preserving/reviewing results, call deleteAndClose(tab, cua, browserId, ownedChatUrl).
Permanently delete the exact owned task chat, verify deletion, close its tab and verify absence.
This cleanup is already authorized: do not ask again due to permanence, generic confirmation
notices or a new CLI session. Honor explicit retention; never delete open chats, uncollected work
or unrelated chats. Keep the connector, Worker and tunnel for reuse. Actual tool rejection or a
user-requested cleanup pause routes to recovery.md; tab closure alone never proves deletion.
© Nhahan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 27 other files (scripts, references) in skills/webgpt of Nhahan/WebGPT.
Open the folder on GitHubat commit 1d35588
WebGPT 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| WebGPT this skillNhahan/WebGPT | 120 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Codex Workflowsscasella/claude-dynamic-workflows-codex | 325 | — | ~13k | Automated safety check: Pass | MIT | |
| External Context ResearchYeachan-Heo/oh-my-claudecode | 40k | — | ~545 | Automated safety check: Pass | MIT | |
| Paseo Advisor Second Opiniongetpaseo/paseo | 20k | 1 repos | ~756 | Automated safety check: Pass | Custom licence | |
| O2 Review Loopopenobserve/openobserve | 22k | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Harness Agent Team Designerrevfactory/harness | 9.1k | — | ~4.5k | Automated safety check: Pass | Apache-2.0 |
scasella/claude-dynamic-workflows-codex
Run a dynamic-workflow script on a local Codex App Server — orchestrate many Codex / GPT agents (the agent / parallel / pipeline / phase / budget DSL) instead of Claude subagents, for codebase…
Yeachan-Heo/oh-my-claudecode
Breaks a research question into two to five facets and sends parallel document-specialist agents to search the web and documentation, then merges the results.
getpaseo/paseo
Launches one separate agent through Paseo to give a second opinion on the current task, with a self-contained briefing and no permission to edit files.
openobserve/openobserve
Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.
revfactory/harness
Designs a project-specific agent harness: defines specialist agents, writes the skills they follow, picks an execution mode and model for each, and keeps the setup maintained.
XiaoDuoYa/codex-with-chatgpt
Uses ChatGPT in the browser as the planning and review brain for a Codex session, with Codex keeping all execution and ChatGPT reading the workspace through a bridge.
Works with
Categories
Hands bounded tasks from Codex to a signed-in ChatGPT web session at a chosen reasoning level, or opens a terminal chat in your project that you control. This skill lets Codex pass well-bounded pieces of work to ChatGPT in the browser, which saves the agent's own usage. You ask for WebGPT by name and may pick an effort level with m for medium, h for high, xh for xhigh or p for pro.
WebGPT fits situations like: offloading a bounded coding task to ChatGPT on the web to save Codex usage; running a task at a specific ChatGPT effort level such as high or pro; opening a user-controlled ChatGPT terminal chat for the current project; giving a second agent a separately owned set of files to work on.
Run `npx skills add Nhahan/WebGPT --skill webgpt -a claude-code`. Or copy the skill folder (skills/webgpt in Nhahan/WebGPT) into .claude/skills/webgpt in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Nhahan/WebGPT --skill webgpt -a codex`. Or copy the skill folder (skills/webgpt in Nhahan/WebGPT) into .agents/skills/webgpt in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Nhahan/WebGPT --skill webgpt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/webgpt, .gemini/skills/webgpt, .github/skills/webgpt and .opencode/skills/webgpt in your project.
Going by SKILL.md and its folder, WebGPT needs JavaScript for the scripts in its folder. Our summary lists: A signed-in ChatGPT account on the web; A browser the agent can drive.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
WebGPT is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with WebGPT: Codex Workflows (scasella/claude-dynamic-workflows-codex, 325 stars), External Context Research (Yeachan-Heo/oh-my-claudecode, 40k stars), Paseo Advisor Second Opinion (getpaseo/paseo, 20k stars) and O2 Review Loop (openobserve/openobserve, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Nhahan (a GitHub user) maintains it in Nhahan/WebGPT, which has 120 GitHub stars. The repository was last updated on September 23, 2026.
Source: Nhahan/WebGPT on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.