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

@lucasconnellm/fluxer

v0.6.4

Published

OpenClaw Fluxer channel plugin powered by @fluxerjs/core

Downloads

291

Readme

Openclaw Fluxer Plugin banner

Openclaw Fluxer Plugin

Fluxer channel plugin for OpenClaw, built on top of @fluxerjs/core.

Experimental disclaimer

This project is highly experimental and provided "as is". By using it, you accept all risk and are solely responsible for any outcomes, including service interruptions, data issues, policy violations, account actions, or other repercussions. The author/maintainer is not liable for any damages or consequences resulting from use of this software.

Current status

Installable local plugin scaffold with:

  • inbound monitoring via @fluxerjs/core gateway client
  • outbound send via @fluxerjs/core REST/client helpers
  • OpenClaw DM/group policy gates, pairing, routing, debounce/dedupe
  • status/probe wiring in OpenClaw channel model

Voice status (very experimental)

Voice support is currently highly experimental and does not behave reliably against official hosted Fluxer.app servers yet.

Given the pace of upstream Fluxer server changes and current instability, voice work in this plugin will remain lower priority until server behavior is more stable.

Install

Install from the published plugin package:

openclaw plugins install @lucasconnellm/fluxer
openclaw plugin enable fluxer
openclaw gateway restart

The package is now named @lucasconnellm/fluxer because OpenClaw appears to infer plugin identity from the repo/package name. Publishing under openclaw-fluxer was causing install/registration mismatches in practice.

If you’re developing locally, use a linked install as needed.

Configure

Use OpenClaw’s JSON config format. Set your fluxer block like this:

{
  "fluxer": {
    "enabled": true,
    "apiToken": "<REDACTED>",
    "baseUrl": "https://api.fluxer.app",
    "authScheme": "bot",
    "dmPolicy": "allowlist",
    "allowFrom": [
      "<YOUR_USER_ID>"
    ],
    "groupPolicy": "allowlist",
    "groupAllowFrom": [
      "<YOUR_USER_ID>"
    ]
  }
}

Notes on baseUrl

  • If your API root is standard hosted Fluxer, https://api.fluxer.app is correct.
  • If self-hosted behind /api/v1, set baseUrl to the parent API root (for example https://fluxer.example/api) so the SDK resolves /v1 correctly.

Optional config knobs

{
  "fluxer": {
    "authScheme": "bot",
    "textChunkLimit": 4000,
    "reconnect": {
      "baseDelayMs": 1000,
      "maxDelayMs": 30000,
      "maxAttempts": 0,
      "jitterRatio": 0.2
    },
    "streaming": {
      "enabled": false,
      "mode": "partial",
      "minCharsDelta": 40,
      "idleMs": 700,
      "maxEdits": 40
    }
  }
}

streaming enables draft preview edits while a response is generating. Start with enabled: false and enable per account after validation.

You can also use env vars (default account only):

  • FLUXER_API_TOKEN
  • FLUXER_BASE_URL

Feature parity snapshot (vs Discord channel plugin)

  • ✅ DM + channel/group inbound/outbound
  • ✅ pairing / allowlist / policy gates
  • ✅ message update + delete inbound events captured
  • ✅ reaction add inbound event captured
  • ✅ media attachment URLs passed inbound
  • ✅ outbound media supports native URL attachments via @fluxerjs/core file payloads
  • ✅ outbound reactions wired (react action)
  • ⚠️ slash command registration is experimental (slashCommandPrefixes, default tries /models)
  • ⚠️ streaming draft previews are experimental (streaming config; partial/block modes)
  • ⚠️ voice support is highly experimental and currently unreliable on official Fluxer.app servers
  • ⚠️ thread routing parity not complete

Development workflow (pnpm + commit standards)

This repo uses pnpm, Husky, Commitizen, Commitlint, and release-please.

Install

pnpm install
pnpm run prepare

Local quality gates

  • Pre-commit hook runs pnpm run check (typecheck + tests)
  • Commit message hook enforces Conventional Commits

Conventional Commits (required)

Use commit messages like:

  • feat: add outbound typing support
  • fix: handle fluxer websocket reconnect jitter
  • chore: bump @fluxerjs/core to 1.2.0

Do not use non-conventional commit messages. They will be rejected by commit hooks and will break release automation quality.

Commit helper (Commitizen)

Use the guided commit flow:

pnpm commit

CI

GitHub Actions CI runs on:

  • pull requests
  • manual workflow dispatch

Releases (release-please)

release-please runs on main and opens/updates a release PR based on Conventional Commits. When merged, it updates version/changelog and creates the GitHub release/tag consumed by publish automation.

License

MIT — see LICENSE.