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

@xpufx/paseo-helper-demo

v0.2.2

Published

This plugin is a demo for showcasing some of the capabilities of [`paseo-plugin-helper`](https://github.com/xpufx/paseo-plugin-helper) ([npm](https://www.npmjs.com/package/paseo-plugin-helper)), namely the UI design system, lifecycle primitives, and daemo

Downloads

493

Readme

paseo-helper-demo

This plugin is a demo for showcasing some of the capabilities of paseo-plugin-helper (npm), namely the UI design system, lifecycle primitives, and daemon utilities for building Paseo plugins. It does not necessarily do anything useful to end users. Install this one to see every pattern running live; depend on the helper to build your own.

Built on paseo-plugin-helper, the shared Paseo plugin runtime.

The helper package and demo are together a demonstration of an idea: that the plugin ecosystem can benefit from a common library, not necessarily this common library, rather than solving the same issues again and again.

| System Metrics | About Plugin | | :---: | :---: | | | |

[!NOTE] Prerequisites & Platform Support:

  • The composer pill shows live host CPU; the modal covers metrics, actions, tables, beacons, settings, diagnostics, and logs.

Showcase tabs

| Tab | Pattern it teaches | | :--- | :--- | | Gauges & Hardware | MetricGauge, ProgressBar, KeyValueGroup, auto-refresh polling with selectable cadence | | Visual Flair Studio | Live theme/flair customizer (radius, density, surface, borderWidth, accentColor) backed by atomic settings | | Data Table | DataTable + SearchInput over live daemon items, with EmptyState | | Interactive Controls | Button, Toggle, TextInput, FormRow, haptics + toast feedback | | Attention & Beacons | AttentionBeacon modes/tones plus workspace beacon RPCs (set/blink/clear) and agent identity inspection | | Plugin Settings | Type-safe Zod settings with optimistic React Query updates, navigation-style switch (tabs/dropdown) | | Network Diagnostics | CodeBlock host details, daemon port, platform | | System Logs | Copyable log view fed by the daemon tick counter | | About Plugin | AboutSection reference (version, repo, issues, license, extras) |

Navigation styles

The modal navbar renders two ways, switchable in the Settings tab (navigationStyle):

  • Tabs: sliding single-row <Tabs mode="scroll">, pinned above the scroller (headerMode="pinned").
  • Dropdown (default): in-flow dropdown trigger + menu inside the ModalBody header, scrolling with the content (headerMode="scroll", see resolveDemoHeaderMode in shared/demo.ts). The open menu resets on navigation-style switches and on pull-to-refresh.

RPC contracts (shared/demo.ts)

  • helper-demo.get-data: hostname, platform, CPU model/usage, memory, load averages, uptime, daemon port, background ticks, service items.
  • helper-demo.trigger-action: background action demo with success/error toast + haptic feedback.
  • helper-demo.agent-identity: active agent identity/session for self-inspection.
  • helper-demo.beacon-set / beacon-blink / beacon-clear: workspace status beacon control.
  • helper-demo.settings: persisted settings (showCpuUsage, accentPillLabel, pollingRate, navigationStyle, highCpuThreshold, flair fields).

TEMP: upstream server settings handle (issue #62)

A temporary sidebar page (Server Settings (temp)) demonstrates the upstream server-side settings handle added in Paseo 0.9.0-beta.1 (upstream PR #4674), not our helper's PluginStorage/registerSettingsRpc layer:

  • index.server.ts calls server.registerSettings(defineSettings({ id: "server-demo", ... })) and keeps the returned PluginSettings handle.
  • The daemon reads through handle.read() and subscribes through handle.subscribe() (see server/server-settings.ts).
  • The page (client/server-settings.tsx) renders the daemon's handle state (status / revision / values / subscribe() event count) and writes the same document through the host's auto-registered settings.server-demo.* RPC.
  • The document lives at ~/.paseo/plugin-settings/paseo-helper-demo/server-demo.json.

On hosts older than 0.9.0-beta.1, registerSettings() returns void; the page then reports the handle as unavailable and points at the SDK version. This page is scaffolding for the #62 demo and is not wired into the pill/modal surfaces.

Tests: npm test --workspace plugins/demo (or npx vitest run in plugins/demo).