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

cndactl

v1.4.0

Published

Terminal UI and CLI for Cloud Native Days Austria

Readme

cndactl

cndactl is a command line tool for browsing Cloud Native Days Austria information from the terminal.

Features

  • Browse conference sessions from Sessionize, including room and start time
  • See the current or upcoming talk in every room
  • Follow a live updating view with a progress bar for the running talk
  • Explore speakers, bios, and speaker links
  • List core event links such as tickets, venue, and website
  • Open tickets, website, venue, and speaker URLs in the browser

Demo

What is on right now, in every room:

cndactl get now

cndactl watch keeps that view up to date and shows how much of the running talk is left:

cndactl watch

Both recordings are scripted with vhs and use a faked clock, so they show the conference in full swing. To re-record them:

vhs demo/get-now.tape
vhs demo/watch.tape

The tapes call scripts/demo-clock.ts, which runs the CLI at a fixed point in time (CNDACTL_DEMO_NOW) and optionally faster than real time (CNDACTL_DEMO_SPEED), so a few seconds of recording cover half an hour of conference.

Requirements

  • Node.js 20 or newer
  • Network access to the public Sessionize event feed

Quick Start

Run without installing globally:

npx cndactl get sessions

Or with pnpm:

pnpm dlx cndactl get sessions

If you cloned the repository locally:

pnpm install
pnpm run build
node dist/cli.js get sessions

For a persistent local command name:

pnpm run link
cndactl get sessions

Commands

cndactl get sessions
cndactl get sess
cndactl describe session 1119590
cndactl describe sess 1119590
cndactl get now
cndactl get now --room "Room 4"
cndactl watch
cndactl watch --room 6 --interval 5
cndactl get speakers
cndactl get spk
cndactl describe speaker "Alex Example"
cndactl describe spk "Alex Example"
cndactl get links
cndactl get sessions --no-cache
cndactl open tickets
cndactl open website
cndactl open event venue
cndactl open speaker "Alex Example" linkedin

Command Reference

cndactl get sessions

  • Lists sessions from the configured Sessionize feed, each with its room and start time.

cndactl describe session <query>

  • Shows a single session by exact id or partial title match.

cndactl get now

  • Shows the talk currently running in every room, or the next one when a room is between slots.
  • Adds the remaining time for a running talk and a countdown for an upcoming one.
  • --room <room> limits the output to one room. The filter is forgiving: --room "Room 4", --room room4, and --room 4 all work.
  • Also available as cndactl get current.

cndactl watch

  • Live updating version of cndactl get now, with a progress bar showing how much of the running talk is left.
  • Redraws every second; change that with --interval <seconds>.
  • --room <room> limits the view to one room.
  • Runs in the alternate screen buffer and restores the terminal on Ctrl+C. When the output is piped or redirected, it prints a single frame instead.

cndactl get speakers

  • Lists speakers from the configured Sessionize feed together with accepted talk counts.

cndactl describe speaker <query>

  • Shows a single speaker by exact id or partial name match.
  • Attempts to render the speaker profile picture using terminal image protocols (for example iTerm2/Kitty support), then falls back to text-only details when rendering is unavailable.

cndactl get links

  • Lists built-in conference links such as website, tickets, venue, and YouTube.

Short aliases are also available: cndactl get sess, cndactl describe sess <query>, cndactl get spk, and cndactl describe spk <query>.

cndactl open tickets

  • Opens the ticket page in the default browser.

cndactl open website

  • Opens the main Cloud Native Days Austria website.

cndactl open event <linkId>

  • Opens a configured event link such as venue, sessions, team, or youtube.

cndactl open speaker <speakerQuery> <linkType>

  • Opens a speaker link such as linkedin, blog, sessionize, or company-website.

cndactl ... --no-cache

  • Bypasses local Sessionize cache for that run and always fetches fresh data.

Data Source

The CLI reads from the Sessionize All endpoint for event key 7o54a33i:

https://sessionize.com/api/v2/7o54a33i/view/All

The app currently trusts that this feed is already configured to expose the intended public speaker and session set.

Sessionize returns session times in UTC. All times are displayed in the event time zone Europe/Vienna, so they match the printed schedule on site regardless of where you run the CLI.

Sessionize data is cached locally in the operating system cache directory (for example ~/.cache/cndactl on Linux/macOS, %LOCALAPPDATA%\\cndactl on Windows). The cache is refreshed every 30 minutes by default.

You can change the refresh interval with CNDACTL_SESSIONIZE_CACHE_TTL_MINUTES:

CNDACTL_SESSIONIZE_CACHE_TTL_MINUTES=10 cndactl get sessions

If cache reads/writes fail, cndactl automatically falls back to direct Sessionize fetches.