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

facebook-birthday-cli

v1.0.1

Published

Never miss out to wish your facebook friends!

Readme


About | To Get Started | Installation | Commands

About

Facebook-Birthday-CLI is an interactive command line interface which helps in wishing your facebook friends and automate the wishes for you so that you never miss your friends birthday's.

Why the hell should I use this?

IMHO you shouldn't! yes you read that right. If you are one of the following peeps then you should give it a try!

  • I am an automation geek!
  • I am a developer and I like to explore and use interesting tech.
  • I am a tech enthusiast and I want to wish my friends in an innovative way.
  • I am just a lazy programmer but I do care about wishing my friends.
  • I am neo, just swallowed the red pill & want to stay in the wonderland to see how deep the rabbit hole goes :)

Note: This project was started 2 years back as a fun project when I started learning automation. Due to work & personal commitments I could never finish it so now I got sometime and gave it the closure it needed!

To Get Started

Pre-requisites

Just Download & Install NodeJS globally in your system.

Installation

Let's start by installing facebook-birthday-cli globally with npm (It comes with nodejs installation, so you don't have to do anything :)). Just type the below commands in your command prompt/terminal.

$ npm install --global facebook-birthday-cli

Commands

A global binary facebook will be installed, currently it supports a command - wish which when invoked starts the interactive CLI.

Select the friend you wanna wish

Just run the below command:

$ facebook wish

It starts the Interactive CLI , you would have to enter your credentials first which are encrypted and saved after first login so that you would not have to re-enter the credentials.

After successfull login, you will see all your friends birthday's on the command line interface.

Wish all your friends

Just run the below command:

$ facebook wish --all

Reset option to default settings

$ facebook wish --reset
$ facebook wish --all --reset

The --reset option resets all saved values to default values. i.e. You would have to enter your credentials again and follow the process without any saved configuration.

Tech Stack

  • Node: Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Puppeteer: Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium
  • TypeScript: The popular super-set & transpiler of JavaScript which adds static typing & features to it. This project is entirely written using typescript.
  • Inquirer: It provides an awesome interface for making your command line interactive.
  • Commander: One of the popular node command line interface that helps write cli’s with ease.

How it works?

The key tech which drives this tool is Puppeteer - An popular alternative to selenium these days!

  • When the command facebook wish is invoked , Inquirer cli starts asking list of questions and then processess the answers asynchronously.
  • Puppeteer opens up the chrome browser in headless mode(In background, user would not see this happening visually) and logs into facebook events page where all the birthday events would be listed.
  • Puppeteer has similar API methods as that of selenium to interact with web elements such as - click(), waitForSelector(), title() etc.
  • The user credentials are encrypted and stored in the user's system after the first time login and then everytime this tool is invoked the user credentials are fetched from that location & decrypted to login.
  • The web elements like total number of birthdays, birthday names and text boxes are identified with the help of puppeteer. These locators are stored in a separate object/class so that if they change in future , they could be easily updated.
  • The wishes are sent to the friends as puppeteer drives & identifies the web elements of the browser in headless mode.

Contributions

For contributors who want to improve this repo by contributing some code, reporting bugs, issues or improving documentation - PR's are highly welcome, please maintain the coding style , folder structure , detailed description of documentation and bugs/issues with examples if possible.

Credits

Title gif

Motion Garten - Do checkout his instagram page!

Music

"Nas Ne Dogoniat"t.A.T.u| "Halah"Mazzy Star | "Mad About You"Hooverphonic | "Here comes rain"Eurythmics | "The Logical Song"Supertramp | :---: | :---: | :---: | :---: | :---: |

License

MIT License

Copyright (c) 2019 Ram Pasala