Content Brief
Ryze-AI-Adgent/open-seo-mcp-skills
SERP-driven content brief for a target keyword — what ranks, what to cover, headings, questions, internal links from your own data.
Route GEO and generative engine optimization requests to an available GEOHub capability.
$ npx skills add yaojingang/GEOHub --skill geo -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yaojingang/GEOHub geo --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/yaojingang/GEOHub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/geo .claude/skills/geo && 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 "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .claude/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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/yaojingang/GEOHub/tree/main/skills/geoType 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 yaojingang/GEOHub --skill geo -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yaojingang/GEOHub geo --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaojingang/GEOHub.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/geo .agents/skills/geo && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .agents/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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 yaojingang/GEOHub --skill geo -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yaojingang/GEOHub geo --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaojingang/GEOHub.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/geo .cursor/skills/geo && 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 "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .cursor/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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/yaojingang/GEOHub.git --path skills/geo--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 yaojingang/GEOHub --skill geo -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yaojingang/GEOHub geo --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaojingang/GEOHub.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/geo .gemini/skills/geo && 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 "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .gemini/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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 yaojingang/GEOHub geoInstalls 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 yaojingang/GEOHub --skill geo -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yaojingang/GEOHub.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/geo .github/skills/geo && 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 "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .github/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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 yaojingang/GEOHub --skill geo -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yaojingang/GEOHub geo --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaojingang/GEOHub.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/geo .opencode/skills/geo && 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 "geo" agent skill from https://github.com/yaojingang/GEOHub/tree/main/skills/geo into .opencode/skills/geo/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo", 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.
geoRoute GEO and generative engine optimization requests to an available GEOHub capability.
Geo is an agent skill from yaojingang/GEOHub. Route GEO and generative engine optimization requests to an available GEOHub capability. Use for broad GEO requests, GEOHub workflow selection, capability checks, or requests spanning discovery, brand/site/page diagnosis, multi-page website diagnosis, content, strategy, knowledge, publishing, and measurement.
Its SKILL.md is about 360 tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts and reference files (for example `agents/interface.yaml`, `evals/semantic_config.json` and `evals/trigger_cases.json`).
It sits in Marketing & SEO, covering AI search optimization and Content strategy. It works with Python. The repository describes itself as: GEOHub: open, evidence-bounded GEO and SEO agent skills for AI Search, with research-grounded discovery, diagnosis, content, measurement, and one-line SEO planning. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2210f7f. 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 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3pythonFrom 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.
Geo loads about 364 tokens when it runs, and up to ~906 if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 141 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 yaojingang/GEOHub at commit 2210f7f, republished under its AGPL-3.0 licence (© yaojingang). 141 words, ~364 tokens.
.claude/skills/geo/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.references/routing-contract.md and the suite resolver contract at ../RESOLVER.md.python3 scripts/run_route.py --text "<request>" or python -m geo_seo_hub route --text "<request>". Add --lexical-only for the deterministic baseline or --plan-output <path> to compile a TaskPlan.decision.type is single_skill or workflow, runnable is true, and the selected Skill has a non-null entry.clarify, abstain, pending-implementation, or planned, preserve the reported reason, alternatives, required inputs, and execution boundary.Return the selected skill ID, lifecycle status, runnable flag, reason, entry path, suggestion, typed decision object, and optional stable workflow DAG. When requested, write a validated TaskPlan with its digest and status.
This skill selects and plans capabilities. Workflow execution requires an explicit TaskPlan, file-backed input map, bounded output root, and every declared approval or external-evidence gate. It does not simulate unavailable stages.
© yaojingang, AGPL-3.0. 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 10 other files (scripts, references) in skills/geo of yaojingang/GEOHub.
Open the folder on GitHubat commit 2210f7f
Geo 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 |
|---|---|---|---|---|---|---|
| Geo this skillyaojingang/GEOHub | 165 | — | ~364 | Automated safety check: Pass | AGPL-3.0 | |
| Content BriefRyze-AI-Adgent/open-seo-mcp-skills | 4.6k | — | ~610 | Automated safety check: Pass | MIT | |
| Geo Content Planningonvoyage-ai/gtm-engineer-skills | 1.3k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Blog StrategyAgriciDaniel/claude-blog | 2.3k | — | ~4.4k | Automated safety check: Pass | MIT | |
| SEO Aeo Content Clusterhenryalouf/ruflow | 157 | — | ~954 | Automated safety check: Pass | MIT | |
| SEO Geoeunomia-bpf/eunomia.dev | 236 | — | ~2.1k | Automated safety check: Pass | MIT |
Ryze-AI-Adgent/open-seo-mcp-skills
SERP-driven content brief for a target keyword — what ranks, what to cover, headings, questions, internal links from your own data.
onvoyage-ai/gtm-engineer-skills
Reads existing brand DNA, keywords.csv, and prompts.csv, then produces a plan.csv — a strictly-schema'd content architecture telling the next pipeline step which pages to create, for which…
AgriciDaniel/claude-blog
Blog strategy development including topic cluster architecture with hub-and-spoke design, audience mapping, competitive landscape analysis, AI citation surface strategy across ChatGPT/Perplexity/AI…
henryalouf/ruflow
Builds a topical authority map with a pillar page, prioritised cluster articles, content types, internal link map, and content gap analysis.
eunomia-bpf/eunomia.dev
Technical-only page-level and site-level SEO/GEO checklist for eunomia.dev content.
rampstackco/claude-skills
How to author a content brief that actually guides a writer (human or AI) to produce a piece that ranks, converts, or both.
yaojingang/GEOHub
Crawl one public website from a supplied URL, select up to ten representative page types, score evidence-lined GEO readiness, and generate a standalone visual HTML report.
yaojingang/GEOHub
Create evidence-lined GEO titles, explainers, neutral comparisons, method-backed rankings, page blueprints, refinements, and article-friendly Markdown.
yaojingang/GEOHub
Diagnose a brand, website, or page for evidence-backed GEO gaps and opportunities from user-supplied URLs, HTML, or evidence.
yaojingang/GEOHub
Discover evidence-aware GEO questions, query rewrites, intent clusters, and prioritized content opportunities from a structured brief.
yaojingang/GEOHub
Build and query an evidence-lined GEO knowledge graph from approved source bundles.
yaojingang/GEOHub
Measure GEO visibility from an approved, file-backed engine observation bundle.
Works with
Categories
Route GEO and generative engine optimization requests to an available GEOHub capability. Geo is an agent skill from yaojingang/GEOHub. Route GEO and generative engine optimization requests to an available GEOHub capability.
Geo fits situations like: broad GEO requests; GEOHub workflow selection; capability checks; requests spanning discovery.
Run `npx skills add yaojingang/GEOHub --skill geo -a claude-code`. Or copy the skill folder (skills/geo in yaojingang/GEOHub) into .claude/skills/geo in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yaojingang/GEOHub --skill geo -a codex`. Or copy the skill folder (skills/geo in yaojingang/GEOHub) into .agents/skills/geo 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 yaojingang/GEOHub --skill geo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/geo, .gemini/skills/geo, .github/skills/geo and .opencode/skills/geo in your project.
Going by SKILL.md and its folder, Geo needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and python). Our summary lists: Python 3.
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.
Geo is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 364 tokens (SKILL.md is roughly 1.5k 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 542 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Geo: Content Brief (Ryze-AI-Adgent/open-seo-mcp-skills, 4.6k stars), Geo Content Planning (onvoyage-ai/gtm-engineer-skills, 1.3k stars), Blog Strategy (AgriciDaniel/claude-blog, 2.3k stars) and SEO Aeo Content Cluster (henryalouf/ruflow, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yaojingang (a GitHub user) maintains it in yaojingang/GEOHub, which has 165 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on August 31, 2026.
Source: yaojingang/GEOHub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.