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

emspect

v1.1.1

Published

EMoji inSPECTor

Readme

📧Ⓜ️💲🅿️📧©️📍 - EMSPECT

Node Version NPM Version Build Status Coverage Status Dependencies

Emspect is a CLI utility to search emojis and inspect details of the character. It works on Node.js and can be also used as Node.js library so you can embed its features to your cool applications. "Emspect" stands for EMoji inSPECTor.

Examples

$ emspect sleep
😪 SLEEPY FACE (U+1F62A) - face, person, sleep :sleepy:
😴 SLEEPING FACE (U+1F634) - face, person, sleep, zzz :sleeping:
💤 SLEEPING SYMBOL ≊ zzz (U+1F4A4) - comic, emotion, person, sleep, symbol, word, zzz :zzz:
🛌 SLEEPING ACCOMMODATION ≊ person in bed (U+1F6CC) - hotel, object, sleep
🛏 BED (U+1F6CF) - bed, hotel, object, sleep
$ emspect sleep --format all # verbose
U+1F62A 😪       SLEEPY FACE             2010ʲ   emoji   face, person, sleep     :sleepy:
U+1F634 😴       SLEEPING FACE           2012ˣ   emoji   face, person, sleep, zzz        :sleeping:
U+1F4A4 💤       SLEEPING SYMBOL zzz     2010ʲ   emoji   comic, emotion, person, sleep, symbol, word, zzz        :zzz:
U+1F6CC 🛌       SLEEPING ACCOMMODATION  person in bed   2014ˣ   emoji   hotel, object, sleep
U+1F6CF 🛏       BED             2014ʷ   text    bed, hotel, object, sleep
$ emspect U+1F62A --format json # Can search from character code. Also output in JSON
[{"code":"U+1F62A","chars":"😪","name":"SLEEPY FACE","synonym":null,"age":"2010ʲ","default":"emoji","annotations":["face","person","sleep"],"aliases":["sleepy"]}]
$ emspect "🈁" --format "%C %G" # tell me GFM emoji code!
🈁 :koko:
$ emspect -n WHITE -a symbol # name contains `WHITE` and has annotation `symbol`
💮 WHITE FLOWER (U+1F4AE) - flower, object, symbol :white_flower:
✅ WHITE HEAVY CHECK MARK (U+2705) - check, mark, sign, symbol :white_check_mark:
❔ WHITE QUESTION MARK ORNAMENT ≊ white question mark (U+2754) - mark, outlined, punctuation, question, symbol, word :grey_question:
❕ WHITE EXCLAMATION MARK ORNAMENT ≊ white exclamation mark (U+2755) - exclamation, mark, outlined, punctuation, symbol, word :grey_exclamation:
▫️ WHITE SMALL SQUARE (U+25AB) - geometric, sign, square, symbol :white_small_square:
◻️ WHITE MEDIUM SQUARE (U+25FB) - geometric, sign, square, symbol :white_medium_square:
◽️ WHITE MEDIUM SMALL SQUARE ≊ white medium-small square (U+25FD) - geometric, sign, square, symbol
⬜️ WHITE LARGE SQUARE (U+2B1C) - geometric, sign, square, symbol
🔳 WHITE SQUARE BUTTON (U+1F533) - button, geometric, outlined, sign, square, symbol :white_square_button:
⚪️ MEDIUM WHITE CIRCLE ≊ white circle (U+26AA) - circle, geometric, sign, symbol

Requirements

  • Node.js >= 4

Installation

$ npm install -g emspect

Usage

Lazy Query™

Basic usage is just one argument to emspect like:

$ emspect sleep
$ emspect SLEEP
$ emspect 😪
$ emspect U+1F62A
$ emspect :sleepy:

In this case emspect estimates context of the search and returns (hopefully) suitable result. To put it concretely, it goes with following rule.

We have five searchable field for each emoji. Taking an example of 💤

  • code -- U+1F4A4
  • chars -- 💤
  • name -- SLEEPING SYMBOL
  • synonym -- zzz
  • annotations -- comic, emotion, person, sleep, symbol, word, zzz
  • gfm -- zzz

gfm corresponds to the emoji shortcode used widely including GitHub, Slack, etc. See Emoji Full List for the others. name has only the words before . synonym has the after than

Then the field to match is depends on the query.

  • emspect sleep -- Small letters matches to annotations. It searches by exact match, e.g., sle doesn't match to sleep.

  • emspect SLEEP -- capital letters matches to name or synonym. It searches by partial match, e.g., CAR matches to CARD. Note capitalization tells emspect to search by name, however actual search is case-insensitive, so emspect FLAG can return the emojis such as 🇯🇵 (Flag for Japan).

  • emspect 💤 -- an emoji matches to the emoji directly.

  • emspect U+1F4A4 -- letters starting U+ matches code. It searches by partial match, e.g., U+1F62 matches other faces near 😪, such as 😠 (U+1F620) or 😡 (U+1F621). Also U+1F3FF matches emojis which have TYPE-6 (the darkest) skin color like 👍🏿 (U+1F44D U+1F3FF).

  • emspect :sleep: -- letters surrounded by : matches gfm. It searchs by exact match.

  • emspect :sle -- letters just starting with : also match gfm but conducts prefix search.

Note the spaces in the query should be quoted, and they are treated "as is", i.e., emspect do not run AND or OR search.

Search Context Options

'Please don't say "You are lazy"'? Emspect has following options which enables you to specify them.

  • -a <query> or --anotations <query>

  • -n <query> or --name <query>

  • -c <query> or --code <query>

  • -C <query> or --char <query>

  • -g <query> or --gfm <query> -- same as emspect :<query>:. Colon can be appended. i.e., -g :+1: and -g +1 is same

  • -G <query> or --gfm-startswith <query> -- same as emspect :<query>

When multiple options are given, emspect conducts and-search. The options can be used multiple times. Note again you must quate when the query contains space. The complete example follows:

$ emspect -n "WITH FACE" -a bright -a moon
🌝 FULL MOON WITH FACE (U+1F31D) - bright, face, full, moon, nature, place, space, weather :full_moon_with_face:

All

$ emspect

Returns all emojis. Then you can pipe to grep or any commands so that you can cook them as you want🍳 . --format all options, described below, should be useful.

Formatting

-f <format> or --format <format> option customizes the outputs. <format> is string, can contain following descriptors.

  • %c -- Extracted to code, e.g. U+1F62A
  • %C -- Extracted to chars, e.g. 😪
  • %n -- Extracted to name, e.g. SLEEPY FACE
  • %s -- Extracted to synonym, e.g. zzz for 💤 SLEEPING SYMBOL
  • %a -- Extracted to annotations. Comma (with space) separated, e.g. +1, body, hand, person, thumb, thumbs up, up
  • %g -- Extracted to gfm. Comma (with space) separated, e.g. +1, thumbsup
  • %G -- Similar to gfm, but adds colons, e.g. :+1:, :thumbsup:
  • %y -- Extracted to year, e.g. 2010ʲʷ
  • %d -- Extracted to default presentation style, e.g. emoji
  • %?s(<foo>) -- Extracted to <foo> if has synonym. Othewise print nothing.
  • %?g(<foo>) -- Extracted to <foo> if has gfm. Othewise print nothing.

For details of year and default presentation style, see http://unicode.org/emoji/charts/index.html#emoji-data-chart-key .

There are two special format options.

  • --format all -- Prints all data in tab-separated. Could be useful with pipes. It is same to --format "%c\t%C\t%n\t%s\t%y\t%d\t%a\t%G"

  • --format json -- Prints all data in JSON. Could be useful with jq. Also building your cool emoji web API.

OR Search

Currently we doesn't provide or-search, but you can ealisly achieve it with sub-shell.

$ (emspect -a man -a person & emspect -a woman -a person) | sort | uniq

This shows the results like that (man AND person) OR (woman AND person). Note we need | sort | uniq to remove dupulicates. Compare to

$ (emspect -a man -a person & emspect -a woman -a person)

then you can find 👫 , i.e., man AND woman is duplicated. One more tip that (emspect foo & emspect bar) is faster than (emspect foo && emspect bar) or (emspect foo; emspect bar) because & executes commands in parallel.


For more details, taking a look of ./test/emojis.js will help your understand.

More Examples

See Wiki!

Acknowledgement

Emspect employs unicode.org's Full Emoji Data and github/gemoji's emoji.json to generate our emojiData.json.

License

Copyright (c) 2016 mecab

Emspect is released under the MIT license.