https://github.com/igorskyflyer/commoji
π Commoji: psychology-based emoji commit convention that makes your git history dramatically more readable, scannable and beautiful. π·οΈ
https://github.com/igorskyflyer/commoji
commit commoji congnitive-load convention emoji gestalt-psychology git igorskyflyer log parafoveal psychology saliency spec standard visual-psychology
Last synced: 3 months ago
JSON representation
π Commoji: psychology-based emoji commit convention that makes your git history dramatically more readable, scannable and beautiful. π·οΈ
- Host: GitHub
- URL: https://github.com/igorskyflyer/commoji
- Owner: igorskyflyer
- License: mit
- Created: 2025-07-25T14:59:46.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2026-02-28T04:07:16.000Z (4 months ago)
- Last Synced: 2026-02-28T07:41:31.001Z (4 months ago)
- Topics: commit, commoji, congnitive-load, convention, emoji, gestalt-psychology, git, igorskyflyer, log, parafoveal, psychology, saliency, spec, standard, visual-psychology
- Homepage:
- Size: 155 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
Commoji
This file contains the
v2.0.1 β’ 07 Mar 2026
specification and documentation of Commoji.
π Head to the Revisions or Releases page to browse the other versions.
π Commoji is a psychology-based emoji commit convention that optimizes Git history for high-speed scanning and semantic clarity. π·οΈ
Need a shorter, shareable summary?
RESEARCH.md β The Science Behind Commoji
## Table of Contents
- β¨ [**Features**](#features)
- π§ [**The Psychology**](#the-psychology)
- π€ΉπΌ [**Usage**](#usage)
- [**Format**](#format)
- [**Breaking Changes**](#breaking-changes)
- [**Tags**](#tags)
- [**Scope**](#scope)
- [**Verbs**](#verbs)
- [**Object**](#object)
- [**Tooling**](#tooling)
- ποΈ [**Examples**](#examples)
- π [**References**](#references)
- π [**Changelog**](#changelog)
- πͺͺ [**License**](#license)
- π [**Support**](#support)
- 𧬠[**Related**](#related)
- π¨π»βπ» [**Author**](#author)
---
## Features
`Commoji` blends semantic clarity with visual expressiveness in commit messages to make intent easier to convey. It's not just a tagging system; it's a **psychology-based** visual grammar for storytelling in code.
- β¨ **Visual Expressiveness**: Emojis provide instant, colorful cues that make commit histories pop and easier to scan at a glance. Eye-tracking research confirms emojis are detected parafoveally (before direct fixation) and increase skipping rates of nearby text while reducing total reading time.
- π·οΈ **Semantic Orthogonality**: Distinct domain tags and operational verbs ensure every message clearly conveys purpose without tautological ambiguity.
- π **Reduced Cognitive Load**: Fixed format lowers mental effort, allowing quick understanding of changes in logs or diffs. Congruent emojis improve processing fluency and message understanding compared with plain text.
- π§ **Intuitive Design**: Draws on psychological principles like pop-out effect and chunking for a more natural reading experience.
- π **Tooling Compatibility**: Designed to work with parsers, linters, and changelog generators; see the [**Tooling**](#tooling) section for ready-to-use examples.
---
## The Psychology
`Commoji` originated from real-world attempts to make dense commit logs easier to skim quickly. Its design choices β visual anchors, strict domainβoperation separation, predictable structure β turned out to align closely with well-documented mechanisms of visual perception and cognitive load reduction. The thinking that originated from earlier patterns used in projects like [**AdVoid**](https://github.com/the-advoid/ad-void), where emoji prefixes proved highly effective for instantly identifying module-specific changes in dense histories, evolved to a scientific-based system that `Commoji` is today.
Here are the key psychological principles that power the system:
- **Visual Indexing & Attentional Capture** (Treisman & eye-tracking research)
Emojis act as high-contrast pre-attentive anchors. Their color and shape differences allow rapid detection during skimming β often via parafoveal preview β guiding attention to relevant commits before full text reading begins. Eye-tracking studies confirm congruent emojis are processed parafoveally (like words), are skipped more often than incongruent ones, and reduce total fixation time on the preceding target word (Barach et al., 2021).
- **Semantic Orthogonality** (Information Theory)
Strict nounβverb separation eliminates redundancy. Independent axes maximize information per character and enable near-instant mental model construction. Large-scale analysis of GitHub commits and pull requests shows developers already use emoji prefixes for attention and content organization, leading to measurably faster team responses (Rong et al., 2022).
- **Gestalt Grouping & Chunking**
The emoji + tag prefix creates immediate perceptual unity (proximity + similarity), turning each commit into a reliable, bite-sized chunk.
- **Cognitive Load Reduction & Processing Fluency**
Predictable prefix + concise object offloads parsing effort. Once learned, reading feels subjectively effortless and fast (familiarity heuristic). Messages with congruent emojis are rated as more understandable and require less cognitive effort than plain text (Daniel & Camp, 2020; Boutet et al., 2021).
- **Dual-layer Signaling**
Emoji and matching tag reinforce the same category without overload β increasing clarity in dense, fast-scrolling logs through multimodal (visual + verbal) encoding.
> [!NOTE]
> Emojis are powerful visual cues, but they may not render for every user (colorblindness, certain terminals, screen readers). The standardized shortcodes (`:sparkles:`, etc.) ensure the spec remains accessible and machine-readable.
In short, `Commoji` doesn't just look nicer, it works *with* your brain instead of against it.
---
## Usage
### Format
`Commoji` relies on a strict **Noun/Action Separation** to eliminate repetition and enforce semantic orthogonality.
The **tag** identifies the *domain* (the βwhatβ), and the **verb** identifies the *operation* (the βhowβ).
#### Core Format
- **No scope** (global change or scope unknown):
` : `
- **With scope** (specific module, component, or directory):
` (): `
#### Spacing & Casing Rules (mandatory)
- Exactly **one space** after the emoji
- **No space** between `` and `(` when a scope is present
- Exactly **one space** after the colon `:`
- `emoji` and `tag` are taken exactly from the official tables
- `scope` is always **lowercase** with hyphens (`user-profile`)
- `verb` is always **lowercase** imperative present tense; preferably chosen from the Verbs table, but other verbs are allowed when needed
- `object` must be lowercase by default. Capitalization is reserved strictly for Proper Nouns, Brands, or Technical Identifiers to preserve semantic accuracy.
#### Emoji Rendering
Use the actual **UTF-8 emoji character** whenever possible.
If your environment does not render emojis correctly, use the standardized **shortcodes** shown in the Tags table (e.g. `:sparkles:`, `:bug:`, `:lipstick:`).
The `emoji` and `tag` **must** come from the official tables. The `verb` follows the rules defined in the [**Verbs**](#verbs) section.
> [!TIP]
> This rigid prefix structure is what enables fast visual scanning and future automated tooling.
### Breaking Changes
To indicate a breaking change (API removal, incompatible API change, removed feature, etc.), place an exclamation mark (`!`) **immediately before the colon**.
#### Syntax
- **No scope**
` !: `
- **With scope**
` ()!: `
#### Examples (fully compliant with Format rules)
- `π bug!: update login response format`
- `β¨ feature(ui)!: remove deprecated dark mode toggle`
- `π¨ logic(auth)!: rename internal token keys`
- `π¦ deps(user-profile)!: remove lodash v4`
#### Why the `!` goes before the colon?
Placing the `!` immediately before the colon (after `tag` and optional `scope`) follows established conventions while still keeping the breaking signal in the visual prefix. This ensures instant recognition during scanning and better compatibility with conventional commit parsers.
#### Recommended commit body
Always explain the impact in the body using the conventional uppercase marker:
```markdown
**BREAKING CHANGE**: Legacy OAuth1 tokens are no longer supported.
Migrate to OAuth2 before v2.0.0.
```
> [!NOTE]
> The ! is optional. Use it only when the change truly breaks existing consumers or contracts in that domain.
### Tags
`Commoji` defines a fixed set of tags that act as **Nouns** representing the domain or entity being modified.
Emoji/tag pairs are **immutable**; the tag must always be preceded by its exact corresponding emoji.
|**Category** | **Emoji** | **Tag** | **Domain / Purpose** | **Shortcode** |
|:----------------------:|:---------:|:----------------:|:----------------------------------------------------------|:-------------------------------|
| **Core** | β¨ | **feature** | New capabilities or features | `:sparkles:` |
| **Core** | π | **bug** | Faults, defects, or issues | `:bug:` |
| **Core** | π¨ | **logic** | Code architecture and internal structure | `:hammer:` |
| **Core** | π₯ | **debt** | Technical debt and dead code | `:fire:` |
| **Core** | π£ | **repo** | Initial setup or repository metadata | `:hatching_chick:` |
| **UI & Experience** | π | **ui** | Visual elements, styles, and interface polish | `:lipstick:` |
| **UI & Experience** | π§ | **ux** | User experience flows, interactions, and logic | `:brain:` |
| **UI & Experience** | βΏ | **accessibility**| Accessibility (a11y) requirements | `:wheelchair:` |
| **Docs & Quality** | π | **docs** | Documentation and guides | `:books:` |
| **Docs & Quality** | β
| **spec** | Tests, assertions, and validations | `:white_check_mark:` |
| **Build & Ops** | π¦ | **deps** | Dependencies and packages | `:package:` |
| **Build & Ops** | π | **env** | Environments, deployments, and releases | `:rocket:` |
| **Build & Ops** | π· | **ci** | Continuous integration workflows | `:construction_worker:` |
| **Build & Ops** | π | **build** | Build system or compiler instructions | `:factory:` |
| **Build & Ops** | βοΈ | **config** | System and environment configuration | `:gear:` |
| **Performance** | β‘ | **metrics** | Performance, efficiency, and metrics | `:zap:` |
| **Security** | π | **security** | Vulnerabilities and security hardening | `:closed_lock_with_key:` |
| **Maintenance** | π§ | **chore** | Miscellaneous maintenance and chores | `:wrench:` |
| **Maintenance** | βͺ | **history** | Git history state or reverts | `:rewind:` |
| **Maintenance** | π | **branch** | Merges and branch integration | `:twisted_rightwards_arrows:` |
| **Maintenance** | π | **i18n** | Localization and internationalization | `:globe_with_meridians:` |
| **Maintenance** | π¬ | **experiment** | Experimental prototypes | `:microscope:` |
Table 1. Commoji's tagging system (Domains)
> [!NOTE]
> - Tags must **always** be written in lowercase.
> - Emoji/tag pairs are immutable β never invent or swap them.
> - Note on `chore`: use this tag only for changes that truly don't fit other domains. Frequent `chore` usage reduces semantic clarity β aim to keep it <25β30% of commits by preferring more specific tags when possible.
**Examples**
- β
`π bug: fix memory leak in caching layer`
- β
`π₯ debt: remove deprecated v1 api controllers`
- β `π¨ fix: memory leakβ¦` β `fix` is not a valid tag
- β `β¨ bug: fix memory leak` β emoji/tag mismatch
### Scope
The scope narrows the commit's focus to a specific module, component, feature, or directory. This lets readers instantly know *where* the change applies without opening the diff.
#### Rules (mandatory)
- Use the exact name of the relevant folder, module, or component (e.g. `auth`, `payment-gateway`, `user-profile`).
- Always **lowercase** with hyphens for multi-word scopes.
- Omit the scope entirely when:
- the change affects the whole project, or
- the scope would be identical or semantically duplicate the tag (e.g. `metrics(performance)`, `ui(styles)`).
- Avoid broad/generic scopes such as `core`, `misc`, `utils`, `main` β they defeat the purpose of scoping. Use `chore` tag instead and put details in the object.
#### Examples (fully compliant with Format & orthogonality)
- β
`β¨ feature(payment-gateway): add Stripe webhook handler`
- β
`π docs(auth): add table of contents to README`
- β
`π¨ logic: refactor token validation`
- β `π ui(ui): update button styles` β scope duplicates tag
- β `β‘ metrics(performance): optimize startup time` β semantic duplication
- β `π§ chore(Misc): update utilities` β capitalized + generic
> [!NOTE]
> When in doubt, omit the scope. A clean `tag: verb object` is always preferred over a vague or redundant `(scope)`.
### Verbs
Verbs represent the Operation (the βhowβ) applied to the domain tag.
**To ensure consistency and fast scanning, verbs should be selected from the official table below.** This enforces semantic orthogonality between domain (`tag`) and operation. If absolutely no table verb fits naturally and accurately, select the semantically closest one and explain nuances in the commit body (not the summary line).
| **Verb** | **Action Purpose** |
|:--------------:|:---------------------------------------------------------:|
|**add** |_Introduce a new element_ |
|**update** |_Modify an existing element_ |
|**remove** |_Eliminate something_ |
|**rename** |_Change a name or label_ |
|**move** |_Reposition without modifying content_ |
|**implement** |_Build out functionality_ |
|**fix** |_Resolve a fault or issue_ |
|**refactor** |_Improve structure without changing behavior_ |
|**optimize** |_Improve performance or efficiency_ |
|**test** |_Add or modify tests_ |
|**configure** |_Adjust system or environment settings_ |
|**prepare** |_Set up for release or deployment_ |
|**release** |_Publish or ship a version_ |
|**revert** |_Undo a previous change_ |
|**integrate** |_Combine branches or changes_ |
|**clean** |_Purge unused or obsolete elements_ |
|**translate** |_Add or revise localization_ |
|**document** |_Add or improve explanatory documentation_ |
|**generate** |_Create generated / derived files or code_ |
|**bump** |_Increment or set a specific version (esp. deps/packages)_ |
|**upgrade** |_Move to a newer major/minor version_ |
|**migrate** |_Adapt code/data to new structure/format/system_ |
|**harden** |_Apply security measures / strengthen against threats_ |
Table 2. Commoji's verbs (Operations)
> [!IMPORTANT]
> Verbs must come from the table above.
>
> When no entry fits perfectly, select the semantically closest verb and clarify nuances in the commit body.
**Examples (fully compliant)**
- β
`π¨ logic(auth): refactor token validation`
- β
`π docs: document new payment flow`
- β
`π security: harden API endpoints against XSS`
- β `π¬ experiment: experiment with caching` β `verb` repeats `tag` (use clearer phrasing)
- β `π branch: merge main` β `verb` repeats `tag` (use clearer phrasing)
- β `π¨ logic(auth): refactored token validation` β wrong tense
> [!TIP]
> When a change truly spans multiple concerns, choose the highest-level verb and explain details in the body.
> [!TIP]
> **Quick verb cheat-sheet**
>
> - New β `add` / `implement`
> - Change β `update` / `refactor` / `fix`
> - Delete β `remove` / `clean`
### Object
The object is a concise noun phrase that answers **βwhat exactly changed?β**.
It completes the sentence started by the tag + verb while staying short and scannable.
#### Rules (mandatory for consistency)
- Use a **specific noun phrase** (never repeat the tag or verb semantically).
- Keep the entire summary line (emoji through object) under **72** whenever possible; aim for **β€ 65** for best readability in dense logs and small screens.
- The `object` should be lowercase by default to promote uniform, scannable logs. Capitalize only:
- Proper nouns (names, brands: Stripe, React, Vite)
- Acronyms and technical terms that are conventionally capitalized (API, XSS, OAuth2, URL, ToC, JSON, HTML)
- Do not capitalize the first word of the object (avoid sentence-style capitalization) for consistency across the history.
- Never turn the `object` into a full sentence or list β use the commit body for details.
> [!IMPORTANT]
> Avoid semantic repetition of the tag or verb in the object where possible (e.g. avoid bug: fix bug).
>
> Exceptions are allowed for concise, idiomatic patterns β especially dependency updates, version bumps, or technical identifiers β where including the action or version adds clarity without vagueness.
>
**Examples of acceptable mild overlap:**
- π¦ `deps: bump lodash to 4.17.21`
- π¦ `deps: upgrade react-router from 6.4 to 6.26`
- π `build: pin vite@5.4.0`
#### Examples (fully compliant with all previous rules)
| **Summary** | **Valid** | **Reason** |
|:---------------------------------------------------:|:---------:|:---------------------------------------------------------------------------------------:|
|`π docs(api): add table of contents` | β
|_Specific noun phrase_ |
|`π¨ logic(auth): refactor token validation` | β
|_Precise internal change_ |
|`π bug: fix null pointer in login` | β
|_Identifies exact failure point_ |
|`β‘ metrics: add cache layer for startup` | β
|_Specific improvement, no verb echo_ |
|`π docs: update installation guide` | β
|_Clear subsection_ |
|`π docs: update docs` | β |_Object too broad / repeats tag_ |
|`β¨ feature: add mode` | β |_Ambiguous object_ |
|`π bug: fix bug` | β |_Repeats tag_ |
|`β‘ metrics: optimize performance` | β |_Vague object + minor verb-tag overlap (prefer specific noun; avoid echo where possible)_|
Table 3. Commoji's object examples
> [!TIP]
> When a change has many small parts, pick the single most important noun phrase for the summary and list the rest in the body:
```markdown
π docs: add table of contents
- generated ToC for every heading
- updated all internal anchor links
- fixed minor typos in code blocks
```
---
### Tooling
`Commoji` is built first and foremost for **human readers**. Full 100% automated enforcement of every rule (especially semantic orthogonality, verb choice, and object quality) is inherently difficult with today's conventional linters.
#### Current possibilities
Standard tools like `commitlint` can reliably enforce the structural parts of the spec:
- Presence of emoji + valid tag
- Lowercase scope
- Header length
- Breaking-change `!` placement
Deeper rules (verb appropriateness, avoiding semantic repetition in the object, etc.) cannot be perfectly validated automatically.
#### Recommended approach
- Use the minimal `commitlint` config below for basic structural guardrails.
- Rely on the upcoming **official Commoji VS Code Extension** (currently in development) as the primary tool for full guidance, interactive commit creation, real-time validation, and best compliance.
#### Minimal commitlint config (`.commitlintrc.js`)
```js
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'repo', 'feature', 'bug', 'docs', 'ui', 'logic', 'metrics', 'spec',
'build', 'ci', 'env', 'chore', 'experiment', 'history', 'branch',
'deps', 'config', 'debt', 'security', 'ux', 'accessibility', 'i18n'
]],
'scope-case': [2, 'always', 'lower-case'],
'subject-case': [0], // disabled β object allows brands, acronyms, proper nouns
'subject-empty': [2, 'never'],
'subject-full-stop': [2, 'never'],
'header-max-length': [2, 'always', 72],
'type-empty': [2, 'never']
}
};
```
---
## Examples
The table below demonstrates real commit messages that fully comply β or deliberately violate β the complete set of locked `Commoji` rules (Format, Tags, Scope, Verbs, Object, Breaking Changes, and semantic orthogonality).
| **Commit Message** | **Valid** | **Why** |
|:-------------------------------------------------------------------:|:---------:|:-------------------------------------------------------------------------:|
|`π docs(api): add table of contents` | β
|_Specific object + valid scope_ |
|`π¨ logic(auth): refactor token validation` | β
|_Imperative verb, no repetition_ |
|`π bug: fix null pointer in login` | β
|_Precise object, no scope needed_ |
|`π docs: document new payment flow` | β
|_Valid table verb + specific object_ |
|`π security: harden API endpoints against XSS` | β
|_Valid table verb + avoids tag repetition_ |
|`β¨ feature(payment-gateway): add Stripe webhook handler` | β
|_Valid scope, specific object_ |
|`π₯ debt: remove deprecated v1 controllers` | β
|_No verb echo, clean debt usage_ |
|`β¨ feature!(ui): remove deprecated dark mode toggle` | β
|_Breaking change with scope_ |
|`π bug!: update login response format` | β
|_Breaking change without scope_ |
|`π¦ deps!(user-profile): remove lodash v4` | β
|_Breaking change + multi-word scope_ |
|`π docs: update docs` | β |_Object repeats tag (violates orthogonality)_ |
|`β‘ metrics: optimize performance` | β |_Verb echoes tag + vague object_ |
|`π bug: Fix Login Bug` | β |_Capitalized verb + object repeats domain_ |
|`π¨ logic(auth): refactored token validation` | β |_Past tense (must be imperative present)_ |
|`π ui(ui): update button styles` | β |_Scope duplicates tag_ |
Table 4. Commoji commit message examples (v2.0.0)
> [!TIP]
> Use these examples as quick reference when writing or reviewing. Every valid row above follows **all** locked sections without exception.
---
## References
The psychological foundation of `Commoji` draws from well-established research in visual perception, cognitive psychology, information theory, and multimedia learning.
### Classic Foundational Works
- **Feature Integration Theory & Pop-out Effect**
Treisman, A. M., & Gelade, G. (1980). A feature-integration theory of attention. *Cognitive Psychology*, 12(1), 97β136. https://doi.org/10.1016/0010-0285(80)90005-5
- **Gestalt Principles**
Wertheimer, M. (1923). Laws of Organization in Perceptual Forms. *Psychologische Forschung*, 4(1), 301β350.
Koffka, K. (1935). *Principles of Gestalt Psychology*. Harcourt, Brace.
- **Cognitive Load Theory**
Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. *Cognitive Science*, 12(2), 257β285.
Sweller, J., Ayres, P., & Kalyuga, S. (2011). *Cognitive Load Theory*. Springer.
- **Multimedia Learning & Signaling Principle**
Mayer, R. E. (2021). *The Cambridge Handbook of Multimedia Learning* (3rd ed.). Cambridge University Press.
(See especially chapters on the Signaling Principle and Reducing Extraneous Processing.)
- **Processing Fluency & Familiarity Heuristic**
Schwarz, N. (2004). Metacognitive experiences in judgment and decision making. *Journal of Consumer Psychology*, 14(4), 332β348.
- **Chunking & Working Memory**
Miller, G. A. (1956). The magical number seven, plus or minus two: Some limits on our capacity for processing information. *Psychological Review*, 63(2), 81β97.
> [!NOTE]
> These references informed the consolidation of principles in the Psychology section. For eye-movement and parafoveal preview benefits in reading (supporting fast scanning of emoji-prefixed commits), see Rayner, K. (1998). Eye movements in reading and information processing: 20 years of research. *Psychological Bulletin*, 124(3), 372β422.
### Empirical Studies on Emoji Processing & Software Communication
- **Barach, E., et al.** (2021). Are emojis processed like words?: Eye movements reveal the time course of semantic processing for emojified text. *Psychonomic Bulletin & Review*, 28(3), 983β997. https://doi.org/10.3758/s13423-020-01864-y
*(Core evidence for parafoveal preview, skipping rates, and reduced fixation times β directly supports high-speed Git log scanning.)*
- **Daniel, T. A., & Camp, A. L.** (2020). Emojis affect processing fluency on social media. *Psychology of Popular Media*, 9(2), 208β213. https://doi.org/10.1037/ppm0000219
*(Shows congruent emojis make messages subjectively easier and faster to understand.)*
- **Boutet, I., LeBlanc, M., et al.** (2021). Emojis influence emotional communication, social attributions, and information processing. *Computers in Human Behavior*, 119, 106722. https://doi.org/10.1016/j.chb.2021.106722
*(Faster processing speed and better comprehension with congruent emojis.)*
- **Rong, S., Wang, W., Mannan, U. A., et al.** (2022). An empirical study of emoji use in software development communication. *Information and Software Technology*, 148, 106912. https://doi.org/10.1016/j.infsof.2022.106912
*(Large-scale GitHub analysis: emoji prefixes speed up responses and improve organization in commits/PRs β perfect real-world validation for Commoji.)*
---
## Changelog
Read about the latest changes in the [**CHANGELOG**](https://github.com/igorskyflyer/commoji/blob/main/CHANGELOG.md).
---
## License
Licensed under the [**MIT license**](https://github.com/igorskyflyer/commoji/blob/main/LICENSE).
---
## Support
Engineering and documenting open-source projects involves a significant investment of time.
If this project or its implementation has provided value, support is greatly appreciated.
Thank you for supporting these efforts! ππ
---
## Related
[@igorskyflyer/scrollend-polyfill](https://www.npmjs.com/package/@igorskyflyer/scrollend-polyfill)
> _π΄ A performant and light (< 1.5KB) JavaScript polyfill for the scrollend Event. βΈοΈ_
[@igorskyflyer/zing](https://www.npmjs.com/package/@igorskyflyer/zing)
> _π Zing is a C# style String formatter for JavaScript that empowers Strings with positional arguments - composite formatting. π_
[@igorskyflyer/strip-yaml-front-matter](https://www.npmjs.com/package/@igorskyflyer/strip-yaml-front-matter)
> _π¦ Strips YAML front matter from a String or a file. πΎ_
[@igorskyflyer/registry-apppaths](https://www.npmjs.com/package/@igorskyflyer/registry-apppaths)
> _πͺ A Node.js module for reading the AppPaths registry key on Windows. Useful for retrieving applications that can be launched from the command prompt. π_
[@igorskyflyer/emojilyzer](https://www.npmjs.com/package/@igorskyflyer/emojilyzer)
> _π¬ Emojifies strings, converting textual representations of emojis to graphical ones. ποΈ_
---
## Author
Created by **Igor DimitrijeviΔ** ([*@igorskyflyer*](https://github.com/igorskyflyer/)).