Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek).

MITAuto-check: notesMarketing & SEO

Install Aeo

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill aeo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills aeo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo/capabilities/aeo .claude/skills/aeo && rm -rf skills-src

Use ~/.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/

Facts

Skill name
aeo
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.4k tokens
SKILL.md length
1,115 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek).

  • Works in 4 steps: "See the dashboard" — npx… → "Audit my website" — run a website… → "Get recommendations" — detailed… → …
  • Tasks that involve AI search optimization
  • SKILL.md covers Auto-Detect: What Does the…, Setup, Run Analysis and Website Audit, plus 2 more sections
  • Calls npx and node; needs GOOSE_AEO_OPENAI_API_KEY and GOOSE_AEO_PERPLEXITY_API_KEY

What it does

Aeo is an agent skill from gooseworks-ai/goose-skills. Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It sits in Marketing & SEO, covering AI search optimization and Web search. It works with OpenAI, DeepSeek and Perplexity. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.

When your agent uses it

  • Tasks that involve AI search optimization
  • Tasks that involve Web search

Example prompts

  • “/aeo”

Requirements

  • Node.js
  • A credential in GOOSE_AEO_PERPLEXITY_API_KEY
  • A credential in GOOSE_AEO_OPENAI_API_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. "See the dashboard" — npx goose-aeo@latest dashboard
  2. "Audit my website" — run a website readability audit
  3. "Get recommendations" — detailed improvement recommendations
  4. "Compare with previous run" — if 2+ runs exist, run a diff

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GOOSE_AEO_OPENAI_API_KEY
    • GOOSE_AEO_PERPLEXITY_API_KEY
    • GOOSE_AEO_GEMINI_API_KEY
    • GOOSE_AEO_GROK_API_KEY
    • GOOSE_AEO_CLAUDE_API_KEY
    • GOOSE_AEO_DEEPSEEK_API_KEY
    • GOOSE_AEO_FIRECRAWL_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Aeo loads about 2.4k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,115 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~69
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:70
    the values. When they do, write them to `.env`:
  • NoteMentions a .env fileSKILL.md:73
    OOSE_AEO_PERPLEXITY_API_KEY=pplx-...' >> .env

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,115 words, ~2,409 tokens.

Download SKILL.mdSave it as .claude/skills/aeo/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
aeo
description
Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.
tags
seo

You are helping a user check and improve their brand's Answer Engine Optimization (AEO) — how visible they are across AI search engines like ChatGPT, Perplexity, Gemini, Grok, Claude, and DeepSeek.

You use the npx goose-aeo@latest CLI to do everything. Always use --json for machine-readable output — never rely on interactive prompts.

Auto-Detect: What Does the User Need?

Before doing anything, check the current state:

bash
cat .goose-aeo.yml 2>/dev/null || echo "NOT_FOUND"

Then route based on state and what the user asked:

StateUser saysAction
No .goose-aeo.ymlAnything AEO-relatedStart with Setup
Config exists, no runs"run", "check", "analyze"Go to Run Analysis
Config exists, has runs"run", "check"Go to Run Analysis
Config exists, has runs"audit", "score my site"Go to Website Audit
Config exists, has runs"recommend", "what should I do"Go to Recommendations
Config exists, has runsGeneral AEO requestShow status summary, offer all options

If in doubt, run npx goose-aeo@latest status --json to see the full picture (company name, query count, previous runs) and ask the user what they'd like to do.


Setup

Set up AEO tracking for a domain. Have a natural conversation with the user to gather what's needed.

Gather Information

Ask the user for:

  • Company domain (e.g., athina.ai) — required
  • Company name (e.g., "Athina AI") — if not provided, derive from domain
  • A few competitors — ask "Who are your main competitors?" If they're not sure, say you'll auto-discover them.
  • Which AI engines to monitor — default is Perplexity, OpenAI, and Gemini. Ask if they want to add Grok, Claude, or DeepSeek. More providers = higher cost per run.

Do NOT proceed until you have at least the company domain.

Check Prerequisites

Check which API keys are available:

bash
node -e "
const keys = {
  GOOSE_AEO_PERPLEXITY_API_KEY: !!process.env.GOOSE_AEO_PERPLEXITY_API_KEY,
  GOOSE_AEO_OPENAI_API_KEY: !!process.env.GOOSE_AEO_OPENAI_API_KEY,
  GOOSE_AEO_GEMINI_API_KEY: !!process.env.GOOSE_AEO_GEMINI_API_KEY,
  GOOSE_AEO_GROK_API_KEY: !!process.env.GOOSE_AEO_GROK_API_KEY,
  GOOSE_AEO_CLAUDE_API_KEY: !!process.env.GOOSE_AEO_CLAUDE_API_KEY,
  GOOSE_AEO_DEEPSEEK_API_KEY: !!process.env.GOOSE_AEO_DEEPSEEK_API_KEY,
  GOOSE_AEO_FIRECRAWL_API_KEY: !!process.env.GOOSE_AEO_FIRECRAWL_API_KEY,
};
console.log(JSON.stringify(keys, null, 2));
"

Tell the user which keys are set and which are missing for their chosen providers. If keys are missing, ask them to provide the values. When they do, write them to .env:

bash
echo 'GOOSE_AEO_PERPLEXITY_API_KEY=pplx-...' >> .env

The GOOSE_AEO_OPENAI_API_KEY is also needed for query generation and analysis (not just as a monitored provider). Make sure the user knows this.

Run Init

Build the flags from what the user told you:

bash
npx goose-aeo@latest init \
  --domain <domain> \
  --name "<company name>" \
  --providers <comma-separated-providers> \
  --competitors "<comma-separated-competitor-domains>" \
  --json

If the user didn't provide competitors, the tool will auto-discover them using Perplexity (if the API key is set).

Show the user the competitors and providers configured. Ask: "Do these competitors look right? Want to add or remove any?"

If the user wants changes, edit .goose-aeo.yml directly — do NOT re-run init.

Generate Queries

Generate a small batch for review:

bash
npx goose-aeo@latest queries generate --limit 10 --dry-run --json

Show the queries in a readable numbered list. Ask: "Do these look like the kind of things your potential customers would search for?"

If queries are off-topic, update the company description in .goose-aeo.yml and re-generate. To add specific queries: npx goose-aeo@latest queries add "<query text>" --json. To remove: npx goose-aeo@latest queries remove <id> --json.

Once approved, generate the full set:

bash
npx goose-aeo@latest queries generate --limit 50 --json
Hand Off

Tell the user setup is complete and offer to run their first analysis right away. Mention approximate cost: 50 queries x 3 providers ~ $2-5 per run.


Run Analysis

Execute queries against AI search engines and generate a visibility report.

Pre-Flight
bash
npx goose-aeo@latest status --json

Show: company name, number of queries, number of previous runs.

Cost Estimate
bash
npx goose-aeo@latest run --dry-run --json

Tell the user: number of queries, which providers, total API calls, estimated cost. Ask for confirmation before proceeding.

Execute
bash
npx goose-aeo@latest run --confirm --json

This may take several minutes. Tell the user it's running.

Analyze
bash
npx goose-aeo@latest analyze --json

Note how many responses were analyzed, analysis cost, and any alerts from metric drops.

Report
bash
npx goose-aeo@latest report --json

Present a conversational summary — do NOT dump raw numbers:

  • Overall visibility: mention rate, prominence score, share of voice
  • By provider: mention rate per engine
  • Key insights: best/worst provider, competitor comparison, any alerts
  • Recommendations: 2-3 actionable suggestions based on results
Next Steps

Offer:

  1. "See the dashboard" — npx goose-aeo@latest dashboard
  2. "Audit my website" — run a website readability audit
  3. "Get recommendations" — detailed improvement recommendations
  4. "Compare with previous run" — if 2+ runs exist, run a diff

Website Audit

Scrape website pages and score each for AI search readability across 6 dimensions.

Pre-Flight
bash
npx goose-aeo@latest status --json

If not set up, direct the user to setup first.

Run Audit
bash
npx goose-aeo@latest audit --json

This may take a minute or two as it scrapes pages and scores each one.

Show full SKILL.md (439 more words)Show less
Present Results

Overall score: "Your site scores X.X / 10 for AI search readability"

  • = 7: well-optimized

  • 4-7: room for improvement
  • < 4: needs significant work

Per-page highlights: Best and worst scoring pages.

Dimension breakdown — explain which are strongest and weakest:

  • Positioning Clarity: Does your site clearly explain what you do upfront?
  • Structured Content: Do pages use headings, lists, FAQs that AI can parse?
  • Query Alignment: Does your content match what people ask AI engines?
  • Technical Signals: Schema markup, meta descriptions, clean HTML?
  • Content Depth: Enough detail for AI to form a meaningful citation?
  • Comparison Content: Do you compare yourself to alternatives?

Recommendations: Present as numbered actionable items.

Offer to Fix

Based on lowest-scoring dimensions, offer specific actions:

  • Low structuredContent: "Want me to add FAQ sections to your key pages?"
  • Low comparisonContent: "Want me to create a comparison page?"
  • Low queryAlignment: "Want me to create content pages that answer your tracked queries?"
  • Low technicalSignals: "Want me to improve meta descriptions and add schema markup?"
  • Low positioningClarity: "Want me to rewrite your homepage intro?"
  • Low contentDepth: "Want me to expand content on your thinnest pages?"

Recommendations

Analyze latest run data and produce actionable visibility improvement recommendations.

Pre-Flight
bash
npx goose-aeo@latest status --json

If no runs exist, tell the user to run an analysis first.

Generate
bash
npx goose-aeo@latest recommend --json
Present Results

Overall summary: Big picture of the brand's AI visibility position.

Visibility gaps: For each gap — the topic, affected queries, which competitors are mentioned instead, and the specific recommendation.

Source opportunities: Domains frequently cited by AI engines, how often, and how to get featured there.

Competitor insights: Who's outperforming, on which queries, and what they might be doing differently.

Offer Next Steps
  1. "Draft content for gaps" — create blog posts, landing pages, or FAQ content for visibility gaps
  2. "Create a comparison page" — draft a vs/comparison page if competitors are being mentioned instead
  3. "Write a guest post pitch" — draft outreach for source opportunity domains
  4. "Update queries" — add new query angles the recommendations suggest
  5. "See the dashboard" — npx goose-aeo@latest dashboard for visual exploration

Error Handling

  • "No company found" / no .goose-aeo.yml: Run setup first.
  • "GOOSE_AEO_OPENAI_API_KEY is required": Tell the user to set the env var — it's needed for query generation, analysis, and recommendations.
  • Provider API key missing: Tell the user which key is needed and how to set it.
  • No pages scraped during audit: Check the domain in .goose-aeo.yml and whether the site is publicly accessible.
  • All-zero visibility: Explain this means AI engines aren't mentioning the brand yet — this is the baseline to improve from.
  • Partial run failure: Some providers may have succeeded. Check error count and report which failed.
  • Never silently swallow errors — always show them and suggest a fix.

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/seo/capabilities/aeo of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Aeo 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.

Aeo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Aeo this skillgooseworks-ai/goose-skills1.2k1 repos~2.4kAutomated safety check: NotesMIT
Geoliangdabiao/GEO-Content-Optimizer-Skill2051 repos~2.3kAutomated safety check: NotesMIT
Geo Fundamentalswasp-lang/wasp19k9 repos~861Automated safety check: PassMIT
Marketing OsYuzzyuk/marketing-os540—~2.5kAutomated safety check: PassMIT
Orangeo AI Visibility SkillOranAi-Ltd/orangeo-ai-visibility-skill140—~1.5kAutomated safety check: PassMIT
Geo Optimizerliangdabiao/GEO-Content-Optimizer-Skill205—~1.1kAutomated safety check: PassNone

Similar skills

  • Geo

    liangdabiao/GEO-Content-Optimizer-Skill

    完整的 GEO(生成式引擎优化)服务流水线:给一个产品官网 URL 和介绍材料, 做站点诊断与 AI 答案采样、生成带验收标准的执行工单、产出可直接部署的资产 (llms.txt / JSON-LD / 定义块 / FAQ / 内容大纲与初稿)、自动验收工单是否闭环、 并打包成可直接发给客户的交付物。可按周期复跑,做长期 GEO 运营与月报。

    205 GitHub starsUsed in 1 repo~2.3k tokens
    Marketing & SEOAuto-check: notes
  • Geo Fundamentals

    wasp-lang/wasp

    Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).

    19k GitHub starsUsed in 9 repos~861 tokens
    Marketing & SEOAuto-check passed
  • Marketing Os

    Yuzzyuk/marketing-os

    A complete marketing department in one skill. An agent skill from Yuzzyuk/marketing-os.

    540 GitHub stars~2.5k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Orangeo AI Visibility Skill

    OranAi-Ltd/orangeo-ai-visibility-skill

    Audit brand AI visibility readiness and prepare OranGEO-style GEO, AEO, LLM SEO, and AI search optimization action plans.

    140 GitHub stars~1.5k tokensUpdated 4 mo ago
    Marketing & SEOAuto-check passed
  • Geo Optimizer

    liangdabiao/GEO-Content-Optimizer-Skill

    GEO (Generative Engine Optimization) 全流程优化工具。帮助品牌内容被 ChatGPT、Perplexity、Gemini 等 AI 搜索引擎引用。

    205 GitHub stars~1.1k tokensUpdated 2 mo ago
    Marketing & SEOAuto-check passed
  • SEO Audit

    shadcn-labs/agentcn

    How to present the deterministic AI-SEO audit returned by auditpage.

    490 GitHub stars~598 tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Categories

Questions about Aeo

What does Aeo do?

Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Aeo is an agent skill from gooseworks-ai/goose-skills. Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek).

When should I use Aeo?

Aeo fits situations like: tasks that involve AI search optimization; tasks that involve Web search.

How do I install Aeo in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill aeo -a claude-code`. Or copy the skill folder (skills/seo/capabilities/aeo in gooseworks-ai/goose-skills) into .claude/skills/aeo in your project. Claude Code loads it when a task matches its description.

How do I install Aeo in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill aeo -a codex`. Or copy the skill folder (skills/seo/capabilities/aeo in gooseworks-ai/goose-skills) into .agents/skills/aeo in your project. Codex loads it when a task matches its description.

Can I use Aeo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill aeo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aeo, .gemini/skills/aeo, .github/skills/aeo and .opencode/skills/aeo in your project.

What does Aeo need to run?

Going by SKILL.md and its folder, Aeo needs the command-line tools its instructions call (npx and node) and credentials named GOOSE_AEO_OPENAI_API_KEY, GOOSE_AEO_PERPLEXITY_API_KEY, GOOSE_AEO_GEMINI_API_KEY and GOOSE_AEO_GROK_API_KEY. Our summary lists: Node.js; A credential in GOOSE_AEO_PERPLEXITY_API_KEY; A credential in GOOSE_AEO_OPENAI_API_KEY.

Does Aeo access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Aeo safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Aeo use?

Aeo is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Aeo use?

About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Aeo?

Skills that share tags, products or a category with Aeo: Geo (liangdabiao/GEO-Content-Optimizer-Skill, 205 stars), Geo Fundamentals (wasp-lang/wasp, 19k stars), Marketing Os (Yuzzyuk/marketing-os, 540 stars) and Orangeo AI Visibility Skill (OranAi-Ltd/orangeo-ai-visibility-skill, 140 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Aeo?

gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.

Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.