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

# Quickstart

Install Botscent with one prompt to your coding agent, or with the page for your framework.

Install Botscent in one of two ways. Give one prompt to your coding agent, or follow the page for your framework. Both ways end with `npx botscent check`.

## Install with one prompt

On the [Botscent site](https://botscent.nibnalin.me), the **Install with one prompt** button copies a prompt for a coding agent. Paste the prompt into Claude Code, Cursor, Codex or Copilot:

```text title="Prompt"
Install Botscent in this project. Botscent is a small open-source library that tells a site if an AI agent is browsing it, and which agent.

Follow https://botscent.nibnalin.me/install.md: detect this project's framework, install the botscent package, add the page half and the server half where it says, then run `npx botscent check <url>` against the running site.

Run the commands yourself. Re-running any step must not duplicate code. When you are done, list the files you changed and paste what check reported.
```

The agent adds both halves and runs the check. It then lists the files it changed and shows the output of the check.

## Or pick your framework

Each page installs the halves that one framework runs, and ends with the check.

<Cards>
  <Card href="/docs/nextjs" title="Next.js">
    Both halves: the page half before hydration, the server half in the proxy.
  </Card>

  <Card href="/docs/react" title="React">
    The page half in a React app without Next.js.
  </Card>

  <Card href="/docs/vue" title="Vue">
    The page half as a Vue plugin.
  </Card>

  <Card href="/docs/nuxt" title="Nuxt">
    The page half as a Nuxt module, and the verdict in server routes.
  </Card>

  <Card href="/docs/sveltekit" title="SvelteKit">
    The page half in the client hooks, and the verdict in server routes.
  </Card>

  <Card href="/docs/astro" title="Astro">
    Both halves from one Astro integration.
  </Card>

  <Card href="/docs/script-tag" title="A script tag">
    The page half on any site, from one script tag.
  </Card>

  <Card href="/docs/express" title="Express">
    The server half as Express middleware.
  </Card>

  <Card href="/docs/hono" title="Hono">
    The server half as Hono middleware.
  </Card>

  <Card href="/docs/cloudflare-workers" title="Cloudflare Workers">
    The server half around the fetch handler of a Worker.
  </Card>

  <Card href="/docs/netlify" title="Netlify">
    The server half in a Netlify Edge Function.
  </Card>

  <Card href="/docs/vercel" title="Vercel">
    The server half as Vercel Routing Middleware, for projects that are not Next.js.
  </Card>

  <Card href="/docs/fastapi" title="FastAPI and Starlette">
    The server half as ASGI middleware.
  </Card>

  <Card href="/docs/django" title="Django">
    The server half as Django middleware.
  </Card>

  <Card href="/docs/flask" title="Flask">
    The server half as a Flask extension.
  </Card>

  <Card href="/docs/other-servers" title="Any other server">
    The server half from one function call, in TypeScript or Python.
  </Card>
</Cards>

## Add the Agent Skill

The Agent Skill keeps Botscent's instructions in your coding agent for later tasks. It covers the install, the check and the use of the verdict. Add it with one command:

```sh title="Terminal"
npx skills add https://botscent.nibnalin.me
```

The command asks which of your coding agents get the skill.

## What you need

Botscent has two halves, and most sites want both. The server half reads the headers of each request. It finds agents that sign their requests or declare themselves in the user agent.

The page half runs in the browser. It finds agents that operate a person's own browser, and cloud browsers that do not sign their requests.

The Next.js and Astro pages add both halves. A frontend framework page adds the page half, and a server framework page adds the server half. If your site has a frontend and a backend in two stacks, follow one page for each. For example, a site with a React frontend and a Django backend follows the React page and the Django page.

## Next steps

* [Verify your install](/docs/verify): run `npx botscent check` and fix each line that fails.
* [How it works](/docs/how-it-works): when each half sees evidence.
* [The verdict](/docs/verdict): what `type`, `agent_name` and `reasons` mean.
