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

kalvium-worklog

v1.3.2

Published

Auto-submit your daily Kalvium worklog without opening the website

Readme

kalvium-worklog

Auto-submit your daily Kalvium worklog without opening the website.

Install

npm install -g kalvium-worklog

Quick Start

# Full setup (login + discover position + schedule)
kalvium-worklog install

# Or step by step:
kalvium-worklog login       # log in via browser (Google + 2FA)
kalvium-worklog discover    # auto-discover your position ID
kalvium-worklog schedule 14:00  # daily auto-submit at 2 PM

Commands

| Command | Description | |---------|-------------| | kalvium-worklog install | Full setup: login + discover + schedule | | kalvium-worklog login | Log in to Kalvium (opens browser, waits for Google + 2FA) | | kalvium-worklog discover | Auto-discover your internship position ID | | kalvium-worklog submit [text] | Submit worklog (default: "Working on assigned task") | | kalvium-worklog submit "built a feature" | Submit with custom text | | kalvium-worklog submit --dry-run | Test without submitting | | kalvium-worklog status | Check recent worklog entries | | kalvium-worklog schedule 14:00 | Set up daily auto-submit at 2 PM | | kalvium-worklog schedule --remove | Remove daily auto-submit | | kalvium-worklog daily | Run daily submit (used by scheduler) | | kalvium-worklog catchup | Check if today's worklog is missing and submit if needed |

Features

  • Cross-platform: macOS (launchd), Windows (Task Scheduler), Linux (cron)
  • Auto re-login: If the token expires, automatically opens browser, waits for login, and retries
  • Token auto-refresh: Refresh token rotates on each use, lasts 6 days
  • Auto-discovers position ID: Works for any user, no hardcoded IDs
  • Weekend skipping: Auto-submit skips Saturdays and Sundays
  • Network retry: Retries up to 5 times on network failure (covers laptop waking up, internet reconnecting)
  • Catch-up on wake: If the scheduled time was missed (laptop asleep/offline), submits when the device wakes up

How It Works

One-time setup:
  Browser login → capture refresh token → discover position ID

Daily auto-submit (scheduler):
  Refresh token → PUT worklog API → done
  If token expired → auto open browser → re-login → retry
  If network fails → retry up to 5 times (1 min apart)

Catch-up (on login/wake, every 30 min):
  Check if today's worklog is submitted → if not, submit it

Token Lifecycle

  • Access token: 3 days
  • Refresh token: 6 days, rotates on each use
  • As long as you submit at least once every 6 days, the token never expires
  • If expired: kalvium-worklog login (or it auto-triggers)

Files

~/.kalvium/
├── refresh_token.json    # Current token (auto-rotates)
├── config.json           # Position ID + API URL
├── daily_submit.js       # Scheduler entry point
├── catchup_submit.js     # Catch-up entry point
└── worklog.log           # Log file

~/.kalvium_profile/       # Browser profile (saved login)

Uninstall

kalvium-worklog schedule --remove
npm uninstall -g kalvium-worklog
rm -rf ~/.kalvium ~/.kalvium_profile

Requirements

  • Node.js 18+
  • npm

License

MIT