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

@p-pavlo/git-profile

v1.0.1

Published

A lightweight, zero-dependency CLI identity manager to switch Git profiles, SSH keys, GPG keys, and service tokens instantly.

Readme

Git Profile Switcher CLI (git-profile)

A simple, interactive CLI tool to manage and switch between multiple Git profiles (identities, SSH keys, GPG keys, and service credentials) seamlessly.

If you work across different Git profiles (e.g., personal GitHub, corporate GitHub, GitLab accounts), this tool eliminates the need to copy-paste names, emails, keys, and tokens.


Features

  • Multi-Identity Management: Define separate profiles with unique names, emails, GPG signing keys, SSH keys, and service usernames.
  • Smart Switch Scope:
    • Switch locally (git-profile use <name> --local) to write configurations directly to the repository's .git/config.
    • Switch globally (git-profile use <name> --global) to update your global git config.
    • Automatically runs --local if you are inside a Git repository, and --global otherwise.
  • Conflict-Free SSH Keys: Sets Git's core.sshCommand dynamically (ssh -i <key_path> -o IdentitiesOnly=yes) inside the repo. This avoids polluting your global ~/.ssh/config file.
  • Account Separation in Keychain: Configures Git's credential.https://<host>.username <username>, allowing the macOS Keychain helper (osxkeychain) to store separate API tokens or passwords for different profiles on the same host (e.g. github.com).
  • Environment Exporting: Inject Personal Access Tokens (like GITHUB_TOKEN) directly into your current terminal session via eval $(git-profile env <name>).
  • Zero External Dependencies: Fast, lightweight, and secure.

Installation

Via Homebrew (macOS)

brew tap pavelkortp/tap
brew install git-profile

Via NPM

npm install -g @p-pavlo/git-profile

Usage Guide

1. Interactive Help

To see all available commands, run:

git-profile --help

2. Add a New Profile

Create a profile interactively. You will be prompted to enter details for user name, email, SSH key path, GPG Key ID, and service token:

git-profile add [profile-name]

3. List Profiles

Display all configured profiles. The active global profile and current directory's active local profile will be highlighted:

git-profile list

4. Switch Profile

Switch to a specific profile:

# Apply locally to the current git repository (default behavior if inside a repo)
git-profile use work

# Force apply globally (updates ~/.gitconfig)
git-profile use personal --global

5. Export Tokens to Shell Session

To inject the profile's personal access token (GITHUB_TOKEN) and git variables into your current shell session (useful for GitHub CLI gh or script execution):

eval $(git-profile env work)

Configuration File

Profiles are stored locally in JSON format at: ~/.git-profiles.json


License

MIT