> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keenable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Vercel AI SDK

> @keenable/ai-sdk — keenable_search and keenable_fetch tools for the Vercel AI SDK.

*Tool package*

`@keenable/ai-sdk` gives any `generateText` or `streamText` call web search and page fetch as AI SDK tools. It builds on the official [`keenable`](https://www.npmjs.com/package/keenable) SDK and works keyless, so the snippet below runs as-is — no signup before the first call.

→ [@keenable/ai-sdk on npm](https://www.npmjs.com/package/@keenable/ai-sdk)

## Install

### Install

```bash theme={"dark"}
npm install @keenable/ai-sdk ai zod
```

`ai` and `zod` are peer dependencies, already present in an AI SDK project. Works on `ai` v5, v6 and v7, and on zod v3 and v4.

### Add the tools

```typescript theme={"dark"}
import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";
import { keenableTools } from "@keenable/ai-sdk";

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: keenableTools(),
  prompt: "What changed in the latest Bun release? Cite the pages you used.",
});
```

The model sees them as `keenable_search` and `keenable_fetch`. To add just one, import `keenableSearch` or `keenableFetch` instead of the pair.

<Note>
  Set `KEENABLE_API_KEY` to authenticate — this removes the hourly request cap. Without a key, calls run on the shared public tier at [lower rate limits](/rate-limits).
</Note>

Or pass the key directly: `keenableTools({ apiKey: "keen_<your_key>" })`.
