Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions bots.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
---
title: "Bots and agents"
description: "Kernel's bots and agents, their purposes, and how to verify them with Web Bot Auth"
---

Kernel identifies its bots and agents with [Web Bot Auth](https://datatracker.ietf.org/doc/html/draft-meunier-web-bot-auth-architecture). Each identity serves its own key directory from its own authority, so site owners can allow or block each one **independently by purpose** — for example, allow search indexing while blocking user-directed agents (or vice versa).

Kernel is listed in [Cloudflare's bots and agents directory](https://radar.cloudflare.com/bots/directory/kernel) and [Vercel's public directory](https://bots.fyi/?query=kernel).

## Kernel Agent

User-directed browser automation. Kernel Agent visits pages on behalf of an end user's request; it is not an automatic crawler. Requests are signed with Web Bot Auth rather than a dedicated crawler user-agent token.

| Field | Value |
| --- | --- |
| Purpose | Agent |
| Operator | Intermediary (end-user directed) |
| Signature-Agent | `https://www.kernel.sh` |
| Key directory | `https://www.kernel.sh/.well-known/http-message-signatures-directory` |

## Kernel Search

Crawls pages to build search indexes and retrieval databases. Kernel Search identifies itself with the `KernelSearchBot` user-agent token and follows `robots.txt` directives for that token, including crawl-delay preferences.

| Field | Value |
| --- | --- |
| Purpose | Search |
| Operator | Direct (Kernel-operated) |
| User-Agent | `KernelSearchBot` |
| Signature-Agent | `https://search.bot.kernel.sh` |
| Key directory | `https://search.bot.kernel.sh/.well-known/http-message-signatures-directory` |

## Verifying Kernel traffic

Each identity publishes its public key set (JWKS) at its key directory. To verify a request:

1. Read the `Signature-Agent` header to determine which Kernel identity signed the request.
2. Fetch the public key set from that identity's key directory and cache it per the `Cache-Control` header.
3. Verify the `Signature` and `Signature-Input` headers per [RFC 9421](https://datatracker.ietf.org/doc/html/rfc9421).

Most major bot-detection services, CDNs, and WAFs verify Web Bot Auth automatically. See [Web Bot Auth](/browsers/bot-detection/web-bot-auth) for how Kernel signs requests.

## Contact

For questions about Kernel bot or agent traffic, contact [support@kernel.sh](mailto:support@kernel.sh).
39 changes: 35 additions & 4 deletions browsers/bot-detection/web-bot-auth.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -145,18 +145,49 @@ The directory should contain your public keys in JWKS format:
kernel extensions build-web-bot-auth \
--to ./web-bot-auth-ext \
--key ./my-key.jwk \
--url https://yourdomain.com/.well-known/http-message-signatures-directory \
--url https://yourdomain.com \
--signature-agent https://yourdomain.com \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CLI reference missing new flags

Medium Severity

This PR documents required build-web-bot-auth flags --url and --signature-agent in the Web Bot Auth guide, but the canonical reference/cli/extensions.mdx entry still lists only --to, --key, and --upload.

Fix in Cursor Fix in Web

Triggered by learned rule: Single source of truth — no deep content duplication across pages

Reviewed by Cursor Bugbot for commit c11afab. Configure here.

--upload my-web-bot-auth
```

### 4. Register with Vercel and other Web Bot Auth-aware directories (optional)
### 4. Kernel Search configuration

If you want Vercel-protected sites to recognize your agent, you can register your key directory with [Vercel](https://bots.fyi/new-bot). Kernel is officially listed in the Vercel directory.
Kernel Search uses a distinct Web Bot Auth identity from Kernel's user-driven
agent traffic:

- User-Agent: `KernelSearchBot`
- Signature-Agent: `https://search.bot.kernel.sh`
- Key directory:
`https://search.bot.kernel.sh/.well-known/http-message-signatures-directory`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicate bot identity listing

Low Severity

Section 4 repeats Kernel Search’s User-Agent, Signature-Agent, and key directory URLs in prose bullets even though this PR adds bots.mdx as the canonical identity overview with the same fields in a table, increasing the risk the two pages drift apart.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by learned rule: Single source of truth — no deep content duplication across pages

Reviewed by Cursor Bugbot for commit c11afab. Configure here.


To build a browser extension for Kernel Search, use the Kernel Search Ed25519
private key (JWK) and upload it under a distinct extension name:

```bash
kernel extensions build-web-bot-auth \
--to ./web-bot-auth-search-ext \
--key ./kernel-search.jwk \
--url https://www.kernel.sh \
--signature-agent https://search.bot.kernel.sh \
--upload web-bot-auth-search
```

For host-proxy based signing, configure the Search crawler's host-proxy
environment with:

```bash
HOST_PROXY_WEB_BOT_AUTH_ENABLED=true
HOST_PROXY_WEB_BOT_AUTH_KEY_PATH=/path/to/kernel-search-private-key.pem
HOST_PROXY_WEB_BOT_AUTH_DIRECTORY_URL=https://search.bot.kernel.sh
```

The signing key must correspond to the public key hosted by
`search.bot.kernel.sh`.

### 5. Register with Vercel and other Web Bot Auth-aware directories (optional)

If you want Vercel-protected sites to recognize your agent, you can register your key directory with [Vercel](https://bots.fyi/new-bot). Kernel is officially listed in the Vercel directory.


## References

- [Vercel's Public Directory](https://bots.fyi/?query=kernel)
Expand Down
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@
"proxies/datacenter"
]
},
"browsers/bot-detection/web-bot-auth"
"browsers/bot-detection/web-bot-auth",
"bots"
]
},
"browsers/extensions",
Expand Down
Loading