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

@teamilyai/teamily

v1.0.2

Published

OpenClaw Teamily channel plugin - Team instant messaging server integration

Readme

Teamily Channel Plugin for OpenClaw

Integrates Teamily with OpenClaw as a self-hosted team messaging channel.

Installation

openclaw plugins install @teamilyai/teamily

Or update an existing install:

openclaw plugins update teamily

Note: The plugin update command uses the plugin ID teamily, not the npm package name.

Configuration

Interactive Setup

openclaw channel configure teamily

Server Settings

| Field | Description | Default | | -------- | --------------------- | --------------------------------------- | | apiURL | Teamily REST API URL | https://imserver.teamily.ai/im_api | | wsURL | Teamily WebSocket URL | wss://imserver.teamily.ai/msg_gateway |

Bot Account Settings

| Field | Required | Description | | ---------- | -------- | ----------------------------- | | userID | Yes | User ID for the bot account | | token | Yes | User token for authentication | | nickname | No | Display nickname | | faceURL | No | Avatar URL |

DM Security

Per-account or channel-level DM security can be configured:

| Field | Description | | -------------- | --------------------------------------------------- | | dm.policy | DM security policy (pairing, allowlist, open) | | dm.allowFrom | List of allowed sender IDs |

Example Configuration

channels:
  teamily:
    enabled: true
    server:
      apiURL: https://imserver.teamily.ai/im_api
      wsURL: wss://imserver.teamily.ai/msg_gateway
    accounts:
      default:
        userID: "bot-user-id"
        token: "bot-token"
        nickname: "OpenClaw Bot"
        dm:
          policy: open

Multiple accounts are supported under the accounts key.

Usage

Send Messages

# Send to a user
openclaw message send teamily:user:userID "Hello!"

# Send to a group
openclaw message send teamily:group:groupID "Hello group!"

Send Media

openclaw message send teamily:user:userID --media /path/to/image.jpg

Supported media types are auto-detected by file extension:

| Extension | Type | | ----------------------------------------------------- | ----- | | .jpg, .png, .gif, etc. | Image | | .mp4, .mov, .webm | Video | | .mp3, .m4a, .wav | Audio | | .pdf, .doc, .zip, .json, .txt, .csv, etc. | File |

Group Chat Behavior

  • All group messages are received and dispatched to the agent for context accumulation.
  • The bot only replies when it is @-mentioned in the group (@BotName).
  • In direct messages, the bot always replies.
  • Both regular groups (sessionType=3) and super groups (sessionType=2) are supported.

Capabilities

| Feature | Supported | | ------------------------------ | --------- | | Direct messaging | Yes | | Group messaging | Yes | | Text messages | Yes | | Media (image/video/audio/file) | Yes | | @-mention gating (groups) | Yes | | WebSocket real-time monitoring | Yes | | Automatic reconnection | Yes | | Connection health probes | Yes | | Reactions | No | | Threads | No | | Polls | No |

Architecture

index.ts              Plugin entry point (registers channel with OpenClaw)
src/
  channel.ts          Channel plugin definition (gateway, outbound, config, security)
  monitor.ts          WebSocket monitor using @openim/client-sdk (inbound + send)
  types.ts            Shared types and constants (session types, content types, message shapes)
  config-schema.ts    Zod config schema (server, accounts, DM security)
  accounts.ts         Account resolution and listing
  normalize.ts        Target ID normalization (user:ID, group:ID)
  upload.ts           Media category detection, MIME types, MP4 metadata parsing, video snapshot extraction
  probe.ts            Health check via REST API
  runtime.ts          Plugin runtime store

License

MIT