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

# ketch

> Keenable as a built-in search backend in the ketch agent CLI (Go).

*Search backend*

Keenable as a built-in search backend in the ketch agent CLI (Go).

→ [View the change on GitHub](https://github.com/1broseidon/ketch/pull/20)

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

brew install the CLI, run a search, then make Keenable the default backend.

## Install

### Install ketch

keenable is a built-in search backend (merged upstream, shipped since v0.11.0) — there is no Keenable package to install, just the CLI itself.

```bash theme={"dark"}
brew install 1broseidon/tap/ketch
# or: go install github.com/1broseidon/ketch@latest
```

### Use it

Add `--json` for machine-readable output, or `--scrape` to pull full page content per result.

```bash theme={"dark"}
ketch config set keenable_api_key keen_...   # authenticate
ketch config set backend keenable            # make it the default, then -b is unnecessary
ketch search "golang error handling" -b keenable
```

<Warning>
  **Known defect in the shipped backend.** Results currently come back as a title and a link with no text under them, because the backend reads a field Keenable leaves empty for most pages. Until the fix lands, pass `--scrape` to pull the page content per result. The fix is open upstream as [PR #43](https://github.com/1broseidon/ketch/pull/43).
</Warning>

<Note>
  Run `ketch config set keenable_api_key keen_…` 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>
