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

@adonis-agora/telescope-ui

v1.5.0

Published

Observability dashboard for @adonis-agora/telescope — a React SPA (overview, entries + live tail, entry detail, traces & waterfall, exception groups, Pulse health, CPU profiles, live queues and schedules, extension pages, client-side exports) built with T

Readme

@adonis-agora/telescope-ui

The observability dashboard for @adonis-agora/telescope — a dependency-light React SPA served by a thin AdonisJS provider, behind the same auth guard as the JSON API it consumes. Part of the Agora ecosystem.

What it shows

  • Pulse — the getHealth "at a glance" rollup: throughput, error rate, p99 latency, HTTP status breakdown, slowest entries, slow routes, top exceptions, N+1 hotspots, load-by-user, cache hit ratio.
  • Entries — the entries list with type + free-text filters and an SSE live tail that prepends new entries as they are recorded. Rows deep-link to the entry detail and the trace waterfall.
  • Entry detail — the full entry: a type-aware header (method/url/status for requests), a metadata list, and the pretty-printed content. Exception/client_exception entries additionally get an AI diagnosis panel (shown only when @adonis-agora/telescope/ai is installed and configured) — "Diagnose with AI" calls the Anthropic-backed DiagnosisCoordinator and renders a probable cause + suggested fix, cached by exception family so re-opening the same error doesn't burn a second model call. request entries get a Replay action that re-issues the captured request against the live server (disabled by default server-side; the panel surfaces why when it is).
  • Traces — recent traces with their type mix, plus a per-trace waterfall (hand-rolled, no chart library) and a trace-scoped entries view.
  • Exceptions — exception groups (class + message) over a window, with counts and trend sparklines.

It is a pure consumer of the telescope core's real routes under <path>/api/* (/entries, /entries/:id, /trace/:id, /metrics/{pulse,stats,traces,waterfall,n-plus-one}) and the SSE live stream at <path>/api/stream. No bundled API, no NestJS module.

Install

// adonisrc.ts — after the core telescope providers
providers: [
  // …
  () => import('@adonis-agora/telescope/telescope_provider'),
  () => import('@adonis-agora/telescope/ui_provider'),          // JSON API + SSE under <path>/api/*
  () => import('@adonis-agora/telescope-ui'),                   // serves the SPA at <path>
]

The SPA mounts at config('telescope_ui').path (default /telescope) and reuses that block's authorize guard. Toggle it or override the mount with the optional telescope_ui.dashboard block:

// config/telescope_ui.ts
import { defineConfig } from '@adonis-agora/telescope/ui'

export default defineConfig({
  path: '/telescope',
  // authorize: (ctx) => ctx.auth.user?.isAdmin === true,
  // dashboard: { enabled: true, path: '/telescope' },
})

Design

Tailwind + a vendored shadcn-style component layer on Base UI (button, badge, dialog, tabs, tooltip, popover, input, select, tablesrc/app/primitives/), on the Aviary design tokens shared across the Agora ecosystem's consoles — same neutrals/status hues as @dudousxd/nestjs-telescope-ui (this dashboard's NestJS sibling), same magenta --accent, so the two Telescope dashboards match pixel-for-pixel regardless of host framework. Dark-mode-first with a .light-class override (persisted to localStorage), responsive. Still dependency-light where it counts: hand-rolled SVG sparklines and a CSS waterfall (a dense, grid-based timeline that loses legibility as pure utilities), a tiny useAsync instead of a query library, and native EventSource for the live tail — no react-router, no charting library, no table library.