jekyll-llms-generator
jekyll-llms-generator — automatically generate an llms.txt file so AI models can discover your Jekyll site content.
Open Source Plugin

jekyll-llms-generator

A Jekyll generator plugin that automatically builds an llms.txt file every time your site builds, keeping AI language models up to date with your content.

jekyll-llms-generator is a Jekyll generator plugin that automatically builds an /llms.txt file every time your site builds. No manual maintenance required — just configure it once and your llms.txt stays current as you publish new posts, projects, and pages.

What is llms.txt?

llms.txt is an emerging standard that lets website owners expose a structured plain-text summary of their content for AI language models and LLM crawlers. Think of it like robots.txt, but instead of telling crawlers what to skip, it tells them what matters and where to find it.

AI tools and research assistants use llms.txt to understand your site’s content at a glance — useful when someone asks an AI assistant about a topic you’ve written about.

Installation

Add to your Gemfile:

gem "jekyll-llms-generator", "~> 0.3"

Add to _config.yml:

plugins:
  - jekyll-llms-generator

Then run bundle install.

Configuration

All settings live under llms_txt: in _config.yml:

llms_txt:
  title: "Your Name or Site Name"
  tagline: "A short description of your site."
  intro: |
    One or two sentences about who you are and what you write about.
  link_tag: true    # inject <link rel="ai" href="/llms.txt"> into every page
  full: false       # also generate /llms-full.txt and add a discovery link in llms.txt
  sections:
    - title: "Blog Posts"
      collection: posts
      limit: 20
    - title: "Projects"
      collection: projects
    - title: "Pages"
      pages:
        - /about/

Options

Key Default Description
title site title H1 heading in llms.txt
tagline site description Blockquote line below the title
intro (none) Optional paragraph after the tagline
link_tag true Inject <link rel="ai" href="/llms.txt"> into every HTML page’s <head>
full false Also generate /llms-full.txt with full plain-text content; adds a discovery link in llms.txt header
sections [] Array of section definitions

Each section takes a title plus one or both of collection (a Jekyll collection name, including posts) and pages (an array of page URLs). Add limit: to cap how many items appear.

Per-document opt-out

Add llms_txt: false to any post or document’s frontmatter to exclude it:

---
title: "Draft Post"
llms_txt: false
---

Output format

The generated /llms.txt follows the llmstxt.org spec:

# Jason Chance

> Downtown revitalization, local government technology, and public finance.

Jason Chance is a DDA director writing about public finance and downtown revitalization.

## Blog Posts

- [How DDAs Can Use TADs to Fund Revitalization](https://jasonchance.com/blog/how-ddas-can-use-tads/): A practical overview of Tax Allocation Districts for DDA directors.
- [Drone Mapping for Downtown Revitalization](https://jasonchance.com/blog/drone-mapping-downtown/): How consumer drones can create valuable data for DDA strategic planning.

How AI crawlers find it

LLM crawlers discover llms.txt the same way crawlers find robots.txt — by checking <your-site>/llms.txt directly. When full: true, a [Full content version](/llms-full.txt) link appears in the llms.txt header so crawlers know to fetch the deeper file. The optional <link rel="ai"> injection provides an additional discovery signal in every HTML page’s <head>.

You can also submit your site to the llmstxt.org directory for broader visibility.