Tools
Liner Search
Liner web search provider for OpenClaw — ClawHub plugin (@lienr/openclaw-liner-search)
Install
npm install
npm
README
# @liner/openclaw-liner-search
A **Liner web search provider** for [OpenClaw](https://openclaw.ai/), published as
an external [ClawHub](https://clawhub.ai/) plugin. It adds Liner as a `web_search`
provider so OpenClaw agents can search the web with ranked, source-grounded
results — each with a title, URL, and excerpt.
> This is the external-plugin form of the provider. (A core-bundled PR was
> declined per OpenClaw's VISION.md, which keeps commercial integrations out of
> core; the sanctioned path is a ClawHub plugin maintained in its own repo.)
## Install
```bash
openclaw plugins install @liner/openclaw-liner-search
# or, ClawHub-only:
openclaw plugins install clawhub:@liner/openclaw-liner-search
```
## Configure
Get an API key at **[platform.liner.com](https://platform.liner.com)** (new
accounts include free credits), then either set an env var or configure it:
```bash
export LINER_API_KEY=sk_live_...
```
```json5
// openclaw.json
{
plugins: {
entries: {
liner: {
config: {
webSearch: {
apiKey: "sk_live_...", // optional if LINER_API_KEY is set
baseUrl: "https://platform.liner.com", // optional override
},
},
},
},
},
tools: { web: { search: { provider: "liner" } } },
}
```
The provider also auto-detects when `LINER_API_KEY` (or the config key) is present.
## Tool
`web_search` with:
| arg | type | notes |
|-----|------|-------|
| `query` | string (required) | natural-language question or keyword phrase |
| `count` | integer 1–50 | maps to Liner's `max_results` (default 5) |
Each result maps as `title` → `title`, `url` → `url`, Liner's `description`
excerpt → `description`, and `date` → `published`. Calls go through OpenClaw's
trusted-endpoint, content-wrapping, and search-cache plumbing like the bundled
providers.
## Develop
```bash
npm install
npm run typecheck
npm test # unit tests (mocked HTTP)
LINER_API_KEY=sk_live_... npm run test:live # live test against platform.liner.com
```
## Publish to ClawHub
```bash
npm run publish:dry # clawhub package publish ... --dry-run
npm run publish:clawhub # clawhub package publish liner/openclaw-liner-search
```
> **Before first publish, confirm:**
> - The package **scope must match a ClawHub owner you control** (`@liner`).
> If Liner's ClawHub owner handle differs, rename the package + `install`/
> `publish` specs accordingly (ClawHub rejects scope/owner mismatches).
> - `openclaw.compat` / `openclaw.build` versions track the OpenClaw release you
> built/tested against (currently `2026.6.x`).
> - New releases are hidden from install surfaces until ClawHub's automated
> security review completes.
## Files
| File | Role |
|------|------|
| `openclaw.plugin.json` | manifest — id, `webSearchProviders` contract, config schema, UI hints |
| `index.ts` | plugin entry — registers the provider |
| `web-search-provider.ts` | top-level re-export |
| `web-search-contract-api.ts` | lightweight contract surface (metadata-only) |
| `src/liner-web-search-provider.shared.ts` | provider base (id/label/auth/order) |
| `src/liner-web-search-provider.ts` | tool schema + `createTool` |
| `src/liner-web-search-provider.runtime.ts` | HTTP call + response mapping |
| `src/liner-web-search-provider.test.ts` | unit tests |
| `liner.live.test.ts` | gated live test |
| `test-api.ts` | test-only re-export of runtime helpers |
## License
MIT
tools
Comments
Sign in to leave a comment