---
title: "Generate an llms.txt on Mac From Your Own Machine"
description: "Build an llms.txt for your site from your sitemap, using a scraper and a model on your own Mac. No upload, no third-party crawl of your pages."
date: 2026-08-28
author: "Ben Racicot"
tags: ["SEO", "llms.txt", "Web Scraping", "Text Generation", "Privacy", "macOS"]
type: "article"
canonical: "https://modelpiper.com/blog/llms-txt-generator-mac"
---

# Generate an llms.txt on Mac From Your Own Machine

> Build an llms.txt for your site from your sitemap, using a scraper and a model on your own Mac. No upload, no third-party crawl of your pages.

## TL;DR

Read your sitemap for the URL list, scrape each page for its title and meta description, then have a local model write the link lines. The whole loop runs on your Mac, and the only network traffic is to your own site.

An llms.txt is a markdown file at the root of your site that tells an AI system what is there and where to look. It is a short, curated map: a one line summary of the site, then sections of links, each with a sentence explaining what the page is for.

The generators that exist online want your URL so they can crawl you and hand back a file. That works. It also means a third party crawls your site on demand and sees the structure of anything you have not published yet.

## What an llms.txt has to contain

Three things do the work. A single blockquote summary directly under the H1, so a reader that takes only the first lines still learns what the site is. Sections grouping the links by job rather than by navigation. And one sentence per link that says what the page answers, not what it is called.

That last part is where a generator earns its place. The link and the title you already have. The sentence is the thing that needs writing, once per page, in a consistent voice.

Start with what this does not do. There is no search volume here, no keyword difficulty, no cost per click, no backlink index, no domain overview, no stored rank history and no site crawler. If you need any of those, a vendor backed suite such as OpenSEO has them and ToolPiper does not. OpenSEO is open source under MIT with nine agent skills, and its data is metered through DataForSEO on every keyword, SERP and backlink call. Verified 2026-08-28.

## Why the sitemap, not a crawl

Your sitemap is the canonical list of what you want indexed. Crawling links instead means discovering your navigation, missing anything not linked from the homepage, and picking up pages you deliberately withheld. Reading the sitemap skips all of that.

Be ready for it to be large. A site with generated pages can carry thousands of URLs, and ours returns over seventeen hundred. An llms.txt is a curated map, not a mirror of the sitemap, so the first real step is choosing which sections belong in it and describing the generated families by their pattern instead of listing every member.

## What you need

macOS 26 or later on Apple Silicon, ToolPiper, a sitemap at a known URL, and a text model. Apple Intelligence is already on the machine and is well suited to this, since the job is compression against a fixed shape rather than open ended writing.

## Limits worth knowing before you start

ToolPiper needs macOS 26 or later on Apple Silicon, and the SERP capture drives Google Chrome over the DevTools Protocol, so Chrome has to be installed. One capture is a sample, not a measurement: AI Overview presence rotates by session, location and personalisation, so a single run tells you what happened once, in your browser, from where you are sitting. Search Console tools sit behind Google OAuth on your own account.

## Try it

Download ToolPiper, run the loop over the twenty pages you would most want an AI system to find, and read the result before you publish it at your site root. The rung badge above names the plan the scraping half sits on, resolved from the pricing catalog.

_Part of the SEO tools guide for Mac. The roundup covers SERP capture, keyword discovery, rank checks, Search Console and listening in one place._

## Steps

### 1. Read the sitemap for the URL list

Scrape `https://yoursite.com/sitemap.xml` as text and take the URLs. Expect volume: on a site with generated pages this can be thousands of entries, so filter to the sections a reader would actually want before going further.

### 2. Decide what belongs in the map

Group the surviving URLs into sections: products, documentation, key reference pages. For a large generated family, do not list every page. Describe the pattern once and give three or four representative examples, which is more useful to a reader than nine hundred near identical lines.

### 3. Scrape each chosen page for its title and description

Fetch each URL in the readability format. It returns the page title and the existing meta description, which is usually already a one sentence summary written for exactly this purpose. Those two fields are the input to the next step.

### 4. Have a local model write the link lines

Send the title, URL and description for each page to a local model with a system prompt that fixes the output format: `- [Title](url): one sentence.` and nothing else. Pinning the format in the system prompt is what stops a model returning prose around the list.

### 5. Assemble, check every URL, and publish

Put an H1 and a blockquote summary at the top, then the sections. Check that every URL in the file resolves, because a generated map that points at a moved page is worse than no map. Save it as `llms.txt` at your site root.

## FAQ

### Does this send my site to a third party?

No. The scraper fetches your own pages, and the drafting runs on a model on your Mac. There is no upload step and no external crawler is asked to visit you.

### Should the llms.txt list every page?

No. It is a curated map. For a large generated family, describe the URL pattern and give a few representative examples rather than enumerating every page.

### Which model handles this well?

Apple Intelligence is already on the machine and handles this shape well, because the task is compression against a fixed template. A small GGUF model through the bundled engine also works if you want a specific voice.

### Do AI systems actually read llms.txt?

Support is uneven and the convention is young. It costs one small file to publish, and unlike most SEO work you can verify the file yourself rather than waiting on a crawler.

### What about llms-full.txt?

That is the longer companion, carrying deeper pointers such as every article. The same loop produces it; you simply widen the URL filter in the first step.
