# pi-exa

Exa AI semantic search, similarity discovery, and content extraction for [pi](https://github.com/badlogic/pi-mono).

## Install

```bash
pi install npm:@joemccann/pi-exa
```

Or try without installing:

```bash
pi -e npm:@joemccann/pi-exa
```

## Setup

Set the `EXA_API_KEY` environment variable. Get a key at [dashboard.exa.ai](https://dashboard.exa.ai/api-keys).

```bash
export EXA_API_KEY=your-key-here
```

## Tools

| Tool | Description |
|------|-------------|
| `exa_search` | Semantic web search — find pages by meaning, not keywords |
| `exa_find_similar` | Find pages similar to a URL — competitors, related content |
| `exa_get_contents` | Extract clean text from URLs — more reliable than scraping |

### exa_search

Semantic search with filtering by domain, date, category, and search mode.

**Search types:**
- `auto` — Default, picks the best mode
- `fast` — Sub-350ms responses
- `neural` — Embedding-based semantic search
- `deep` — Multi-step reasoning for complex questions

**Categories:** `company`, `research paper`, `news`, `tweet`, `personal site`, `financial report`

**Content options:** `includeText`, `includeSummary`, `includeHighlights` (default: true)

### exa_find_similar

Finds pages semantically similar to a given URL. Pass a company site to find competitors, an article to find related content, or a product page to find alternatives.

### exa_get_contents

Extracts clean, parsed content from one or more URLs in a single API call. Returns text, highlights, and/or AI summaries.

## Examples

```
> Search for recent AI safety research papers

> Find companies similar to Stripe

> Extract the main content from these three URLs
```

## Development

```bash
git clone https://github.com/joemccann/pi-exa
cd pi-exa
npm test
```

### Test locally with pi

```bash
pi -e /path/to/pi-exa
```

## License

MIT
