Open Source Tool
aio-surfaces
Generate the four canonical AI-citation surfaces — llms.txt, aeo.json, entity.json, brand.json — from a single typed site config. MIT licensed. Same code that powers thatdevpro.com.
Install
# Python (recommended for full surface generation)
pip install aio-surfaces
# JavaScript CLI alternative
npm install -g @thatdevpro/aio-surfaces
Configure
Create one config file describing your organization. The toolkit reads it and emits all four surfaces with consistent identity threading.
# site_config.toml
[organization]
name = "Your Company"
url = "https://yourcompany.com"
founded = "2024"
[founder]
name = "Your Name"
orcid = "0009-XXXX-XXXX-XXXX"
wikidata = "QXXXXXX"
[services]
primary = ["Service A", "Service B"]
[brand]
voice = "concise, technical, no-BS"
audience = "small business owners"
Generate surfaces
aio-surfaces site_config.toml --out ./public
# Output:
# public/llms.txt (markdown summary for AI crawlers)
# public/llms-full.txt (extended version with full context)
# public/aeo.json (declarative facts for answer engines)
# public/entity.json (Schema.org-style entity graph)
# public/brand.json (brand voice + key messages)
# public/ai.txt (AI crawler permissions)
Deploy
Place all six files at the root of your site (next to robots.txt). Verify each returns HTTP 200 and serves with the correct Content-Type. The toolkit ships with a verification command:
aio-surfaces verify https://yourcompany.com
# Score: 100/100 (6/6 surfaces present + valid)
# ✓ llms.txt 14723b
# ✓ llms-full.txt 42850b
# ✓ aeo.json 17743b
# ✓ entity.json 10089b
# ✓ brand.json 8902b
# ✓ ai.txt 643b
What aio-surfaces does for your site
llms.txt
Curated markdown summary served at site root. Read by GPTBot, ClaudeBot, PerplexityBot, and Google's Gemini.
aeo.json
Declarative atomic facts about your business in JSON. Each fact has type, value, and provenance.
entity.json
Schema.org-style entity graph cross-referencing Wikidata, ORCID, Google Knowledge Graph MID.
brand.json
Brand voice, key messages, and writing style — gives LLMs consistent vocabulary when citing you.
ai.txt
Per-crawler permissions (allow/disallow GPTBot, ClaudeBot, etc.) — like robots.txt but for AI.
verify command
Audit any URL for AI-citation surface coverage. Returns a 0-100 score.
Companion software
aio-surfaces pairs with seo-sidecar (live Schema.org JSON-LD injection via nginx) for full-stack AEO/SEO automation. Both tools published together under MIT license, both archived on Zenodo with citable DOIs.
Citation
@software{anady2026aiosurfaces,
author = {Anady, Joseph W.},
title = {aio-surfaces},
year = {2026},
url = {https://pypi.org/project/aio-surfaces/},
doi = {10.5281/zenodo.20405296},
license = {MIT}
}
About the author
Built and maintained by Joseph W. Anady at ThatDevPro. Joseph is a Service-Disabled Veteran-Owned Small Business (SDVOSB) operator. ORCID 0009-0008-8625-949X. Wikidata Q139901957. Google Knowledge Graph MID /g/11n57xh708.