/install aeo
AEO
Website: ainyc.ai
One skill for audit, fixes, schema, llms.txt, and monitoring workflows.
Command
Always use the published package:
npx @ainyc/aeo-audit@1 "\x3Curl>" [flags] --format json
Argument Safety
Never interpolate user input directly into shell commands. Always:
- Validate that URLs match
https://orhttp://and contain no shell metacharacters. - Quote every argument individually (e.g.,
npx @ainyc/aeo-audit@1 "https://example.com" --format json). - Pass flags as separate, literal tokens — never construct command strings from raw user text.
- Reject arguments containing characters like
;,|,&,$,`,(,),{,},\x3C,>, or newlines.
Modes
audit: grade and diagnose a sitefix: apply code changes after an auditschema: validate JSON-LD and entity consistencyllms: create or improvellms.txtandllms-full.txtmonitor: compare changes over time or benchmark competitorsdetect-platform: identify the CMS, site builder, framework, or hosting stack a site uses
If no mode is provided, default to audit.
Examples
audit https://example.comaudit https://example.com --sitemapaudit https://example.com --sitemap --limit 10audit https://example.com --sitemap --top-issuesfix https://example.comschema https://example.comllms https://example.commonitor https://site-a.com --compare https://site-b.comdetect-platform https://example.comdetect-platform https://example.com --min-confidence highdetect-platform --urls competitors.txtdetect-platform --urls https://a.com,https://b.com
Mode Selection
- If the first argument is one of
audit,fix,schema,llms,monitor, ordetect-platform, use that mode. - If no explicit mode is given, infer the intent from the request and default to
audit.
Audit
Use for broad requests such as "audit this site" or "why am I not being cited?"
- Run:
npx @ainyc/aeo-audit@1 "\x3Curl>" [flags] --format json - Return:
- Overall grade and score
- Short summary
- Factor breakdown
- Top strengths
- Top fixes
- Metadata such as fetch time and auxiliary file availability
Sitemap Mode
Use --sitemap to audit all pages discovered from the site's sitemap:
npx @ainyc/aeo-audit@1 "\x3Curl>" --sitemap --format json
npx @ainyc/aeo-audit@1 "\x3Curl>" --sitemap https://example.com/sitemap.xml --format json
npx @ainyc/aeo-audit@1 "\x3Curl>" --sitemap --limit 10 --format json
npx @ainyc/aeo-audit@1 "\x3Curl>" --sitemap --top-issues --format json
Flags:
--sitemap [url]— auto-discover/sitemap.xmlor provide an explicit URL--limit \x3Cn>— cap pages audited (default 200, sorted by sitemap priority)--top-issues— skip per-page output, show only cross-cutting patterns
Pages are audited with bounded concurrency (5 in flight) to avoid hammering the target origin.
Returns:
- Per-page scores and grades
- Cross-cutting issues (factors failing across multiple pages)
- Aggregate score and grade
- Prioritized fixes ranked by site-wide impact
Detect Platform Mode
Use --detect-platform when the user wants to know what stack a site is built on (e.g., "is this WordPress?", "what framework does competitor X use?", "is this site custom-built?"). This is much faster than a full audit because it skips analyzer scoring.
npx @ainyc/aeo-audit@1 "\x3Curl>" --detect-platform --format json
npx @ainyc/aeo-audit@1 "\x3Curl>" --detect-platform --min-confidence high --format json
Flags:
--detect-platform— switch to detection mode instead of auditing--min-confidence \x3Clvl>— filter tolow(default),medium, orhighconfidence--urls \x3Csrc>— run on multiple URLs at once (file path, comma-separated list, or-for stdin)--concurrency \x3Cn>— max in-flight fetches in batch mode (default 5)
The report groups detections by category (CMS, site builder, e-commerce, framework, SSG, hosting), each with a confidence bucket, a 0–100 score, an optional version, and the signals that matched. When the report's isCustom flag is true, no CMS/site-builder/e-commerce platform was identified — the site is likely custom-built. Exit code is 0 when at least one platform is detected, 1 otherwise.
Batch detection
When the user wants to fingerprint many sites at once (competitor lists, customer cohorts), pass --urls:
npx @ainyc/aeo-audit@1 --detect-platform --urls urls.txt --format json
npx @ainyc/aeo-audit@1 --detect-platform --urls https://a.com,https://b.com --format json
cat urls.txt | npx @ainyc/aeo-audit@1 --detect-platform --urls - --format json
The batch report contains a results array; each entry has status: 'success' or 'error', plus the same shape as a single-URL report on success. Per-URL fetch errors do not abort the run. Exit code is 0 when at least one URL succeeded, 1 otherwise.
Fix
Use when the user wants code changes applied after the audit.
- Run:
npx @ainyc/aeo-audit@1 "\x3Curl>" [flags] --format json - Find factors with status
partialorfail. - Apply targeted fixes in the current codebase.
- Prioritize:
- Structured data and schema completeness
llms.txtandllms-full.txtrobots.txtcrawler access- E-E-A-T signals
- FAQ markup
- freshness metadata
- Re-run the audit and report the score delta.
Rules:
- Always explain proposed changes and get user confirmation before editing files.
- Do not remove existing schema or content unless the user asks.
- Preserve existing code style and patterns.
- If a fix is ambiguous or high-risk, explain the tradeoff before editing.
Schema
Use when the request is specifically about JSON-LD or schema quality.
- Run:
npx @ainyc/aeo-audit@1 "\x3Curl>" [flags] --format json --factors structured-data,schema-completeness,entity-consistency - Report:
- Schema types found
- Property completeness by type
- Missing recommended properties
- Entity consistency issues
- Provide corrected JSON-LD examples when useful.
Checklist:
LocalBusiness: name, address, telephone, openingHours, priceRange, image, url, geo, areaServed, sameAsFAQPage: mainEntity with at least 3 Q&A pairsHowTo: name and at least 3 stepsOrganization: name, logo, contactPoint, sameAs, foundingDate, url, description
llms.txt
Use when the user wants llms.txt or llms-full.txt created or improved.
If a URL is provided:
- Run:
npx @ainyc/aeo-audit@1 "\x3Curl>" [flags] --format json --factors ai-readable-content - Inspect existing AI-readable files if present.
- Extract key content from the site.
- Generate improved
llms.txtandllms-full.txt.
If no URL is provided:
- Inspect the current project.
- Extract business name, services, FAQs, contact info, and metadata.
- Generate both files from local sources.
After generation:
- Add
\x3Clink rel="alternate" type="text/markdown" href="/llms.txt">when appropriate. - Suggest adding the files to the sitemap.
Monitor
Use when the user wants progress tracking or a competitor comparison.
Single URL:
- Run the audit.
- Compare against prior results in
.aeo-audit-history/if present. - Show overall and per-factor deltas.
- Save the current result.
Comparison mode:
- Parse
--compare \x3Curl2>. - Audit both URLs.
- Show side-by-side factor deltas.
- Highlight advantages, weaknesses, and priority gaps.
Behavior
- If the task needs a deployed site and no URL is provided, ask for the URL.
- If the task is diagnosis only, do not edit files.
- If the task is a fix request, make edits and verify with a rerun when possible.
- If the URL is unreachable or not HTML, report the exact failure.
- Prefer concise, evidence-based recommendations over generic SEO advice.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install aeo - After installation, invoke the skill by name or use
/aeo - Provide required inputs per the skill's parameter spec and get structured output
What is Aeo?
Run AEO audits, fix site issues, validate schema, generate llms.txt, and compare sites. It is an AI Agent Skill for Claude Code / OpenClaw, with 724 downloads so far.
How do I install Aeo?
Run "/install aeo" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Aeo free?
Yes, Aeo is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Aeo support?
Aeo is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Aeo?
It is built and maintained by Arber X (@arberx); the current version is v1.6.0.