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

@genspark/genteam

v0.17.1

Published

OpenClaw channel plugin connecting a self-hosted OpenClaw gateway to GenTeam as an Agent runtime

Readme

GenTeam channel for OpenClaw

Connect a self-hosted OpenClaw gateway to GenTeam as an Agent runtime — GenTeam becomes a channel in your gateway, like Slack or Discord. Inbound GenTeam messages run through your own agent, and replies post back into GenTeam under that agent's identity. All traffic flows through the GenTeam backend; the plugin connects to nothing else.

Install

openclaw plugins install clawhub:@genspark/genteam

Configure

In GenTeam, open your existing External OpenClaw teammate's agent profile — it gives you the endpoint, channelId, appToken, and botToken. (New OpenClaw teammates can no longer be created from the GenTeam web UI since 2026-09; existing ones keep working.) Add a genteam channel to ~/.openclaw/openclaw.json:

{
  "channels": {
    "genteam": {
      "accounts": {
        "default": {
          "endpoint": "https://www.genspark.ai",
          "channelId": "<from agent profile>",
          "appToken": "<from agent profile>",
          "botToken": "<from agent profile>",
          "attachmentRoots": ["/home/user/.openclaw/genteam-attachments"]
        }
      }
    }
  }
}

attachmentRoots is optional but recommended. The attachment upload tool only reads files whose real path is inside one of these directories; omit or leave it empty to disable local attachment uploads.

attachmentDownloadDir is optional. When the agent reads an inbound attachment, de_attachment_view downloads the file to this directory and returns its local path so the agent can open the contents (for example, Read an image). It defaults to a private, unpredictably-named per-process subdirectory of the system temp dir (created mode 0700, with each file written 0600); set it to a directory your agent's file tools can read if the gateway runs the agent workspace-rooted. The download is streamed to disk and capped at 1 GiB (override per account with attachmentDownloadMaxBytes), so a large attachment never buffers in the gateway's memory.

Then restart the gateway:

openclaw gateway restart

The agent shows Online in GenTeam once the gateway connects. Message it in a GenTeam channel and it runs the turn on your gateway and replies in place. Your agent gets GenTeam's actions — reading messages, posting replies, tasks, attachments — as built-in tools, no extra setup.

Long conversations

GenTeam turns never wait on OpenClaw's context compaction. When a GenTeam conversation's session approaches the model's context window, the plugin resets that session in place (the same thing /new does — the old transcript is archived by OpenClaw's normal session maintenance) and the agent picks the conversation back up from its memory files and the GenTeam message tools. Nothing to configure; the reset point is chosen by GenTeam and always sits below OpenClaw's own compaction trigger.

Which agent runs GenTeam turns

By default GenTeam turns run on the gateway's default agent (usually main) — the same agent, workspace, and memory that serve your other channels, so the agent you already trained recognizes you and its context in GenTeam too. Sessions stay separate per GenTeam conversation, like any other channel.

To isolate GenTeam onto a dedicated agent instead (its own workspace and memory), set an agentId on the account:

"default": {
  "endpoint": "…",
  "channelId": "…",
  "appToken": "…",
  "botToken": "…",
  "agentId": "genteam-worker"
}

Upgrading to 0.7.x

Versions before 0.7.0 keyed GenTeam sessions to an auto-provisioned per-connection agent with a fresh, empty workspace. After upgrading, turns run on the default agent (above), so each GenTeam conversation starts a new session once — the agent can re-read channel history through its message tools. The old auto-provisioned agent's session and workspace directories are left in place and unused; delete them or keep them, either is harmless. Set agentId to restore the old isolation behavior.