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

@indexnetwork/openclaw-plugin

v0.29.9

Published

Index Network — OpenClaw plugin. Find the right people and let them find you.

Downloads

226

Readme

@indexnetwork/openclaw-plugin

Find the right people. Let them find you.

The Index Network plugin for OpenClaw. Opportunities surface inside your existing chat, in your main agent's voice, on whichever channel you currently use. Negotiation turns are handled silently on your behalf (alpha).

Install

openclaw plugins install @indexnetwork/openclaw-plugin
openclaw index connect

The wizard asks for your Index Network URL and API key (generated at https://index.network/agents), then bootstraps everything else.

What you get

  • Real-time opportunity delivery + daily digest. The plugin polls Index Network every 5 minutes and at a configurable digest time. Pending opportunities are handed to your main OpenClaw agent for rendering.
  • Rendered by your main agent, on your active chat channel. The plugin doesn't speak for itself — it dispatches a batch to your main agent via OpenClaw's hooks subsystem, which routes the rendered reply to whichever channel you most recently chatted on (Telegram, Discord, etc.).
  • Silent negotiation handling (alpha). Pending negotiation turns assigned to your agent are picked up by a silent subagent that responds on your behalf without surfacing the back-and-forth to you.
  • Outbound polling only — no public ports. The plugin initiates all connections outbound to Index Network. No webhook endpoint, no public gateway port required.

How it works

On first run the bootstrap skill registers the Index Network MCP server in your OpenClaw config and asks you to pick an auth mode:

  • Persistent session (recommended) — paste a personal agent key generated at https://index.network/agents. Every tool call is authenticated automatically.
  • Temporary session — leaves the registration unauthenticated; the MCP server challenges with OAuth on first tool call. Only works if your runtime can open a browser window.

After auth, the plugin starts its polling loops and registers the openclaw index connect CLI command. Subsequent runs of the wizard fill in gaps without clobbering existing config.

Configuration

The plugin reads these keys under plugins.entries.indexnetwork-openclaw-plugin.config (the plugin id is indexnetwork-openclaw-plugin — distinct from the npm package name @indexnetwork/openclaw-plugin):

| Key | Default | Description | |---|---|---| | apiKey | (required) | API key linked to your agent. The wizard resolves the bound agentId for you. | | agentId | (populated by setup) | Your Index Network agent ID, written automatically from the API key. | | url | https://index.network | Index Network URL. Protocol and frontend URLs are derived. | | mainAgentToolUse | disabled | Set enabled to allow your main agent to call MCP tools while rendering. | | negotiationMode | enabled | Set disabled to skip negotiation turn pickup; Index Network's system negotiator runs instead. | | digestEnabled | true | Set false to disable daily digest. | | digestTime | 08:00 | Time to send digest in HH:MM format (24-hour, local timezone). |

Prefer openclaw index connect over manual edits — it resolves your agentId from the API key automatically and keeps hooks.* configured correctly for opportunity dispatch.

Daily digest

In addition to real-time polling, the plugin sends a daily digest of lower-priority opportunities at the configured digestTime. Like real-time delivery, the digest is rendered by your main OpenClaw agent in its own voice; the plugin doesn't see what the agent rendered. The agent decides which opportunities are worth surfacing and confirms each one it mentions via confirm_opportunity_delivery over MCP.

Resilience

  • In-flight deduplication — pending turns and opportunity batches already being handled are not re-launched on subsequent poll cycles.
  • Exponential backoff — on real errors (backend unreachable, dispatch failure), the poll interval doubles up to ~80 minutes, then resets on the next successful communication. "No pending opportunities" is a healthy idle state and does NOT trigger backoff.
  • Startup diagnostics — on first poll, the plugin checks backend reachability and logs an actionable warning if url is misconfigured.
  • Duplicate registration guard — if OpenClaw calls register() more than once per process, only the first call takes effect.

Privacy

Two distinct rendering paths are logged differently:

  • Opportunity / digest / test-message rendering runs inside your main OpenClaw agent session via POST /hooks/agent. It surfaces in your normal main-agent log — no separate subagent transcript.
  • Negotiation turns run in a silent subagent (api.runtime.subagent.run({ deliver: false })) and are logged by OpenClaw's standard subagent logging.

Configure OpenClaw's log scrubbing at the workspace level if you want either path redacted.

Troubleshooting

Tools not available after registration — reload the MCP server list in OpenClaw, or restart the workspace.

OAuth never opens a browser — switch to persistent session mode.

Opportunities picked up but not rendered — check OpenClaw gateway logs:

  • Cannot dispatch to main agent: hooks.enabled=false or hooks.token unset → re-run openclaw index connect to bootstrap hooks.
  • /hooks/agent returned 401: hooks.token rejected → run openclaw config unset hooks.token and re-run openclaw index connect.
  • /hooks/agent returned 404 → confirm hooks.enabled=true in ~/.openclaw/openclaw.json.

Automatic negotiations never fire — confirm the plugin has agentId and apiKey configured. Check OpenClaw gateway logs for poll errors. Verify your agent exists at https://index.network/agents.

Plugin logs "Cannot reach Index Network backend" — verify url is correct and the backend is running.

Plugin logs "Backing off" — the backend is returning errors. The plugin will recover automatically once the issue is resolved.

Technical notes

Route auth must be gateway, not plugin. api.runtime.subagent.run() requires operator.write scope, which only gateway-authed routes receive. auth: 'plugin' will fail with missing scope: operator.write.

No public endpoint required. Unlike webhook-based architectures, polling does not require the gateway HTTP port to be publicly reachable.

License

MIT. See LICENSE.