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.

PyPI 0.2.0 npm 0.1.0 GitHub source Zenodo DOI Software Heritage
Install from PyPI →

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.

Star on GitHub →