npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@workingdevshero/venice-web-search-plugin

v0.1.3

Published

OpenClaw plugin: Venice AI web search provider (Brave ZDR / Google) for the OpenClaw web_search tool.

Readme

@workingdevshero/venice-web-search-plugin

OpenClaw native plugin that registers a venice-search web search provider backed by Venice AI's /augment/search endpoint. Routes web searches through either Brave Search (Zero Data Retention) or Google Search via Venice's privacy-preserving infrastructure.

What it does

  • Adds Venice as a selectable provider for the OpenClaw web_search tool (tools.web.search.provider = "venice-search")
  • Sends queries to POST https://api.venice.ai/api/v1/augment/search with query, limit, and search_provider as documented in the Venice spec
  • Wraps results with wrapWebContent so the LLM sees them flagged as untrusted external content
  • Caches identical queries through the standard plugin-SDK search cache
  • Uses postTrustedWebToolsJson for SSRF-safe Bearer-auth POSTs with timeouts and the OpenClaw cancellation AbortSignal

Requirements

Install

From ClawHub (recommended):

openclaw plugins install clawhub:@workingdevshero/venice-web-search-plugin
openclaw plugins enable venice-web-search
openclaw gateway restart

From npm:

openclaw plugins install npm:@workingdevshero/venice-web-search-plugin
openclaw plugins enable venice-web-search
openclaw gateway restart

From a local checkout (for development):

git clone https://github.com/workingdevshero/venice-web-search-plugin
cd venice-web-search-plugin
npm install
npm run build
openclaw plugins install ./
openclaw plugins enable venice-web-search
openclaw gateway restart

Verify the plugin loaded and registered the provider:

openclaw plugins inspect venice-web-search --runtime --json

Configure

Set the API key:

openclaw config set plugins.entries.venice-web-search.config.webSearch.apiKey "vn_your_key_here"

Select Venice as the active web search provider:

openclaw config set tools.web.search.provider venice-search

Optional config:

| Path | Type | Default | Description | | ----------------------------------------------------------------------------- | ---------------- | -------------------------------- | ------------------------------------------------------------ | | plugins.entries.venice-web-search.config.webSearch.apiKey | string | secret | (env VENICE_API_KEY) | Venice API key | | plugins.entries.venice-web-search.config.webSearch.searchProvider | "brave" | "google" | "brave" | Default search backend Venice uses | | plugins.entries.venice-web-search.config.webSearch.baseUrl | string | https://api.venice.ai/api/v1 | Override for trusted Venice-compatible proxies |

The plugin also reads tools.web.search.timeoutSeconds and tools.web.search.cacheTtlMinutes if you've set them globally.

Tool arguments

When the agent calls web_search, the following args are accepted:

| Arg | Type | Range / Values | Description | | ----------------- | -------------------------- | ----------------- | ------------------------------------------------------------ | | query | string (required) | 1–400 chars | The search query | | count | number | 1–20, default 10 | Number of results | | search_provider | "brave" | "google" | — | Override the configured backend for a single call |

Credential resolution order

  1. tools.web.search.apiKey (top-level search config)
  2. plugins.entries.venice-web-search.config.webSearch.apiKey
  3. VENICE_API_KEY environment variable

Note: the same key works for the bundled Venice model provider, so if you already use Venice for inference you don't need a separate one.

Errors

The plugin surfaces Venice's HTTP errors with the response body included:

| Status | Meaning | | ------ | ---------------------------------------------------------------------------------------- | | 400 | Invalid request parameters | | 401 | Authentication failed — bad or missing API key | | 402 | Insufficient balance — top up at https://venice.ai/settings/billing | | 403 | Unauthorized | | 429 | Rate limit exceeded | | 500 | Venice-side error |

Build

npm install
npm run build

This emits dist/index.js, dist/venice-web-search-provider.js, and dist/venice-search-runtime.js plus declaration files. openclaw.extensions points at ./src/index.ts and runtimeExtensions points at ./dist/index.js, so OpenClaw uses the compiled output at runtime.

License

MIT