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

@pegasou/oh-my-git

v1.0.0

Published

CLI + GUI toolkit for managing multiple GitHub identities on a single machine. It creates per‑profile SSH keys, host aliases, and Git include rules so the right identity is used automatically per project.

Readme

oh-my-git

CLI + GUI toolkit for managing multiple GitHub identities on a single machine. It creates per‑profile SSH keys, host aliases, and Git include rules so the right identity is used automatically per project.

Installation

npm install @pegasou/oh-my-git -g

Features

  • Multiple GitHub profiles on one machine with automatic identity selection per project.
  • Per‑profile SSH keys and host aliases managed in ~/.ssh/config.
  • Directory‑to‑profile mapping via git includeIf rules.
  • CLI + GUI (Tauri) to manage profiles and mappings.
  • GitHub CLI helpers (gh login, gh switch, key sync).

How It Works

  • Each profile owns its own SSH key and host alias in ~/.ssh/config.
  • Project directories map to profiles via [includeIf "gitdir:..."] in ~/.gitconfig.
  • Each include file sets user.name, user.email, and URL rewrite rules for the profile alias.
  • All edits are wrapped in markers so they can be safely updated/removed.

Example managed SSH block:

# >>> oh-my-git:ssh:work
Host github.com-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work
  IdentitiesOnly yes
# <<< oh-my-git:ssh:work

Example managed Git include:

# >>> oh-my-git:include:work-1a2b3c
[includeIf "gitdir:~/code/work/"]
  path = ~/.config/oh-my-git/includes/work.gitconfig
# <<< oh-my-git:include:work-1a2b3c

Supported Platforms

  • macOS ✅
  • Linux ✅
  • Windows (planned)

Development

Requirements:

  • bun
  • Rust toolchain + Tauri prerequisites (for GUI builds)

Install deps:

bun install

Run dev mode:

bun run dev

Run all tests (turbo):

bun run test

Build everything:

bun run build

Build release package (GUI + CLI, output in build/oh-my-git):

bun run release

Install the release package globally:

npm install -g ./build/oh-my-git

CLI Usage

Initialize config:

omg config init

Show status:

omg status

Create profile:

omg profile add \
  --label Work \
  --name "Jane Doe" \
  --email [email protected] \
  --generate-key \
  --gh-user janedoe

Map directory:

omg dir map ~/code/work work

Apply profile to current repo:

omg repo use work

Test SSH:

omg ssh test work

GitHub CLI helpers:

omg gh login work
omg gh switch work
omg gh link work
omg gh key add work
omg gh key remove work

Clone with profile (SSH only):

omg clone [email protected]:owner/repo.git
omg clone ssh://[email protected]/owner/repo.git --profile work
omg clone [email protected]:owner/repo.git --dir ~/code/repo

Notes:

  • omg clone rewrites github.com to your profile’s host alias.
  • Only SSH clone URLs are supported.

GUI Usage

  • Create, edit, and delete profiles
  • Generate SSH keys from the form
  • Link profile to a GitHub account (from gh auth status)
  • Edit mappings (per profile)
  • Switch light/dark mode
  • Sync SSH public key to GitHub (requires gh auth login)

Open GUI from CLI (requires a release build in build/oh-my-git):

omg gui

Run GUI in dev mode:

omg gui --dev

Files & Backups

  • Config: ~/.config/oh-my-git/config.json
  • Profiles: ~/.config/oh-my-git/profiles/*.json
  • Include files: ~/.config/oh-my-git/includes/*.gitconfig
  • Backups: ~/.config/oh-my-git/backups/*

Versioning & Releases

This repo uses Changesets for versioning and release notes.

Add a changeset:

bun run changeset

Bump versions + changelogs:

bun run version

Build release package:

bun run release

Publish to npm (from the release bundle):

npm publish ./build/oh-my-git