Title: Pitwall AI Manifest for llms.txt
Author: pitwallwp
Published: <strong>November 12, 2026</strong>
Last modified: November 13, 2026

---

Search plugins

![](https://ps.w.org/pitwall-ai-manifest/assets/banner-772x250.png?rev=3798830)

![](https://ps.w.org/pitwall-ai-manifest/assets/icon.svg?rev=3798830)

# Pitwall AI Manifest for llms.txt

 By [pitwallwp](https://profiles.wordpress.org/pitwallwp/)

[Download](https://downloads.wordpress.org/plugin/pitwall-ai-manifest.2.2.0.zip)

 * [Details](https://wordpress.org/plugins/pitwall-ai-manifest/#description)
 * [Reviews](https://wordpress.org/plugins/pitwall-ai-manifest/#reviews)
 *  [Installation](https://wordpress.org/plugins/pitwall-ai-manifest/#installation)
 * [Development](https://wordpress.org/plugins/pitwall-ai-manifest/#developers)

 [Support](https://wordpress.org/support/plugin/pitwall-ai-manifest/)

## Description

Pitwall AI Manifest does two jobs with the same content. For your visitors, it is
a chat assistant that answers their questions from your own pages, through the WordPress
AI Client or with no AI at all. For AI assistants and agents, it publishes your 
site in a form they can read accurately: a curated llms.txt, clean Markdown copies
of your pages, and a search API.

llms.txt is a file format: a short, curated description of a site that sits at `/
llms.txt`. Most plugins that write it dump every post you have ever published into
one file. That is the opposite of what the format is for: it exists to fit a site
into an AI’s limited context window, so twenty well-described links beat eight hundred
bare ones.

This plugin is built around three ideas.

**It asks you to write the part that matters.** The Site context tab captures what
no crawler can work out: who you are, what you sell, who you serve, where you operate,
and who you are _not_. That last field stops a model from confidently giving you
a similarly named company’s prices, locations or reviews.

**It curates instead of listing everything.** You define sections with rules (post
type, category or tag, order, a limit), pin the handful of pages that define the
business, and feature or exclude single posts from the editor sidebar. There is 
a size budget, and the file stops cleanly when it reaches it.

**It serves clean Markdown.** Every public post and page is also available at its
address plus `.md`: the title, a few facts and the text, without menus, share buttons,
comment forms or related-post widgets. An AI agent fetching your page gets a few
kilobytes of substance instead of a few hundred kilobytes of HTML, whether or not
it ever reads llms.txt.

#### An honest note on adoption

No major AI company has committed to reading llms.txt, and server logs show AI crawlers
asking for it rarely. Treat it as a cheap, low-risk bet on machine-readable publishing,
and treat the `.md` copies as the part that helps today. This plugin does not promise
you rankings in AI search, because nobody can.

#### Features

 * A curated llms.txt at `/llms.txt`, following the llmstxt.org structure
 * An optional `llms-full.txt` with the full text of every post in llms.txt
 * Clean Markdown copies at `/your-page.md`, linked from each page’s head, with 
   a canonical link back to the page
 * Hand-written organisation context: summary, description, products and services,
   audience, geography, languages, who you are not, how to cite you
 * “Scan my site” fills empty fields from your site title, SEO plugin settings, 
   WooCommerce store address, translation plugin and contact page
 * Section rules with post type, category or tag, order and a limit per section
 * Pinned links chosen from a searchable list of your pages, worked out again on
   every rebuild, so a changed address never leaves a dead link
 * Pinned-link suggestions from your main menu
 * Feature, exclude or describe single posts from the editor sidebar
 * Reads meta descriptions and noindex settings from Yoast SEO, Rank Math and SEOPress,
   for each post and for each post type
 * Rebuilds wait a few minutes after a change, so saving posts stays fast, and visitors
   get the last copy while a rebuild runs
 * Size budgets on both files
 * Conditional requests (ETag and Last-Modified), so repeat fetches are cheap
 * A live preview in the admin, and WP-CLI commands

#### Structured data

The same context also produces a schema.org Organization block in your page head:
name, description, logo, social profiles, address, languages, area served and founding
date. One round of typing, two results.

The difference is worth being clear about: llms.txt is a bet on where things are
going, while structured data is read by search engines today.

If Yoast SEO, Rank Math, SEOPress or All in One SEO is active, the plugin says so,
because two Organization blocks that disagree are worse than one. Leave this off
unless you have switched the other one off first.

#### Setting up many sites

Set one site up properly, export it as a template, and apply it to the next site
in a minute. A template carries the decisions about how the plugin works: section
rules, output settings, the search API, the schema type, and how the chat widget
answers and looks.

It leaves out everything about one business: the site context, the address, the 
pinned links (they point at post IDs, which are other pages on another site), the
curated answers, and the widget’s own words and contact details. “Export everything”
is there as a backup of one site.

An import replaces only what the file holds and goes through the same checks as 
the settings form, so an edited file cannot bring in a value you could not have 
typed.

#### Search API

The plugin also splits your content into passages and indexes them, so any assistant
can search the site: a custom GPT, an MCP server, the chat widget, or an automation
in n8n or Make.

    ```
    GET /wp-json/ltxt/v1/search?q=...     Matching passages as JSON, with their addresses
    GET /wp-json/ltxt/v1/context?q=...    The same, as one Markdown block ready for a prompt
    GET /wp-json/ltxt/v1/manifest         Your llms.txt with the site name and summary
    GET /wp-json/ltxt/v1/post/{id}        One post in full, as Markdown
    ```

Passages follow your headings, about 250 words each, and are searched with your 
database’s full-text index. No account, no key and no cost per search: it all runs
on your own database. Each result links to the heading it came from.

Requests are limited per visitor address and can require a key. The endpoints only
return content that is already public, so the key is for keeping casual traffic 
away and cutting off one integration without touching the others.

#### Chat widget

A chat window on your site that answers visitors’ questions. **Two of its four ways
of answering cost nothing to run**, because your site already holds the answers.

 * **Curated answers only.** Free. You write the questions you get asked and the
   exact answers. Nothing can be invented, it never changes, and it is instant.
 * **Curated answers, then site search.** Free, and the default. When no curated
   answer fits, it quotes the closest passage from your site with a link. It quotes
   rather than rewrites, so nothing is invented, but the wording has to match: “
   shipping” does not find a page that only says “delivery”.
 * **Curated answers, then AI.** Paid only when no curated answer fits. Your curated
   answers handle the questions they match for free; anything else goes to the AI,
   which answers from the passages your site search finds.
 * **AI for every question.** Paid on every question. Every question goes to the
   AI, with the passages and, when one fits, your curated answer as the wording 
   to use. Replies read naturally and follow the conversation.

The AI answers are grounded in your own content and told never to state a price,
time, phone number or policy that is not in it. Page text is marked as content rather
than instruction, so a page cannot talk the assistant out of its rules, and the 
conversation history sent back by the browser only counts when this site signed 
it.

Cost controls, because a public chat box is something anyone can call: a daily limit
on AI answers (past it, the assistant answers the free way instead of going quiet),
a limit per visitor per minute, a cap on how much of the conversation is remembered,
and a ceiling of 1,024 tokens per answer by default.

**AI answers go through the WordPress AI Client only.** On WordPress 7.0 and later,
the AI provider you set up for the whole site under Settings, Connectors answers,
on your account with it, and WordPress picks the model. This plugin never contacts
an AI service itself and has no AI key of its own. The Chat widget tab says whether
a provider is set up, and links to Settings, Connectors.

**Without it, the AI features switch off and nothing else changes.** On WordPress
before 7.0, or with no AI provider set up, the two ways of answering that use AI
answer the free way instead (a curated answer, or a passage with a link), a notice
in the admin says how to switch the AI on, and everything else in the plugin works
as usual.

#### Talking to a person

Every assistant meets a question it cannot answer, and “I don’t know” on its own
is a dead end. Add a WhatsApp number (with a first message), an email address or
a contact page, and the widget offers them: after a question it could not answer,
by default, so it appears exactly when it helps and only once per conversation.

#### Smarter answers, still free

The free way of answering knows which words mean the same (“cost”, “price”, “preço”
and “Preis” find the same answer) in English, Portuguese, Spanish, French and German,
and takes your own groups of words too. It forgives a typo, follows a short follow-
up (“and an extra driver?”), quotes the one or two sentences that answer rather 
than a block of text, and offers the curated question that came close (“Did you 
mean…?”) when none quite fits.

#### Starting the conversation

Up to three **suggested questions** under the greeting, for visitors to tap: your
own, or your first three curated questions. A **nudge**, a small bubble by the launcher
after a few seconds on chosen pages (“Questions about the car?”), once per visit.
Answers are formatted: bold, lists and links.

#### A conversation that follows the visitor

The conversation stays with the visitor from page to page in the same browser tab.
Follow a link in an answer and the chat is open on the next page, mid-conversation.

#### Multilingual sites

With Polylang or WPML, the widget’s words and the curated answers are translated
where you translate everything else, and each visitor gets them, and answers from
the pages, in the language of the page.

#### Look

The brand colour takes a hex code, `var(--your-theme-colour)`, `rgb()`, `hsl()` 
or a colour name. A CSS variable is the one worth using: point it at your theme’s
brand colour and the widget follows a rebrand by itself.

Also: three sizes, light, dark or follow the device, rounded or square corners, 
either bottom corner, words beside the launcher icon, an avatar image or the business’s
initials, and a subtitle. Movement is subtle and switches off for visitors who ask
for reduced motion.

#### Trying it before you go live

**Who can see it** has three settings: everyone, logged-in users, or administrators
only. Start with administrators and the widget appears on the real site for you 
and nobody else, with a preview badge so you cannot forget. The rule is enforced
by the endpoint too, so it is private rather than hidden.

#### Visitor questions

Every question is logged under **AI Manifest, Questions**, with a filter for the
ones the site could not answer: content gaps, questions real visitors asked that
your website does not answer yet. The log can be exported as CSV, and a weekly email
can bring you the unanswered ones every Monday.

Entries hold the question and the answer, and no IP address, cookie or visitor identifier.
Visitors can still type personal details into a chat box, so treat the log as personal
data and keep entries no longer than useful. It deletes old entries every day.

#### WP-CLI

    ```
    wp ai-manifest generate       # rebuild llms.txt now
    wp ai-manifest show           # print llms.txt
    wp ai-manifest show --full    # print llms-full.txt
    wp ai-manifest markdown 42    # print one post as Markdown
    wp ai-manifest index          # rebuild the search index
    wp ai-manifest search "..."   # search the index
    wp ai-manifest flush          # clear the cache and the rewrite rules
    ```

#### Hooks

Filters:

 * Settings and output: `ltxt_settings`, `ltxt_document`, `ltxt_full_document`, `
   ltxt_credit_line`, `ltxt_agency`
 * What gets in: `ltxt_section_posts`, `ltxt_include_post`, `ltxt_can_serve`, `ltxt_is_noindex`,`
   ltxt_seo_description_keys`, `ltxt_serve_markdown`
 * Markdown: `ltxt_post_markdown`, `ltxt_markdown_drop_classes`, `ltxt_apply_content_filters`,`
   ltxt_content_type`, `ltxt_robots_reference`
 * Search API: `ltxt_is_indexable`, `ltxt_search_results`, `ltxt_client_ip`
 * Structured data: `ltxt_schema`, `ltxt_schema_conflicts`
 * Scan my site: `ltxt_suggestions`, `ltxt_contact_slugs`
 * Chat widget: `ltxt_render_widget`, `ltxt_faq_match`, `ltxt_faq_stopwords`, `ltxt_synonyms`,`
   ltxt_faq_import_candidates`
 * AI answers: `ltxt_chat_system_prompt`, `ltxt_ai_client_model_preference`

Actions: `ltxt_rebuilt`, `ltxt_index_complete`

The settings screen describes each one.

### External services

This plugin does not connect to any external service itself. It contacts no AI provider,
and it never contacts pitwallwp.com or any other server. It loads nothing from outside
your site in your visitors’ browsers.

Only the chat widget’s AI answers can send anything outside your site, and only 
if you choose them: while the widget is set to “Curated answers, then AI” (and then
only for questions no curated answer fits) or “AI for every question”, on WordPress
7.0 or later, with an AI provider set up under Settings, Connectors. With the free
ways of answering, nothing is ever sent.

**The WordPress AI Client** hands each AI answer to the AI provider you set up under
Settings, Connectors, on your account with it. Which company receives it, and whose
terms and privacy policy apply, is your choice in WordPress.

**What is sent, for each AI answer:** the visitor’s question; the earlier messages
of the same conversation; the passages from your site that the plugin’s own search
found for the question; the curated answer that fits it, if any; your site’s llms.
txt and name; and the instructions for the assistant, including any extra guidance
you wrote. Nothing that identifies the visitor (IP address, cookies, login) is sent.

You pay the provider for these answers on your own account.

### Privacy

The plugin suggests wording for your privacy policy under Settings, Privacy, covering
the questions log and, when you use AI answers, what is sent to the AI provider.

The chat keeps the conversation in the visitor’s browser tab (sessionStorage), so
it follows them from page to page. Closing the tab deletes it; nothing about it 
is stored on your server beyond the questions log.

To stop the chat and search endpoints being flooded, the plugin counts requests 
per visitor address for a minute at a time. It stores a one-way, salted hash of 
the address, never the address itself, and deletes it within minutes.

## Screenshots

[⌊The Site context tab: who you are, what you sell, who you serve and who you are
not, in your own words. "Scan my site" fills in what WordPress already knows.⌉⌊The
Site context tab: who you are, what you sell, who you serve and who you are not,
in your own words. "Scan my site" fills in what WordPress already knows.⌉[

The Site context tab: who you are, what you sell, who you serve and who you are 
not, in your own words. “Scan my site” fills in what WordPress already knows.

[⌊How the chat widget answers: two free ways that answer in your own words, and 
two that use AI, only if you choose them. AI answers come from WordPress AI, with
the provider you set up under Settings, Connectors.⌉⌊How the chat widget answers:
two free ways that answer in your own words, and two that use AI, only if you choose
them. AI answers come from WordPress AI, with the provider you set up under Settings,
Connectors.⌉[

How the chat widget answers: two free ways that answer in your own words, and two
that use AI, only if you choose them. AI answers come from WordPress AI, with the
provider you set up under Settings, Connectors.

[⌊The llms.txt the plugin publishes at /llms.txt: your summary, then curated sections
of described links.⌉⌊The llms.txt the plugin publishes at /llms.txt: your summary,
then curated sections of described links.⌉[

The llms.txt the plugin publishes at /llms.txt: your summary, then curated sections
of described links.

[⌊A page's Markdown copy at its address plus .md: the text and a few facts, without
menus, widgets or comment forms.⌉⌊A page's Markdown copy at its address plus .md:
the text and a few facts, without menus, widgets or comment forms.⌉[

A page’s Markdown copy at its address plus .md: the text and a few facts, without
menus, widgets or comment forms.

[⌊The chat widget: a suggested question tapped, its answer formatted with bold, 
a list and a link, and a follow-up answered from the site's own pages.⌉⌊The chat
widget: a suggested question tapped, its answer formatted with bold, a list and 
a link, and a follow-up answered from the site's own pages.⌉[

The chat widget: a suggested question tapped, its answer formatted with bold, a 
list and a link, and a follow-up answered from the site’s own pages.

[⌊A first visit: the greeting, with suggested questions ready to tap.⌉⌊A first visit:
the greeting, with suggested questions ready to tap.⌉[

A first visit: the greeting, with suggested questions ready to tap.

## Installation

 1. Install the plugin from Plugins, Add New, or upload the zip there, and activate
    it.
 2. Go to **AI Manifest** in the admin menu and fill in the Site context tab.
 3. Check the sections on the Content tab, pin your most important pages, and save.
 4. Open `/llms.txt` on your site to see the result.

Pretty permalinks (anything but “Plain” under Settings, Permalinks) are needed for`/
llms.txt` and the `.md` copies.

## FAQ

### Nothing appears at /llms.txt

The settings screen says why at the top. The usual reasons: the site uses plain 
permalinks (choose any other structure under Settings, Permalinks), or a real file
named llms.txt sits in the site’s root folder, which the web server sends instead(
delete or rename it). Otherwise, save the permalinks once under Settings, Permalinks,
or run `wp ai-manifest flush`.

### Does this slow down saving posts?

No. A change sets a flag and starts a timer; one scheduled rebuild covers everything
changed before it runs. Importing five thousand posts costs one rebuild, not five
thousand. Visitors keep getting the last copy until the new one is ready.

### My site has WP-Cron switched off

The plugin notices when a rebuild is overdue and rebuilds on the next request for`/
llms.txt`, once.

### Should the file list every post?

No, and the plugin will not help you do that. Keep the section limits low.

### Does the chat widget work with page caching?

Yes. Logged-out visitors get no security token in the page, so a cached page cannot
carry an expired one. A logged-in visitor whose token has expired is retried without
it automatically.

### Is the .md copy of a members-only page safe?

The copies, llms-full.txt and the search index are always built as a logged-out 
visitor sees the page, whoever happens to trigger the build. Posts that are private,
password-protected, excluded in the editor or marked noindex get no copy at all.

### Does it use the AI I set up in WordPress?

Yes, and only that. On WordPress 7.0 and later, under Settings, Connectors you set
up an AI provider for the whole site, and the chat widget’s AI answers go through
it, with the model WordPress picks for it. The Chat widget tab says whether a provider
is set up, and links to it. The plugin has no AI key of its own and connects to 
no AI service by itself.

### What if my site has no AI provider, or runs WordPress before 7.0?

The AI features switch off and a notice on the plugin’s screens says how to switch
them on. The chat widget keeps working with your curated answers and passages from
your site, llms.txt and the Markdown copies are unaffected, and so is everything
else.

### I used LLMs.txt Manifest 1.x. What happens to my settings?

This plugin replaces it and reads the same settings, so your configuration carries
over. Deactivate LLMs.txt Manifest, then activate this plugin. Once it is deactivated
you can delete it: from version 2.0.1 on, this plugin keeps your data while the 
old one cleans up after itself. Keep this plugin active while you delete the old
one. The Anthropic API key and the model settings of 1.x are deleted on the first
load: AI answers now use only the WordPress AI Client.

### What does an AI answer cost?

It depends on the AI provider you set up in WordPress, the model and the length 
of the conversation: your provider bills you at its own prices. The two free ways
of answering cost nothing.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Pitwall AI Manifest for llms.txt” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ pitwallwp ](https://profiles.wordpress.org/pitwallwp/)

[Translate “Pitwall AI Manifest for llms.txt” into your language.](https://translate.wordpress.org/projects/wp-plugins/pitwall-ai-manifest)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pitwall-ai-manifest/),
check out the [SVN repository](https://plugins.svn.wordpress.org/pitwall-ai-manifest/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/pitwall-ai-manifest/)
by [RSS](https://plugins.trac.wordpress.org/log/pitwall-ai-manifest/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.2.0

 * Suggested questions under the greeting: up to three for visitors to tap, your
   own or your first three curated questions.
 * Formatted answers: bold, lists and links in curated answers and AI answers, safely,
   with no HTML ever reaching the page.
 * The conversation follows the visitor from page to page in the same tab. A link
   followed from an answer opens the chat again on the next page, and New conversation
   starts over.
 * Multilingual sites: with Polylang or WPML, the widget’s words and the curated
   answers are translated where you translate everything else, and each visitor 
   gets answers from the pages in their language.
 * A weekly email of the questions the assistant could not answer, most asked first,
   every Monday. Off until you switch it on.
 * A nudge: a small bubble by the launcher after a few seconds on the pages you 
   choose, once per visit.
 * Smarter free answers: words that mean the same in five languages plus your own
   groups, typo tolerance, short follow-ups, the one or two sentences that answer
   instead of a block of text, and “Did you mean…?” with the curated question that
   came close.
 * Site search ignores filler words (“and”, “need”) that let long pages outrank 
   the one that answers, gives more weight to a page title or heading that names
   what was asked, and no longer quotes a passage that shares no word with the question.
 * “How much is it?” is understood as a question about the price.
 * Each page is linked once under an answer, not once per passage.

#### 2.1.0

 * In Portuguese (Portugal): the whole plugin, the admin screens and the chat widget,
   ships translated.
 * The chat widget keeps its size on themes that set a 10px root font size (Bricks
   with ACSS and many others), where it used to shrink to a narrow, short panel 
   with the greeting cut off.
 * The message box is one line again on every theme, and grows as you type. Theme
   styles for buttons and text boxes no longer leak into the widget, so there is
   no dotted outline after a click.
 * A cleaner chat window: a brand header with a little depth, a ringed logo, the
   preview notice on one line, and tidier contact buttons.
 * The Endpoints card on the Search API tab shows the base address once, then each
   endpoint with its method and what it returns. Every copy button copies the full
   address, and none overflows its field any more.
 * The plugin’s own icon in the page header and in the admin menu.

#### 2.0.2

 * Activating this plugin while LLMs.txt Manifest 1.x is still active no longer 
   fails with an error. It now activates, waits, and shows a notice asking you to
   deactivate the old plugin.

#### 2.0.1

 * Deleting LLMs.txt Manifest 1.x from the Plugins screen no longer erases your 
   settings. Both plugins keep their data under the same names, so the old plugin’s
   clean-up used to remove this plugin’s settings, page fields, chat log and search
   index too. This plugin now sets everything aside while the old one is deleted
   and puts it straight back.
 * The notice shown while LLMs.txt Manifest is still active now says you can delete
   it once it is deactivated.

#### 2.0.0

 * New name: Pitwall AI Manifest for llms.txt. The plugin lives in a new folder,
   pitwall-ai-manifest, and reads the settings of LLMs.txt Manifest 1.x, so deactivate
   that one and activate this one.
 * AI answers now go through the WordPress AI Client only, the AI provider you set
   up under Settings, Connectors (WordPress 7.0 and later). The plugin no longer
   connects to any AI service itself.
 * The Anthropic API key, the model and the effort settings are gone, and a saved
   key is deleted on update. Exports and imports no longer carry them.
 * Without WordPress 7.0 or an AI provider, the AI features are off: the chat assistant
   answers with your curated answers and passages from your site, and a notice on
   the plugin’s screens says how to switch the AI on.
 * The admin menu is now called AI Manifest, and WP-CLI commands start with `wp 
   ai-manifest` (`wp llms-txt` still works).

#### 1.9.0

 * On WordPress 7.0 and later, the chat widget’s AI answers can come from WordPress
   itself: the AI provider you set up for the whole site under Settings, Connectors
   answers, on your account with it.
 * The Status card’s test box says which provider and model wrote the answer.
 * The suggested privacy policy wording covers answers through WordPress’s AI settings.
 * For developers: the `ltxt_ai_client_model_preference` filter suggests models 
   to WordPress AI.

#### 1.8.1

 * Ready for WordPress.org: the admin library that comes with the plugin no longer
   includes any licence or update code, and its words are translated together with
   the plugin’s own.
 * The settings screens look and work as before. Their choice cards and switches
   between options now come from the shared PitwallWP admin library, and on the 
   Site context tab a click on a field’s name puts you in the field.
 * llms.txt no longer doubles the full stop after a fact you ended with one, such
   as who you serve or where you operate.

#### 1.8.0

 * The chat widget no longer fails on cached pages. Since 1.7.2 every visitor’s 
   page carried a security token that expires after 12 to 24 hours, so on a cached
   page visitors got “Cookie check failed”. Logged-out visitors now get no token
   at all, and a logged-in visitor whose token has expired is retried without it.
   If you use a page cache, clear it once after updating.
 * Exports no longer include secrets, not even “Export everything”. Templates also
   leave out the curated answers and the widget’s contact details (WhatsApp, email,
   contact page) and its own words.
 * Imports now bring in the chat settings and the curated answers too.
 * llms-full.txt, the .md copies and the search index are always built as a logged-
   out visitor sees the page, so text a membership plugin shows only to members 
   cannot end up in them. Logged-in users’ copies are marked private, so no shared
   cache keeps them.
 * The .md copies follow the page: no copy for posts marked noindex (while noindex
   posts are skipped), noindex headers when the site asks search engines to stay
   away, and a canonical link back to the page. Noindex is now also read from Yoast
   SEO’s and Rank Math’s settings for each post type, not only from single posts.
 * AI answers no longer need Composer or PHP 8.1, and work on any host the plugin
   runs on.
 * AI answers cost less to leave running: the default ceiling is 1,024 tokens per
   answer instead of 8,000, the per-visitor limit counts each message once (it counted
   twice) and holds under bursts, and conversation history sent back by a browser
   only counts when this site signed it. Sites still on the old defaults move to
   the new ones.
 * “AI for every question” now really sends every question to the AI, with your 
   curated answer as the wording to use when one fits. “Curated answers, then AI”
   still answers a match for free.
 * When an AI answer fails (the provider busy, a revoked key), visitors get the 
   free answer instead of an error, and the settings screen says what went wrong.
 * A large llms-full.txt can no longer make the site rebuild it on every request.
   Its ceiling is 5 MB, a write the database refuses is noticed, only one rebuild
   runs at a time, and visitors get the last copy while it runs.
 * Deactivating the plugin removes its addresses properly; before, the rewrite rules
   were saved back with them still in.
 * Multisite: network activation sets up every site, sites added later set themselves
   up, and uninstalling cleans every site.
 * The questions log CSV is safe to open in a spreadsheet (a question starting with
   = or + is no longer read as a formula), includes every question instead of the
   newest 200, and opens with accents intact in Excel.
 * The settings screen says when /llms.txt cannot be reached: plain permalinks, 
   or a real llms.txt file in the site’s root folder.
 * “Scan my site” no longer puts the admin email address into the public schema 
   block.
 * Fixed a way for page text to break out of the schema block’s script.
 * New look: the settings screens use the PitwallWP design, with cards, switches,
   toasts and choice cards, and the guidance next to each field.
 * Searches for common short words no longer read every passage in the index.
 * Saving a post of a type the search index does not cover, or with the index off,
   no longer queues work. Changing which post types are indexed, or the passage 
   size, re-indexes by itself.
 * .md copies are cached for up to 12 hours, so a page builder’s slow rendering 
   is paid once.
 * The settings are loaded with WordPress’s other settings, saving a database query
   on every page.
 * Works without the mbstring PHP extension.
 * LLMs.txt Manifest is now made by PitwallWP: https://pitwallwp.com/plugins/llms-
   txt-manifest/

#### 1.7.2

 * Fixed the widget being unusable whenever the audience was restricted. It sent
   no REST nonce, so WordPress ignored the login cookie and treated every request
   as anonymous, including one from the administrator the restriction was meant 
   to admit.
 * The Status panel shows who the widget is visible to.

#### 1.7.1

 * Curated answers now close to a single line showing the question, so an import
   of thirty entries no longer buries every setting beneath it. New rows open ready
   to type; imported ones arrive closed.
 * Added Expand all and Collapse all, a live count, and a bounded list height.
 * Removed a CSS class that had been applied to three row types since 1.0 and never
   had a rule attached to it.

#### 1.7.0

 * Rebuilt the widget’s design around a proper set of tokens, so one brand colour
   recolours the whole widget.
 * The panel opens from the launcher’s corner, and messages fade in as they arrive.
 * Replaced the “Thinking…” line with an animated typing indicator.
 * Added an avatar: an uploaded image, or the business’s initials in the brand colour.
 * Added a panel subtitle.
 * Sources are now small links with an icon.
 * The message box is one rounded field with the send button inside it.
 * Added a colour scheme setting: light, dark, or follow the visitor’s device.
 * Custom scrollbar, layered shadows, a refined type scale, and full support for
   reduced motion.

#### 1.6.1

 * Fixed the widget showing “Sorry, something went wrong” for every failure. The
   real reason (a missing API key, a restricted audience, a rate limit) is now shown.
 * Added a Status panel and a test box to the Chat widget tab: ask a question and
   see which route answered it, or the exact error code if it failed.

#### 1.6.0

 * Curated answers can be imported from content the site already has: an FAQ post
   type, Yoast or Rank Math FAQ blocks, accordions, or a page whose headings are
   questions. Nothing is added until you tick it.
 * The widget is bigger, with compact, standard and large sizes, roomier messages,
   and a launcher that can carry a label.
 * The brand colour accepts a hex code, a CSS variable, rgb(), hsl() or a colour
   name. Text on it is worked out from a hex code, or set by hand.
 * Added corner rounding.
 * Added a hand-off to a person: WhatsApp (with a first message), email, or a contact
   page.
 * The questions log records which route answered.

#### 1.5.0

 * Added free ways of answering. The assistant no longer needs an API key or an 
   account: curated answers and site search run anywhere the rest of the plugin 
   does, and the new default costs nothing per question.
 * Added curated questions and answers with a keyword field, checked first in every
   mode.
 * Added audience control: everyone, logged-in users, or administrators only, enforced
   on the endpoint as well as the widget.
 * Reaching the daily limit now falls back to site search instead of refusing to
   answer.
 * The questions log records which route answered each question.

#### 1.4.1

 * Fixed a chunking bug: a long page written as a few large paragraphs produced 
   one oversized passage. Oversized lines are now split at word boundaries.
 * Added behavioural tests for the Markdown converter and the chunker.

#### 1.4.0

 * Added the chat widget: answers from your own content, with source links, on any
   page.
 * The assistant answers only from your content and is told never to invent prices,
   times or policies.
 * Added spending controls: a daily answer limit, a per-visitor limit and a cap 
   on conversation length. The instructions are cached between requests.
 * Added the visitor questions log with a content-gap filter and CSV export.
 * The API key can be set as LTXT_ANTHROPIC_API_KEY in wp-config.php.

#### 1.3.0

 * Added structured data: a schema.org Organization block built from the site context,
   with a type, logo, address, contact details and social profiles. Warns about 
   SEO plugins that publish their own.
 * Added social profile addresses.
 * Added settings export and import, with templates that leave out one site’s identity.
 * “Scan my site” fills the address from WooCommerce and social profiles from Yoast
   SEO, Rank Math or SEOPress.

#### 1.2.0

 * Added the search API: content split into passages at headings, indexed with full-
   text search, and served for other assistants. No API keys or per-query costs.
 * New Assistant API tab with index figures, passage size and post type settings,
   an optional key, a per-visitor limit, the endpoints, and a test box.
 * Indexing runs in the background, 20 posts at a time.
 * Added `wp llms-txt index` and `wp llms-txt search`.

#### 1.1.0

 * Pinned links are chosen from a searchable list and stored as posts, so a renamed
   page or a changed address updates the manifest by itself.
 * Added “Scan my site” on the Site context tab.
 * Added “Suggest from my menu”.
 * Every context field has a worked example.
 * A pinned page is no longer repeated further down the file, and a page in two 
   sections is listed once.
 * Added an optional credit line at the end of llms.txt, off by default.

#### 1.0.0

 * First release.

## Meta

 *  Version **2.2.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[chatbot](https://wordpress.org/plugins/tags/chatbot/)
   [llms.txt](https://wordpress.org/plugins/tags/llms-txt/)[markdown](https://wordpress.org/plugins/tags/markdown/)
   [seo](https://wordpress.org/plugins/tags/seo/)
 *  [Advanced View](https://wordpress.org/plugins/pitwall-ai-manifest/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pitwall-ai-manifest/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pitwall-ai-manifest/reviews/)

## Contributors

 *   [ pitwallwp ](https://profiles.wordpress.org/pitwallwp/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pitwall-ai-manifest/)