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

opencode-keenable

v0.1.1

Published

Keenable web search + page fetch tools for OpenCode. Keyless by default: no signup, no CLI, no login.

Downloads

325

Readme

opencode-keenable

OpenCode plugin for Keenable — web search and page fetch for your agent, keyless by default. No signup, no CLI to install, no login step: add one line to your config and the tools are there.

Installation

Add the plugin to your opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["opencode-keenable"]
}

That is the whole setup. OpenCode installs the plugin with Bun on startup and the tools work immediately against Keenable's public endpoints.

Tools

| Tool | Use when | |------|----------| | keenable_search | No URL yet — find pages, check current events, read changelogs and API references | | keenable_fetch | You have a URL — pull the page as clean markdown |

keenable_search takes a natural-language query and optional site, published_after / published_before, acquired_after / acquired_before (all dates YYYY-MM-DD). keenable_fetch takes one http(s) url and returns the main content as markdown plus title, description, author and publication date.

Configuration

Both are optional.

| Variable | Effect | |----------|--------| | KEENABLE_API_KEY | Switches to the authenticated endpoints, which raises the rate limits. Create a key at keenable.ai/console. | | KEENABLE_API_URL | Base-URL override. HTTPS is enforced (plain http only for loopback). |

Keyless requests are rate-limited per IP. Without a key everything still works; the key is a limit lift, not a prerequisite. Both variables are also forwarded to shell commands run in the session.

Notes

  • Shipped as TypeScript. OpenCode runs plugins with Bun, so there is no build step.
  • One dependency, @opencode-ai/plugin, for the tool() helper and its Zod schemas. The API calls themselves use fetch and the Node standard library.
  • keenable_fetch refuses private and internal targets (loopback, RFC-1918, link-local, cloud metadata hosts) before sending the request.
  • Errors from the API (rate limit, auth, bad input) come back as tool output rather than exceptions, so a failed lookup does not break the session.

Links

License

MIT