Skip to content

eob/isai

isai 🤖/👨‍🦰

Identify AIs using the user agent string.

Usage

Install

npm i isai

Straightforward usage

import { isai } from "isai";

// Request
isai(request.headers.get("User-Agent"));

// Nodejs HTTP
isai(request.getHeader("User-Agent"));

// ExpressJS
isai(req.get("user-agent"));

// Browser
isai(navigator.userAgent);

// User Agent string
isai(
  "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot",
); // true

isai(
  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
); // false

Use JSDeliver CDN you can import to the browser directly

See specific versions and instructions https://www.jsdelivr.com/package/npm/isai

ESM

<script type="module">
  import { isai } from "https://cdn.jsdelivr.net/npm/isai@5/+esm";
  isai(navigator.userAgent);
</script>

UMD

<script src="https://cdn.jsdelivr.net/npm/isai@5"></script>
<script>
  // isai is now global
  isai(navigator.userAgent);
</script>

Named imports

import Type Description
isai (string?): boolean Check if the user agent is an AI

FAW

Why are AIs distinct from bots and crawlers?

AIs process information differently than web crawlers:

  • The goal of a crawler is to build a web index, so web developers are incentivised to return more rather than less: more keywords, more re-phrasings, more elaborations.
  • The goal of an AI is to answer acute questions, so web developers are incentivised to return less rather than more: short, specific sentences written in such a way that an LLM can make the most use of them.

What does "isai" do?

Isai approximates whether the originator of a web request is an AI Bot. It does this by looking at the User Agent string.

What doesn't "isai" do?

Isai does not provide a perfectly accurate prediction:

  • Some companies, such as Google and Apple, use ambiguous User Agent strings, meaning that the AI, not AI decision is, at best, a guess.
  • No company is required to divulge whether their bot is an AI, so false negatives are virtually guaranteed.

Why would I want to identify an AI?

You may want to identify an AI if you wish to inject additional and/or different information into your web page for the AI to consume.

For example, you may wish to:

  • Provide an overview of the key points of a page in such a way that would be odd for human consumption.
  • Provide a slightly different set of information for the AI to build up context that it might not otherwise have.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published