BOTD COMPARISON · OCTOBER 2026

Detect a bot.
Understand a session.

BotD checks automation signatures. Agent or Human adds live evidence changes, expiry, and analytics history—and can use BotD as an optional evidence source.

Use BotD alone when you need a browser automation check. Choose Agent or Human when your product needs to follow evidence over time, observe cooperative host or tool activity, and preserve that context in analytics.

No accuracy victory claimed. We have not established higher detection accuracy than BotD. Interaction heuristics are experimental; declarations and tool use do not authenticate an AI agent. Free, MIT-licensed, client-side detection is shared ground.

What you get

CapabilityBotD 2.0.0Agent or Human 0.8
Automation signaturesBroader browser/runtime detector setCore signals; optionally incorporates BotD
ResultBot detected or not detected, with bot kindQualified segments, reasons, and explicit uncertainty
Changes over timeYou manage recollection and comparisonState and assessment events; evidence expiry
Session historyYou build itBounded transitions and wall-clock time by segment
Agent cooperationNo host-handoff or WebMCP wrapper in the inspected APIHost declarations and instrumented tool-use evidence
BehaviorBrowser/environment inspectionOptional, uncalibrated mouse and interaction heuristics
Data sent by defaultnpm build has optional sampled installation telemetryCore sends nothing; comparison disables BotD telemetry

Sources: BotD API, detectors, our API contracts. BotD exposes per-detector results too. Not detected never proves human.

REAL LIBRARIES · YOUR BROWSER

Try them together

The left result is an independent BotD check. On request, its output also becomes expiring evidence in the monitor on the right. No raw BotD components are exported. BotD is loaded from this site only after you press the button, with monitoring: false. Its optional checks may inspect user-agent and browser properties; our core does not parse user agents.

BotD has not been loaded.

BotD 2.0.0

NOT RUN

No result yet.

Latest completed check; this card is not a continuous monitor.

Agent or Human

CHECKING

Positive BotD evidence is heuristic automation evidence, never an AI identity. A negative result never declares a human. Provider evidence expires after 60 seconds unless refreshed.

Session timeline

Browse this page or run the comparison. The history records changes locally. Counts include changes even after older entries leave the bounded display. Time includes idle and background time, not engagement.

No transitions yet.

A testable difference

An unchanged browser environment can contain new evidence: your host explicitly starts an agent action, releases it, or a WebMCP tool executes. You need timestamps, listeners, expiry, and the exposure-time segment to interpret what follows.

The automated test suite covers those transitions, negative BotD results, provider failure, stale-result expiry, and cleanup. These are contract tests, not human-versus-agent accuracy benchmarks.

Read the integration and evaluation guide ↗

Keep BotD. Add context.

import { load } from '@fingerprintjs/botd';
import { createSessionMonitor, connectBotD,
  createSessionHistory } from 'agent-or-human';

const monitor = createSessionMonitor();
const history = createSessionHistory(monitor);
const detector = await load({ monitoring: false });
const botd = connectBotD(monitor, detector);
await botd.refresh(); // recollects; evidence expires after 60 seconds

monitor.addEventListener('statechange', event => {
  console.log(event.previousState, event.state);
});
console.log(history.getSummary());

// On unmount: history.stop(); botd.stop(); monitor.stop();