> For an index of all Botscent documentation, see https://botscent.nibnalin.me/llms.txt.

# Introduction

What Botscent is, what its two halves do, and what it does not do.

Botscent tells your site if an AI agent, not a person, is browsing it, and which agent. If the evidence shows which agent it is, Botscent names it.

```ts title="Verdict"
{ type: 'agent', agent_name: 'claude-chrome', reasons: ['claude.marker.active'] }
```

## Two halves

Botscent has two halves. Both return the same [verdict](/docs/verdict).

* **The server half** reads the headers of one request. It runs in your server or at the edge, in TypeScript or Python.
* **The page half** watches the page for evidence of an agent. It is a script of about 5 KB gzipped.

Most sites install both halves. An agent that signs or declares its requests shows itself to the server half. An agent that works in a person's own browser shows itself to the page half only.

## What it is not

* It does not prove that a person is present. `human` means that Botscent saw no agent evidence.
* It does not block anything. Your code decides what to do with the verdict.
* It does not detect automation built to look like a person.
* It does not call a service. The server half makes no outbound request, and the page half makes no network request.

## Get started

<Cards>
  <Card href="/docs/quickstart" title="Quickstart">
    Install with one prompt, or pick your framework.
  </Card>

  <Card href="/docs/verify" title="Verify your install">
    Run npx botscent check and read each line.
  </Card>

  <Card href="/docs/how-it-works" title="How it works">
    When each half sees evidence.
  </Card>

  <Card href="/docs/log-verdicts" title="Log verdicts for a week">
    The first step after the install: see which agents visit.
  </Card>
</Cards>
