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

gitglow

v1.0.3

Published

Make your git history beautiful - emoji commits, pretty logs, and aesthetic workflows

Readme

✨ gitpretty

Make your git history beautiful with emojis and smart commits

npm PRs Welcome

What does it do?

Before: 😴

a1b2c3d Update stuff
e4f5g6h Fix thing
i7j8k9l Add feature

After:

a1b2c3d ✨ feat(auth): add user authentication
e4f5g6h 🐛 fix(login): resolve validation error on mobile  
i7j8k9l 📝 docs: update API documentation

🚀 Installation

From npm (published as gitglow)

npm install -g gitglow

This installs the gitpretty command globally.

From source

# Clone to your home directory (recommended)
git clone https://github.com/nirholas/gitpretty.git ~/.gitpretty

# Or clone anywhere you like
git clone https://github.com/nirholas/gitpretty.git /path/to/gitpretty

The shell scripts under scripts/ are executable and can be run directly from the clone — no build step is required.


📖 How to Use

Quick Commit (Most Common)

Stage your changes and commit with a simple description:

# Stage all files and commit
git add -A && ~/.gitpretty/scripts/emoji-commit.sh "add user dashboard"
# Result: ✨ Add user dashboard
# It previews the message and asks for confirmation first (default yes).
# With no terminal attached it takes the default and commits.

# Stage specific files and commit
git add src/auth.ts && ~/.gitpretty/scripts/emoji-commit.sh "fix login bug"
# Result: 🐛 Fix login bug

The script automatically detects the commit type from your message:

| Your message | Becomes | |--------------|---------| | "add new feature" | ✨ Add new feature | | "fix login error" | 🐛 Fix login error | | "update readme" | 📝 Update readme | | "refactor auth module" | ♻️ Refactor auth module | | "remove old code" | 🗑️ Remove old code |

Smart Commit (Detailed Messages)

For more descriptive, conventional commit messages:

# Basic: type + description. The scope is inferred from the staged paths.
git add -A && ~/.gitpretty/scripts/smart-commit.sh feat "add user authentication"
# Result: ✨ feat(src): Add user authentication

# With scope: type + scope + description
git add -A && ~/.gitpretty/scripts/smart-commit.sh feat auth "add OAuth2 login"
# Result: ✨ feat(auth): Add OAuth2 login

# Preview without committing (dry-run)
~/.gitpretty/scripts/smart-commit.sh -d feat "add new feature"

The description is capitalized automatically, and the commit body lists the staged files and a change summary.

Commit types: | Type | Emoji | Use for | |------|-------|---------| | feat | ✨ | New features | | fix | 🐛 | Bug fixes | | docs | 📝 | Documentation | | style | 💄 | Formatting, CSS | | refactor | ♻️ | Code restructuring | | perf | ⚡ | Performance improvements | | test | ✅ | Adding tests | | chore | 🔧 | Maintenance tasks | | ci | 👷 | CI/CD changes | | build | 🏗️ | Build system | | security | 🔐 | Security fixes | | deploy | 🚀 | Deployments |


🛠️ All Scripts

Committing

| Script | What it does | Example | |--------|--------------|---------| | emoji-commit.sh | Quick commit with auto-emoji | git add -A && ~/.gitpretty/scripts/emoji-commit.sh "add feature" | | smart-commit.sh | Conventional commits with scope | git add -A && ~/.gitpretty/scripts/smart-commit.sh feat auth "add login" | | commit-lint.sh | Validate commit message format | ~/.gitpretty/scripts/commit-lint.sh |

Branching & Merging

| Script | What it does | Example | |--------|--------------|---------| | emoji-branch.sh | Create pretty branch names | ~/.gitpretty/scripts/emoji-branch.sh feature login-page | | emoji-merge.sh | Merge with emoji message | ~/.gitpretty/scripts/emoji-merge.sh feature/auth | | emoji-tag.sh | Create tagged releases | ~/.gitpretty/scripts/emoji-tag.sh v1.0.0 major |

Viewing History

| Script | What it does | Example | |--------|--------------|---------| | emoji-log.sh | Pretty git log views | ~/.gitpretty/scripts/emoji-log.sh graph | | emoji-log.sh | Today's commits | ~/.gitpretty/scripts/emoji-log.sh today | | emoji-log.sh | This week's commits | ~/.gitpretty/scripts/emoji-log.sh week |

Stashing

| Script | What it does | Example | |--------|--------------|---------| | emoji-stash.sh | Save work in progress | ~/.gitpretty/scripts/emoji-stash.sh save wip "testing auth" | | emoji-stash.sh | List stashes | ~/.gitpretty/scripts/emoji-stash.sh list |

Repository Tools

| Script | What it does | Example | |--------|--------------|---------| | file-tree.sh | Show repo structure | ~/.gitpretty/scripts/file-tree.sh | | repo-stats.sh | Repository statistics | ~/.gitpretty/scripts/repo-stats.sh | | changelog-gen.sh | Generate changelog | ~/.gitpretty/scripts/changelog-gen.sh | | git-beautify.sh | Beautify existing history | ~/.gitpretty/scripts/git-beautify.sh |

Setup

| Script | What it does | Example | |--------|--------------|---------| | emoji-hooks.sh | Install auto-emoji git hooks | ~/.gitpretty/scripts/emoji-hooks.sh install |


🪝 Auto-Emoji Hooks

Install once, and every commit automatically gets emojis:

# Install hooks in your repo
cd /path/to/your-repo
~/.gitpretty/scripts/emoji-hooks.sh install

# Now every commit gets auto-emoji!
git commit -m "add feature"
# 🪝 Auto-added: ✨
# ✨ Add feature

⚙️ Git Aliases (Optional)

Add to your ~/.gitconfig for shorter commands:

[alias]
    # Quick emoji commit
    c = "!f() { git add -A && ~/.gitpretty/scripts/emoji-commit.sh \"$1\"; }; f"
    
    # Smart commit with type
    sc = "!f() { git add -A && ~/.gitpretty/scripts/smart-commit.sh \"$@\"; }; f"
    
    # Pretty log
    lg = "!~/.gitpretty/scripts/emoji-log.sh"
    
    # Pretty stash
    st = "!~/.gitpretty/scripts/emoji-stash.sh"

Then use:

git c "add new feature"           # Quick commit
git sc feat auth "add OAuth"      # Smart commit with scope
git lg graph                      # Pretty log graph
git st list                       # Pretty stash list

📚 More Documentation


📄 License

Proprietary. All rights reserved. See LICENSE for the terms; use requires written permission from the copyright owner.


Star History

Star History Chart

Documentation

Full documentation site: https://nirholas.github.io/gitpretty/