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

@glidemq/dashboard

v0.4.1

Published

Web dashboard for glide-mq - queue monitoring, management, and AI observability

Readme

@glidemq/dashboard

npm license

Real-time dashboard for glide-mq - queue monitoring with AI observability. Drop-in Express middleware, no frontend build required.

Why

  • Instant visibility - see job counts, states, workers, and throughput without writing tooling
  • Live updates - SSE pushes job events to the browser as they happen, no polling
  • Operational control - pause, resume, drain, retry, and clean queues from a point-and-click UI

Install

npm install @glidemq/dashboard glide-mq express

Requires glide-mq >= 0.14.0 and Express 4 or 5.

Quick start

import express from "express";
import { Queue } from "glide-mq";
import { createDashboard } from "@glidemq/dashboard";

const app = express();
const queue = new Queue("payments", {
  connection: { addresses: [{ host: "localhost", port: 6379 }] },
});

app.use("/dashboard", createDashboard([queue]));
app.listen(3000);
// Open http://localhost:3000/dashboard

AI-native features

Job detail views include AI fields when present: usage (record-based token/cost breakdown), signals, budgetKey, fallbackIndex, and tpmTokens.

Three dedicated endpoints expose AI orchestration state:

  • GET /api/queues/:name/flows/:id/usage - Aggregated token/cost usage across all jobs in a flow. Returns the combined usage record.
  • GET /api/queues/:name/flows/:id/budget - Budget state for a flow - current spend, per-category caps, remaining budget. Returns 404 if no budget is set.
  • GET /api/usage/summary - Rolling usage totals across all mounted queues or a ?queues= subset. Supports start, end, window, and windowMs.
  • GET /api/queues/:name/jobs/:id/stream - SSE endpoint for streaming job output chunks. Supports ?lastId= for resumption. Returns event: chunk messages with entry fields as data.

SSE event stream (/api/events) now includes usage, suspended, and budget-exceeded events alongside the standard queue lifecycle events.

For write-side flow orchestration over HTTP (POST /flows, GET /flows/:id, GET /flows/:id/tree, DELETE /flows/:id), use the core glide-mq proxy or the HTTP wrapper integrations: @glidemq/hono, @glidemq/fastify, and @glidemq/hapi. The dashboard stays focused on inspection and operations.

API

createDashboard(queues: Queue[], opts?: DashboardOptions): Router

| Option | Type | Default | Description | |--------|------|---------|-------------| | queueEvents | QueueEvents[] | [] | Instances for real-time SSE events | | readOnly | boolean | false | Block all mutation routes with 403 | | authorize | (req, action) => boolean \| Promise<boolean> | - | Per-action authorization callback |

Action strings: queue:pause, queue:resume, queue:obliterate, queue:drain, queue:retryAll, queue:clean, job:remove, job:retry, job:promote, job:changePriority, job:changeDelay, scheduler:upsert, scheduler:remove

app.use(
  "/dashboard",
  createDashboard(queues, {
    authorize: (req, action) => {
      if (action === "queue:obliterate") return req.session?.user?.role === "admin";
      return true;
    },
  })
);

Limitations

  • Express only. No built-in adapter for Fastify, Hono, or Koa.
  • Middleware, not a standalone server - mount it on an existing Express app.
  • Requires glide-mq Queue instances. Does not connect to Valkey/Redis directly.

Links

License

Apache-2.0