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 🙏

© 2024 – Pkg Stats / Ryan Hefner

tlly

v1.0.3

Published

a command-line tool for keeping tallies

Downloads

17

Readme

tlly

A command-line tool for keeping tallies.

Installation

npm install -g tlly

About tlly

My Life with Tallies

I've always kept tallies. I've done this for both practical and obsessive reasons.

Practical: if I keep track of how many times I've exercised or meditated, I find willpower. Simply making tick-marks on a piece of paper increases my stamina. Sure, this is silly. But what's life without magical thinking?

Obsessive: I like to count. I count all the times my cat has taken bites out of the sofa (47), the number times I've forgotten my wallet (16), the days that have elapsed since I promised I'd clean out the garage (129), and so on.

Pointless and a little off-kilter? Yup. Good thing I also tally home many times I've taken my meds! (I kid, I kid.)

Thanks, Jerry!

Jerry Seinfeld (Yes, that Jerry Seinfeld) invented a super-simple productivity system. Each day that he worked on his act, he made an X through that day's calendar entry--with the goal of never breaking the chain of Xes.

Seinfeld's method has become my willpower superpower! Instead of a calendar, I just increase a count. First day of meditation = 1, second day = 2, third day = 3... I think of it as my score.

But if, after ten days (with a score of 10), I get lazy and skip a day of meditation, my score goes back to zero. The prospect of which fills me with such existential dread, I meditate even if I have the flu or have to yank myself away from binge-watching reruns of "Sex in the City".

For years, I've wanted a simple command-line tool for keeping tallies. Not GTD. Not a todo app. Something much mure simpler--something I can use almost without thinking. I searched, found nothing suitable, heard Gleb's say "Do a project," and built it myself.

Configuration

By default, tallies are stored in .tllydb.json in your home directory. If you'd like to store them elsewhere (such as in your Dropbox folder), edit [your home directory]/.tlly-config.json, setting dbLocation to whatever directory you want. (Please use the full path.)

Usage

tlly --help displays the text of "War and Peace." Just kidding. It displays help.

tlly exercise 5 adds 5 to your exercise tally, creating the tally if it doesn't exist.

tlly exercise adds 1 to the exercise tally.

tlly adds 1 to the most recent tally.

tlly -c exercise displays the current total for exercise.

tlly -c displays the current totals for all of your tallies.

tlly -t exercise displays all the changes to exercise, sorted by timestamp.

tlly -t displays all changes to all tallies, sorted by timestamp.

tlly --delete exercise deletes the exercise tally. If you then do tlly exercise, you start over at 1.

tlly -s exercise displays how many contiguous days leading up to today you've exercised. ("s" is for Seinfeld!)

tlly -s displays the number contiguous days leading up to today for all tallies.

tlly exercise 2018-06-31 timestamps a tally with a specified date (ISO format).

Testing Contiguous Tallies

When you're first playing with tlly, you may want to try out Seinfeld mode, but it's not much fun until you'll done something for a few days and then, perhaps, skipped a day.

So run tlly --demo, which will add _exercise _mediation to your tallies, setting both to 9, as if you'd been exercising and meditating for 9 days. (The underscores are to keep them from messing up existing tallies with the names "exercise" and "meditation".)

If you then run tlly -c you'll see 9 for both.

But if you run tlly -s you'll see that _meditation has been reset to zero. To see why, run tlly -t. As you'll see, you skipped a couple of days of meditating.

How un-Zen of you!

Example

$ tlly --demo
Added tally _exercise
Added tally _meditation
$ tlly -c
_exercise: 9
_meditation: 9
$ tlly -s
_exercise: 9
_meditation: 0
tlly -t
_exercise: 1 (Sat, 04 Aug 2018 23:50:26 GMT)
_exercise: 1 (Sun, 05 Aug 2018 23:50:26 GMT)
_exercise: 1 (Mon, 06 Aug 2018 23:50:26 GMT)
_exercise: 1 (Tue, 07 Aug 2018 23:50:26 GMT)
_exercise: 1 (Wed, 08 Aug 2018 23:50:26 GMT)
_exercise: 1 (Thu, 09 Aug 2018 23:50:26 GMT)
_exercise: 1 (Fri, 10 Aug 2018 23:50:26 GMT)
_exercise: 1 (Sat, 11 Aug 2018 23:50:26 GMT)
_exercise: 1 (Sun, 12 Aug 2018 23:50:26 GMT)

_meditation: 1 (Thu, 02 Aug 2018 23:50:26 GMT)
_meditation: 1 (Fri, 03 Aug 2018 23:50:26 GMT)
_meditation: 1 (Sat, 04 Aug 2018 23:50:26 GMT)
_meditation: 1 (Sun, 05 Aug 2018 23:50:26 GMT)
_meditation: 1 (Mon, 06 Aug 2018 23:50:26 GMT)
_meditation: 1 (Tue, 07 Aug 2018 23:50:26 GMT)
_meditation: 1 (Wed, 08 Aug 2018 23:50:26 GMT)
_meditation: 1 (Thu, 09 Aug 2018 23:50:26 GMT)
_meditation: 1 (Fri, 10 Aug 2018 23:50:26 GMT)
$ tlly _exercise 100
_exercise: 109
$ tlly _exercise
_exercise: 110
$ tlly
_exercise: 111
$ tlly
_exercise: 112
$ tlly _meditation
_meditation: 10
$ tlly
_meditation: 11
$ tlly insomnia
insomnia: 1
$ tlly
insomnia: 2
$ tlly --delete _exercise
$ tlly -c
_meditation: 11
insomnia: 2

Build

npm run build

Test

npm test

Tech

This app uses lowdb, because most of my work involves heavy-lifter DBs, such as postgres. I wanted to tlly try-something-different.

Todo for MVP

  • [x] get, parse, command-line arguments
  • [x] add help
  • [x] add new tallies
  • [x] increment/decrement tallies
  • [x] display tally counts
  • [x] delete tally
  • [x] display tally by date
  • [x] display contiguous tallies
  • [x] add tally with arbitrary date
  • [x] add demo
  • [x] configure storage location (e.g. for dropbox)
  • [x] readme
  • [x] npm setup + publish

Todo Backlog

  • [] recalc contiguous after user adds arbitrary timestamp, which might have plugged a gap
  • [] display arbitrary list of tallies (tlly -c exercise meditation)
  • [] display tallies for a particular date
  • [] display tallies for a range of dates
  • [] allow days off for contiguous (e.g. weekends)
  • [] badges (e.g. when you exercise X number of contiguous days, you get praised)
  • [] due to lowdb bug, sync fails in some cases[1]. Maybe switch everything to async
  • [] optionally display recent contiguous tally as some sort of chain: xxxxx

[1] https://github.com/typicode/lowdb/issues/283

Thanks, Gleb!

Your simple words "Do a project" made me finally do a project I'd procrastinated on for year. This is something I'll use every day.

Now please say "Clean out the garage!" My wife will thank you.