OmnimatchBot

Last updated: 6 August 2026

Omnimatch lets people build and use AI agents. When somebody asks their agent a question that can only be answered by reading a page, the agent fetches that page, and the request arrives at your site as OmnimatchBot. This page explains exactly when that happens, how to confirm a request came from us, and how to stop it if you would rather we did not.

OmnimatchBot is user-directed, not a crawler. Every request it makes is caused by a person asking their agent for something, moments earlier. It does not browse on its own schedule, it does not follow links to discover more pages, and it does not collect content to train models.

How to identify it

Two ways, and the second one is the reliable one.

The user-agent

Mozilla/5.0 (compatible; OmnimatchBot/1.0; +https://omnimatch.ai/bot)

Useful for reading a log, but anyone can type it. Treat it as a label, not as proof.

The signature

Every request OmnimatchBot makes is signed with an Ed25519 key under Web Bot Auth, using RFC 9421 HTTP Message Signatures. The request carries three headers:

Signature-AgentThe URL of our public key set: https://omnimatch.ai/.well-known/http-message-signatures-directory
Signature-InputWhat was signed, which key signed it, and when the signature expires
SignatureThe signature itself

To verify: fetch our key directory, find the key whose kid matches the keyid in Signature-Input, and check the signature over the signature base. The signature covers the authority of the request, so a copy replayed against a different host will not verify. Sites behind Cloudflare get this checked for them; Cloudflare's own write-up of the scheme is here.

What it fetches, and when

In every case the URL was named by a person or by the agent that person is talking to. There is no queue, no schedule, and no crawl frontier behind any of it.

What it does not do

Request rate

Requests are one-off and bounded: a single agent turn is capped at a small number of fetches, each with a short timeout and a limit on how much of the response is read. There is no configuration in Omnimatch that makes OmnimatchBot sweep a site, so the traffic any one site sees is a function of how often people ask questions about it.

robots.txt

OmnimatchBot does not fetch or consult robots.txt before these requests, and we would rather say that plainly than claim otherwise. The reasoning: robots.txt governs crawling, and this is a person opening one page they already have the address of, in the same way a browser would. If you want us gone anyway, the section below works regardless.

How to block it

Any of these will do it, and none of them need anything from us:

A blocked request is not retried and is not routed around. The person who asked is told the site could not be read.

Contact

If OmnimatchBot has done something you did not expect, or you want it kept away from your site and would like us to handle it at our end, write to hello@omnimatch.work. Please include a request timestamp and the path if you have them.