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

work-chronicler

v0.7.1

Published

CLI and MCP server that turns your GitHub PRs and JIRA tickets into a searchable markdown work log for performance reviews and resumes.

Readme

work-chronicler

CLI and MCP server that turns your GitHub PRs and JIRA tickets into a searchable markdown work log for performance reviews and resumes.

npm license: MIT

Review season arrives and you have to reconstruct a year of work from memory. work-chronicler pulls what you already wrote down (PR descriptions and ticket history) into plain markdown files on your machine, then gives AI assistants structured access to it.

How it works

Data flows one way: fetch from the sources, enrich locally, then read it with AI skills or the MCP server.

flowchart LR
  accTitle: work-chronicler pipeline
  accDescr: GitHub and JIRA are fetched into a local markdown work log, linked and analyzed, then read by AI skills and the MCP server to produce resume bullets and reviews.
  GH[GitHub PRs] --> F[fetch]
  JI[JIRA tickets] --> F
  F --> WL[(Markdown work log)]
  WL --> LA[link + analyze + filter]
  LA --> WL
  WL --> SK[AI skills]
  WL --> MCP[MCP server]
  SK --> OUT[Resume bullets, self-reviews, summaries]
  MCP --> OUT

Each PR becomes one file at work-log/pull-requests/<org>/<repo>/<date>_<number>.md. This example (invented data) shows a PR after link and analyze --tag-prs filled in jiraTickets and impact:

---
title: "feat(billing): add usage-based invoice line items"
prNumber: 1482
repository: billing-service
org: acme
author: jdoe
state: merged
createdAt: 2026-03-04T17:22:10Z
mergedAt: 2026-03-06T15:41:02Z
closedAt: 2026-03-06T15:41:02Z
url: https://github.com/acme/billing-service/pull/1482
additions: 612
deletions: 148
changedFiles: 19
jiraTickets:
  - BILL-311
labels:
  - billing
impact: flagship
---

## Summary

Adds metered line items to monthly invoices so usage-plan customers see
per-feature charges. Replaces the flat overage fee.

Quick start

Requires Node.js 22.22.1 or later (24 recommended), a GitHub personal access token and, optionally, a JIRA API token.

npm install -g work-chronicler

work-chronicler init            # guided setup: profile, sources, repos, tokens
work-chronicler fetch all       # fetch PRs and tickets, then link them
work-chronicler status          # see what was fetched
work-chronicler analyze --all   # tag impact, detect projects, build a timeline
work-chronicler skills install  # add the AI skills to Claude Code, Cursor, Codex or Gemini

Then, in your AI coding assistant, run a skill such as /work-chronicler-write-self-review. Skills are assistant slash commands; they do not run in a terminal.

Data lives in ~/.work-chronicler/profiles/<profile>/. Each profile has its own config.yaml, .env (tokens, mode 600) and work-log/. Set WORK_CHRONICLER_HOME to use another root.

What you can do

| Goal | Use | | --- | --- | | Pull PRs and tickets into markdown | fetch github, fetch jira, fetch all | | Record the PR reviews you gave | fetch github --reviews or fetch all --reviews | | Store records a skill gathered from another service | validate <dir>, then import <dir> | | Import your own Slack messages as supplementary evidence | /work-chronicler-setup-slack, then /work-chronicler-import-slack (AI skills) | | Choose the Slack channels an import skill may read | slack configure, slack channels add\|remove\|list, slack show | | Name the Google account whose Docs an import skill may store | google-docs configure, google-docs show | | Import the Google Docs you own as supplementary evidence | google-docs configure, then /work-chronicler-import-google-docs (AI skill; reads Drive with gog) | | Connect PRs to the tickets they reference | link (run automatically by fetch all) | | Classify PRs as minor, standard, major or flagship | analyze --tag-prs | | Group related work into projects and a timeline | analyze --projects --timeline | | Keep only the work that matters for a review | filter (for example --min-impact major --merged-only) | | Draft resume bullets, self-reviews and summaries | AI skills (skills install) | | Let an assistant query your history | mcp (stdio MCP server) | | Keep work and personal history apart | profiles (profile list\|switch\|delete, global --profile) | | Track direct reports as a manager | manager mode (init --mode manager, reports ...) |

The command reference lists every command and flag.

Scope

What exists today:

  • Sources: GitHub pull requests you authored (by org and repo, or every repo in an org), optionally the reviews and inline review comments you gave on other people's PRs in those orgs (IC profiles), and JIRA Cloud tickets assigned to you (one or more instances and projects). No other sources are fetched.
  • Imported records: import checks a batch of message or document records that a skill staged in a directory and stores it in the work log all or nothing. The CLI never contacts the service the records came from. Slack records are accepted only for an IC or report with Slack settings (slack ...), and only the subject's own messages in its configured channels. Google Docs records are accepted only for an IC or report with Google Docs settings (google-docs ...), and only Docs the configured account owns, modified inside the fetch range, as a bounded excerpt. status, filter, stats, link, the MCP server and the skills read them as supplementary evidence, apart from PRs and tickets; the timeline lists Google Docs apart, and project detection covers PRs and tickets only.
  • Local enrichment: PR-to-ticket linking, impact classification, project detection from shared ticket references, a week/month timeline, and filtered subsets. None of these call an AI model.
  • IC and manager modes: an individual work log per profile, or per-report work logs plus team-level project and timeline rollups for people managers.
  • MCP server: ten read-only query tools over the work log.
  • AI skills: thirteen skills: six for IC profiles, three manager-only, and four for any profile (peer reviews, setting up and importing Slack messages, and importing Google Docs). The writing skills read the work log and write documents to the profile's outputs/ directory; the Slack skills read Slack through the assistant's Slack connector, read-only, and store messages with import; the Google Docs skill reads Drive with gog, read-only, and stores Docs with import.

The CLI itself never calls an LLM; writing happens in your assistant through the skills or the MCP server.

Documentation

Start at the documentation index or Getting started. The pages are also a Fumadocs site in documentation/.

Development

pnpm install
pnpm build
pnpm test

Run the CLI from source with pnpm cli <command>. See CONTRIBUTING.md for checks, commit conventions and the release process, and CHANGELOG.md for release history.

License

MIT