> ## 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.

# LlamaIndex

> A Keenable ToolSpec so LlamaIndex agents can search and read the web.

*Tool spec*

A Keenable ToolSpec so LlamaIndex agents can search and read the web.

→ [llama-index-tools-keenable on PyPI](https://pypi.org/project/llama-index-tools-keenable/)

<video controls poster="https://app.keenable.ai/integrations/llamaindex.jpg" src="https://app.keenable.ai/integrations/llamaindex.mp4" style={{ width: '100%', borderRadius: '12px' }} />

pip install, then `KeenableToolSpec().search` returns docs with source URLs.

## Install

### Install

```bash theme={"dark"}
pip install llama-index-tools-keenable
```

### Use the tool spec

```python theme={"dark"}
from llama_index.tools.keenable import KeenableToolSpec

spec = KeenableToolSpec()               # or KeenableToolSpec(api_key="keen_...")
docs = spec.search("typescript best practices")
page = spec.fetch(docs[0].metadata["url"])
```

<Note>
  Pass `api_key=…` or 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>
