aeo-kit
Zero-Click AEO toolkit — turn any document, file, or website into LLM-readable
Markdown + an llms.txt outline, then index and search it locally. A thin,
clean composition of best-in-class open-source parts; it does not reinvent
conversion, compression, or vector indexing.
crawl → ingest → index → search
(site) (md + (turbovec) (top-k)
llms.txt)
Why
"AI Engine Optimization" (AEO/GEO) starts with getting messy real-world content
into a form a model can use. aeo-kit composes:
- markitdown (MIT) — PDF/DOCX/PPTX/XLSX/HTML/CSV → Markdown
- headroom-ai (Apache-2.0, optional) — compress verbose tool/RAG context 60–95%
- turbovec — air-gapped quantized vector index
- a tiny zero-dependency crawler (no AGPL, no hosted API key)
Everything runs locally. No API keys required.
Install
pip install aeo-kit # core
pip install "aeo-kit[compress]" # + headroom-ai for context compression
CLI
# 1) crawl a site (local interlinked html or a live URL) -> markdown
aeo-crawl ./site/index.html --out build/site
aeo-crawl https://example.com --max-pages 5 --out build/site
# 2) ingest any file / folder / URL -> per-doc md + site-level llms.txt
aeo-ingest ./company_docs --out build/aeo --compress
# 3) local retrieval over the ingested docs (TF-IDF -> turbovec)
aeo-search build/site "consumption tax filing" --k 3
Library
from adapters import markitdown_aeo as mk
conv = mk.convert("page.html")
print(mk.aeo_extract(conv)) # llms.txt seed from the heading structure
Notes
- Crawler politeness: HTTP mode is same-domain only, respects
robots.txt, rate-limits, and is bounded by--max-pages/--max-depth. - Search scope:
aeo-searchuses TF-IDF (lexical) retrieval over turbovec — no embedding model / network required. Swap in a sentence-transformer for semantic search; the turbovec layer is unchanged. - Compression:
headroom-aiprotects user messages and compresses tool/log/RAG content; clean short prose may compress little, by design.
Develop
pip install -e .
python experiment.py # end-to-end real run -> poc/out/
python audit.py # deterministic checks (exit 0 = all pass)
License
MIT (this toolkit). Bundled dependencies are installed separately and retain
their own licenses — see THIRD_PARTY_NOTICES.md.
Metadata
Release files for aeo-kit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aeo_kit-0.1.0.tar.gz | 15.1 kB | Without provenance | Details for aeo_kit-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aeo_kit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for aeo_kit-0.1.0-py3-none-any.whl |
Total release size: 31.8 kB
Release files / aeo_kit-0.1.0.tar.gz
| Download URL | aeo_kit-0.1.0.tar.gz |
|---|---|
| Size | 15.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dde6691ae15a6fb9573818057856c3ee8541cf27a76ca3dc1b44efe4a04c03e4
|
|
BLAKE2b-256 checksum How to use checksums |
0e56675ac32c15a90f73c484403b0d537a862392039e0ecdd57f8fe008fc179d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / aeo_kit-0.1.0-py3-none-any.whl
| Download URL | aeo_kit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f19dd75a174b984f6f9a6a5ee416e7a685f3bbf544f1f046495506f343c9345
|
|
BLAKE2b-256 checksum How to use checksums |
e96f394a3d6944c81146caf5116279e0c16875e007b90f616894d2d3cbb5e5e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Security for aeo-kit 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.