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

@vibecoded/work

v0.0.15

Published

Work: CLI Time Tracker

Readme

@vibecoded/work

npm version npm downloads

Minimal local time-tracking CLI (Bun + TypeScript) that stores everything on disk.

Features

  • One command to start/stop tracking.
  • Pause and resume active tracking.
  • Add notes, manual entries, and undo the latest session.
  • Task picking with fuzzy search.
  • Monthly CSV storage for easy exports.
  • No servers, no accounts, no lock-in.

Install

bun add -g @vibecoded/work
npm install -g @vibecoded/work

Quick start

work init
work on "Client X" "Kickoff call"
work status
work pause
work resume
work note "Investigating issue"
work add "Client X" "Prep" --start "2025-10-01 09" --end "2025-10-01 10" --note "offline work"
work undo
work off

Library usage

Import the Node API and call the same lower-level helpers used by the CLI.

import { ensureWorkHome, getWorkHome, loadProjects } from '@vibecoded/work';

const workHome = getWorkHome();
await ensureWorkHome(workHome);

const projects = await loadProjects(workHome);
console.log(projects.projects);

You can also import the explicit library entry:

import { fmtElapsed } from '@vibecoded/work/lib';

console.log(fmtElapsed(90_000));

Data location

Default: ~/.work

Override with:

work --dir ./my-work-data status

Commands

work init

Initialize data files.

work init

work on [project] [task...]

Start tracking.

  • If project is missing: pick or create a project
  • If task is missing: pick or create a task
  • If already tracking something: asks to switch (use --yes to auto-switch)
work on
work on Project
work on Project "Fix billing bug"
work on Project2 "New task" --yes

work off

Stop current tracking and write to the month CSV.

work off

work pause

Pause the current tracking session.

work pause

work resume

Resume a paused tracking session.

work resume

work note <text>

Add a note to the active session.

work note "Investigating issue"

work add <project> <task...> [--start <date>] [--end <date>] [--note <text>]

Add a manual entry. Date parts are optional; missing minutes/seconds/milliseconds are randomized.

work add Project "Deep work" --start "2025-10-01 09" --end "2025-10-01 10"
work add Project "Planning" --start "2025-10-01 11:2" --end "2025-10-01 12" --note "offline"

work undo

Mark the most recent session as deleted.

work undo

work status

Show current tracking (if any).

work status

work projects

List projects.

work projects

work tasks [project]

List tasks for a project (by usage).

  • If project is missing: pick a project
work tasks
work tasks Project

work info [project] [YYYY-MM] [--export]

Monthly summary (grouped by day and task).

  • If project is missing: pick a project
  • If YYYY-MM is missing: uses current local month
  • --export writes data/<projectId>/<YYYY-MM>-info.csv
work info
work info Project
work info Project 2026-01
work info 2026-01
work info Project 2026-01 --export

Data layout

Each project is stored in data/<projectId>/ with:

  • tasks.json (task index)
  • one CSV per month: YYYY-MM.csv

Build

Build the CLI and library bundles:

bun run build

Versioning & releases

The published version is tracked in package.json and surfaced via the npm badge above. Release builds are produced with bun run build before publishing.

Notes

  • Uses local timezone for day/month grouping.
  • CSV columns: id,startAt,endAt,task,note,createdAt,updatedAt,deletedAt