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

@indigoai-us/hq-pack-presenter-mode

v1.0.0

Published

HQ content pack: turn any self-contained HTML deck into an hq-deploy–hosted presentation with two cloud-synced links — a presentation link and a notes/teleprompter link that stay in sync across devices.

Readme

hq-pack-presenter-mode

Presenter Mode — a presentation screen and a synced teleprompter notes screen on a darkened keynote stage

Turn any self-contained HTML slide deck into an hq-deploy–hosted presentation with two cloud-synced links — one for the slides, one for your teleprompter — that stay in sync across devices with no backend. Generalized from a production conference keynote.

What you get

Point the skill at a deck and it deploys it, then hands you three links:

| Link | URL shape | Use it on | |---|---|---| | Presentation | …/?present=1&sync=<room> | the projector / external screen | | Notes / transcript | …/?notes&sync=<room> | your laptop (script + bullets + thumbnails) | | Audience | (no sync) | share publicly afterward — never follows or hijacks |

Advance on either device and the other follows within ~1 second. The sync rides inside the static HTML over PubNub's public REST demo keyset (gated on ?sync=<room>), so there's nothing to host and nothing to authenticate — and it degrades gracefully to manual arrow navigation if the network drops.

Install

hq install github:indigoai-us/hq-packages#packages/hq-pack-presenter-mode

After install the skill is exposed as /hq-pack-presenter-mode:presenter-mode (master-sync namespaces packs as <pack>:<skill>), and the three deck-authoring policies auto-load.

Quick start

/hq-pack-presenter-mode:presenter-mode      # then point it at a deck (.html file or dir)

The skill will: detect whether the deck already has presenter mode, inject the machinery if not, build the speaker-notes payload, deploy via /deploy, mint a sync room, and print the three links plus a one-screen run-of-show cheat sheet.

How it runs at the podium

  • Open Notes on your laptop, Presentation on the audience screen.
  • Drive from either with ← / → / Space; the other follows.
  • Keys: P present · N pop-out notes · B script ↔ bullets · Home/End jump · Esc exit.
  • Both Presentation and Notes must carry the same ?sync=<room> to stay linked.

Privacy: the speaker script is embedded in the same deployment, so a public deploy makes ?notes world-readable. If the script is sensitive, the skill deploys behind a password or company gate instead — it will check with you.

Layout

packages/hq-pack-presenter-mode/
├── README.md                                  ← you are here
├── package.yaml                               ← HQ pack manifest
├── package.json                               ← npm-side manifest
├── skills/
│   └── presenter-mode/
│       ├── SKILL.md                           ← the presenter-mode skill
│       ├── templates/
│       │   ├── presenter-bundle.html          ← injectable presenter machinery
│       │   └── notes-data.example.json        ← speaker-notes schema + example
│       └── scripts/
│           ├── check-deck.sh                  ← deck contract detector
│           └── presenter-links.sh             ← room + three-link + cheat-sheet generator
└── policies/                                  ← deck-authoring guardrails (auto-load)
    ├── hq-deck-present-mode-scale-to-fit.md
    ├── hq-cross-device-deck-sync-pubnub-bridge.md
    └── hq-deck-slide-reorder-three-coordinated-edits.md

Deck contract

The injectable bundle expects slides as <section class="deck-slide"> elements inside a <div class="deck">, optional progressive reveals as .frag elements, and a <script id="notes-data" type="application/json"> payload for the notes view. It exposes window.__knApplyDeck(n), window.__knApplyNotes(n), and window.__knPub(n). A deck that already satisfies the contract is detected as READY and deployed as-is. See skills/presenter-mode/SKILL.md for the full workflow.

License

MIT