Agent Readiness Audit
indranilbanerjee/digital-marketing-pro
Audit whether AI agents and AI crawlers can actually use a site — robots.txt rules per AI crawler token (OpenAI, Anthropic and Perplexity bots, Google-Extended, Applebot-Extended)…
Search ChatGPT and extract the full response + hydration JSON that powers the UI.
$ npx skills add SeifBenayed/cloclo --skill chatgpt-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SeifBenayed/cloclo chatgpt-search --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/SeifBenayed/cloclo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/chatgpt-search .claude/skills/chatgpt-search && 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 "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .claude/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-searchType 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 SeifBenayed/cloclo --skill chatgpt-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SeifBenayed/cloclo chatgpt-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SeifBenayed/cloclo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/chatgpt-search .agents/skills/chatgpt-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .agents/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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 SeifBenayed/cloclo --skill chatgpt-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SeifBenayed/cloclo chatgpt-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SeifBenayed/cloclo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/chatgpt-search .cursor/skills/chatgpt-search && 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 "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .cursor/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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/SeifBenayed/cloclo.git --path .claude/skills/chatgpt-search--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 SeifBenayed/cloclo --skill chatgpt-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SeifBenayed/cloclo chatgpt-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SeifBenayed/cloclo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/chatgpt-search .gemini/skills/chatgpt-search && 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 "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .gemini/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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 SeifBenayed/cloclo chatgpt-searchInstalls 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 SeifBenayed/cloclo --skill chatgpt-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SeifBenayed/cloclo.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/chatgpt-search .github/skills/chatgpt-search && 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 "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .github/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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 SeifBenayed/cloclo --skill chatgpt-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SeifBenayed/cloclo chatgpt-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SeifBenayed/cloclo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/chatgpt-search .opencode/skills/chatgpt-search && 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 "chatgpt-search" agent skill from https://github.com/SeifBenayed/cloclo/tree/main/.claude/skills/chatgpt-search into .opencode/skills/chatgpt-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "chatgpt-search", 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.
chatgpt-searchSearch ChatGPT and extract the full response + hydration JSON that powers the UI.
Chatgpt Search is an agent skill from SeifBenayed/cloclo. Search ChatGPT and extract the full response + hydration JSON that powers the UI. Attaches to a running Chrome instance (port 9222 by default), opens ChatGPT, submits a query, waits for the streamed response, and returns structured data: messages, product cards, hydration JSON, and API calls. Use when asked to "search chatgpt", "ask chatgpt", "chatgpt search", "get chatgpt response", or "scrape chatgpt".
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Data & Analytics, covering Web scraping and Schema markup. It works with OpenAI. The repository describes itself as: Open-source Claude Code SDK — single-file CLIs in Node.js, Python, Go, Rust that use directly. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 00f5195. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BrowserBashReadWriteGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
chatgpt.comFrom 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.
Chatgpt Search loads about 1.7k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 286 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Browser, Bash, Read, Write, Glob, GrepAutomated 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); files beside SKILL.md are not scanned.
The full file from SeifBenayed/cloclo at commit 00f5195, republished under its MIT licence (© SeifBenayed). 286 words, ~1,748 tokens.
.claude/skills/chatgpt-search/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.A Chrome instance must be running with --remote-debugging-port=9222.
If not running, launch it:
# Kill existing Chrome first
pkill -9 -f "Google Chrome" 2>/dev/null; sleep 2
# Launch with debug port + user's real profile copy
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.claude/browser-profiles/chrome-debug-full" \
--no-first-run &>/dev/null &If the profile doesn't exist yet, create it by copying the user's real Chrome profile:
REAL="$HOME/Library/Application Support/Google/Chrome"
COPY="$HOME/.claude/browser-profiles/chrome-debug-full"
mkdir -p "$COPY"
cp "$REAL/Local State" "$COPY/" 2>/dev/null
cp -R "$REAL/Default" "$COPY/Default" 2>/dev/null
rm -rf "$COPY/Default/Cache" "$COPY/Default/Code Cache" 2>/dev/nullThe user provides a search query. Execute these steps:
curl -s http://127.0.0.1:9222/json/version | head -1If it fails, launch Chrome as described in Prerequisites.
Browser { action: "new_session", session_id: "chatgpt", cdp_url: "http://127.0.0.1:9222" }
Browser { action: "enable_network_log", session_id: "chatgpt" }
Browser { action: "new_tab", url: "https://chatgpt.com", session_id: "chatgpt" }Wait 5 seconds for page load.
Browser { action: "evaluate", session_id: "chatgpt", value: "window.__sse=[];window.__api=[];const _f=window.fetch;window.fetch=async function(...a){const url=typeof a[0]==='string'?a[0]:a[0]?.url||'?';const m=a[1]?.method||'GET';const rb=a[1]?.body;const resp=await _f.apply(this,a);const ct=resp.headers.get('content-type')||'';const cl=resp.clone();if(ct.includes('event-stream')){const rd=cl.body.getReader();const dc=new TextDecoder();let full='';(async()=>{try{while(true){const{done,value:v}=await rd.read();if(done)break;full+=dc.decode(v,{stream:true});}}catch{}window.__sse.push({url,m,s:resp.status,sz:full.length,body:full,ts:Date.now()});})();}else{cl.text().then(t=>{if(t.length>30)window.__api.push({url,m,s:resp.status,sz:t.length,body:t,ts:Date.now()});}).catch(()=>{});}return resp;};'ok'" }Use real CDP key events for React compatibility:
Browser { action: "click", selector: "#prompt-textarea, textarea", session_id: "chatgpt" }Then type each character of the query using send_keys — but for long queries, use evaluate with the native setter:
Browser { action: "evaluate", session_id: "chatgpt", value: "Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,'value').set.call(document.querySelector('#prompt-textarea,textarea'),'THE QUERY HERE');document.querySelector('#prompt-textarea,textarea').dispatchEvent(new Event('input',{bubbles:true}));'typed'" }Wait 800ms, then submit:
Browser { action: "evaluate", session_id: "chatgpt", value: "(function(){var btn=document.querySelector('[data-testid=\"send-button\"],button[aria-label*=\"Envoyer\"],button[aria-label*=\"Send\"]');if(btn&&!btn.disabled){btn.click();return 'sent';}var btns=[...document.querySelectorAll('button')];var s=btns.find(function(b){return b.querySelector('svg')&&!b.disabled&&b.closest('[class*=\"composer\"]');});if(s){s.click();return 'sent-svg';}return 'no-btn';})()" }Poll every 5 seconds for up to 60 seconds, checking message count:
Browser { action: "evaluate", session_id: "chatgpt", value: "document.querySelectorAll('[data-message-author-role]').length" }Stop when message count >= 2 (user + assistant).
Messages (user + assistant full text):
Browser { action: "evaluate", session_id: "chatgpt", value: "(function(){var msgs=document.querySelectorAll('[data-message-author-role]');var r=[];msgs.forEach(function(m){r.push({role:m.getAttribute('data-message-author-role'),text:m.textContent.trim()})});return JSON.stringify(r);})()" }Hydration JSON (session, config, feature flags):
Browser { action: "evaluate", session_id: "chatgpt", value: "var e=document.querySelector('script[type=\"application/json\"]');e?e.textContent:''" }Intercepted SSE streams (conversation stream + search product updates):
Browser { action: "evaluate", session_id: "chatgpt", value: "JSON.stringify((window.__sse||[]).map(function(s){return{url:s.url,method:s.m,status:s.s,size:s.sz}}))" }To get a specific SSE body (e.g., index 0):
Browser { action: "evaluate", session_id: "chatgpt", value: "(window.__sse||[])[0]?.body||''" }Intercepted API calls:
Browser { action: "evaluate", session_id: "chatgpt", value: "JSON.stringify((window.__api||[]).filter(function(a){return a.url.includes('backend')}).map(function(a){return{url:a.url,method:a.m,status:a.s,size:a.sz}}))" }CDP network log (all HTTP requests/responses):
Browser { action: "get_network_log", session_id: "chatgpt", filter: "backend" }Save all extracted data to /tmp/chatgpt-search-*.json:
/tmp/chatgpt-search-messages.json — user + assistant messages/tmp/chatgpt-search-hydration.json — UI hydration JSON/tmp/chatgpt-search-sse.json — SSE stream data (if captured)/tmp/chatgpt-search-api.json — API call responsesPresent the assistant's response to the user, and list saved files with sizes.
## ChatGPT Search: [query]
### Response
[Full assistant message text]
### Files saved
- /tmp/chatgpt-search-messages.json (X KB) — conversation messages
- /tmp/chatgpt-search-hydration.json (X KB) — UI hydration data
- /tmp/chatgpt-search-sse.json (X KB) — SSE streams
- /tmp/chatgpt-search-api.json (X KB) — API responses
### Metadata
- Model: [from hydration or conversation init]
- Session ID: [from hydration]
- Country: [from hydration]Browser { action: "close_session", session_id: "chatgpt" }© SeifBenayed, 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 1 other file in .claude/skills/chatgpt-search of SeifBenayed/cloclo.
Open the folder on GitHubat commit 00f5195
Chatgpt Search 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 |
|---|---|---|---|---|---|---|
| Chatgpt Search this skillSeifBenayed/cloclo | 114 | — | ~1.7k | Automated safety check: Notes | MIT | |
| Agent Readiness Auditindranilbanerjee/digital-marketing-pro | 855 | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Axyusukebe/ax | 719 | 1 repos | ~918 | Automated safety check: Pass | MIT | |
| Meowhub Browserzhaojiaqi/MeowHub | 111 | — | ~1.6k | Automated safety check: Pass | GPL-3.0 | |
| SEO Firecrawlseranking/seo-skills | 160 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Facebook Page Postsbrowser-act/skills | 6.1k | — | ~2.3k | Automated safety check: Pass | MIT |
indranilbanerjee/digital-marketing-pro
Audit whether AI agents and AI crawlers can actually use a site — robots.txt rules per AI crawler token (OpenAI, Anthropic and Perplexity bots, Google-Extended, Applebot-Extended)…
yusukebe/ax
Use the ax CLI instead of curl + throwaway parsing scripts whenever you fetch a URL, explore an unknown web page, or extract structured data from HTML.
zhaojiaqi/MeowHub
Browse the web using Browserless.io cloud browser service. An agent skill from zhaojiaqi/MeowHub.
seranking/seo-skills
Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.
browser-act/skills
Scrapes posts from any public Facebook Page timeline, returning structured data including post text, author info, engagement metrics (likes/comments/shares), reaction breakdowns…
browser-act/skills
Scrapes posts from any public Facebook Page or personal Profile timeline, returning structured data including post text, author info with profile picture, engagement metrics (likes/comments/shares)…
SeifBenayed/cloclo
Visual feedback browser automation with multi-session, multi-tab, iframe support, and enterprise primitives.
SeifBenayed/cloclo
Review code for unnecessary complexity and simplify it. An agent skill from SeifBenayed/cloclo.
SeifBenayed/cloclo
Create a git commit with a good message. An agent skill from SeifBenayed/cloclo.
SeifBenayed/cloclo
Troubleshoot and debug issues. An agent skill from SeifBenayed/cloclo.
SeifBenayed/cloclo
Review a pull request for bugs, security issues, and improvements.
Works with
Categories
Search ChatGPT and extract the full response + hydration JSON that powers the UI. Chatgpt Search is an agent skill from SeifBenayed/cloclo. Search ChatGPT and extract the full response + hydration JSON that powers the UI.
Chatgpt Search fits situations like: asked to search chatgpt; get chatgpt response.
Run `npx skills add SeifBenayed/cloclo --skill chatgpt-search -a claude-code`. Or copy the skill folder (.claude/skills/chatgpt-search in SeifBenayed/cloclo) into .claude/skills/chatgpt-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SeifBenayed/cloclo --skill chatgpt-search -a codex`. Or copy the skill folder (.claude/skills/chatgpt-search in SeifBenayed/cloclo) into .agents/skills/chatgpt-search 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 SeifBenayed/cloclo --skill chatgpt-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chatgpt-search, .gemini/skills/chatgpt-search, .github/skills/chatgpt-search and .opencode/skills/chatgpt-search in your project.
Going by SKILL.md and its folder, Chatgpt Search needs JavaScript for the scripts in its folder and the command-line tools its instructions call (curl). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Browser, Bash, Read, Write, Glob, Grep.
SKILL.md names 1 domain. In commands or code: chatgpt.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Chatgpt Search 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.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Chatgpt Search: Agent Readiness Audit (indranilbanerjee/digital-marketing-pro, 855 stars), Ax (yusukebe/ax, 719 stars), Meowhub Browser (zhaojiaqi/MeowHub, 111 stars) and SEO Firecrawl (seranking/seo-skills, 160 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SeifBenayed (a GitHub user) maintains it in SeifBenayed/cloclo, which has 114 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on April 5, 2026.
Source: SeifBenayed/cloclo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.