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

@mrskjha/gitpush

v1.0.1

Published

AI-powered CLI that automatically generates git commit messages and pushes your changes using Gemini AI.

Readme

gitpush

Stop writing commit messages. Let AI do it.

npm version npm downloads license node


The Problem

Every developer writes this dozens of times a day:

git add .
git commit -m "fix stuff"
git push

Lazy commit messages make your git history useless. Good commit messages take time and mental energy you'd rather spend on actual code.

The Solution

gitpush

One command. AI analyzes your actual code changes and writes a meaningful commit message following Conventional Commits format — automatically.


Demo

$ gitpush

Suggested commit message:

  feat(auth): add JWT validation middleware

? Use this commit message?
❯ Use this message
  Edit message
  Regenerate message
  Cancel

[master abc1234] feat(auth): add JWT validation middleware
 3 files changed, 47 insertions(+), 2 deletions(-)

✔ Pushed to origin/main
  abc1234 — feat(auth): add JWT validation middleware

Install

npm install -g @mrskjha/gitpush

Requirements

  • Node.js >= 18
  • Git installed and configured
  • Free Gemini API key

First Time Setup

On first run, the CLI will automatically ask for your Gemini API key:

No API key found.
? Enter your Gemini API key (get free key at aistudio.google.com): ________
✔ API key saved. You're all set!

Get your free API key at → https://aistudio.google.com

Your key is stored locally at ~/.gitpush/config.json and never shared with anyone except the Gemini API.


Usage

Navigate to any Git repository and run:

gitpush

That's it. The CLI handles everything else.

What happens under the hood

your changes
     ↓
git add . (auto staging)
     ↓
git diff --staged (reads actual changes)
     ↓
Gemini AI (analyzes diff)
     ↓
commit message generated
     ↓
your confirmation
     ↓
git commit + git push

Interactive Options

After the AI generates a commit message, you get 4 choices:

| Option | What it does | |--------|-------------| | Use this message | Commits and pushes immediately | | Edit message | Opens the message for manual editing | | Regenerate message | Asks Gemini AI for a new message | | Cancel | Exits without committing |


Commands

| Command | Description | |---------|-------------| | gitpush | Stage, generate commit message, commit and push | | gitpush --help | Show all available commands | | gitpush --version | Show current version |


Commit Message Format

All generated messages follow the Conventional Commits standard:

type(scope): description

Types used:

| Type | When | |------|------| | feat | New feature added | | fix | Bug fixed | | docs | Documentation changes | | refactor | Code restructured | | chore | Maintenance tasks | | test | Tests added or updated | | perf | Performance improvements |

Examples of generated messages:

feat(auth): add user login with JWT
fix(api): handle null response from payment gateway
refactor(dashboard): extract chart component
docs(readme): add installation instructions

Privacy & Security

  • Your code diff is sent to Google Gemini API to generate commit messages
  • Your API key is stored locally at ~/.gitpush/config.json
  • Nothing is stored on any external server
  • You can review exactly what gets sent — it's just your git diff --staged output

How It Works

  1. Checks you're inside a valid Git repository
  2. Stages all modified files with git add .
  3. Reads the staged diff with git diff --staged
  4. Sends the diff to Gemini AI with a carefully engineered prompt
  5. Gemini returns a commit message following Conventional Commits format
  6. You confirm, edit, or regenerate the message
  7. Runs git commit -m "message" and git push

Tech Stack

  • TypeScript — fully typed codebase
  • Commander — CLI argument parsing
  • Inquirer — interactive terminal prompts
  • Gemini AI — commit message generation
  • tsup — fast TypeScript bundler

Roadmap

  • [ ] --no-push flag — commit without pushing
  • [ ] --no-ai flag — manual commit message, no API call
  • [ ] Branch detection in success message
  • [ ] Secret scanner — warn before committing API keys
  • [ ] Commit message history
  • [ ] Config command — gitpush config --reset
  • [ ] Support for multiple AI providers

Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b feat/your-feature
  3. Make your changes
  4. Submit a pull request

Please follow Conventional Commits format for your commit messages — you can use gitpush itself! 😄


Troubleshooting

gitpush command not found

npm install -g @mrskjha/gitpush

API key not valid Get a new free key at https://aistudio.google.com and update ~/.gitpush/config.json

fatal: No configured push destination

git remote add origin https://github.com/username/repo.git
git push -u origin main

Nothing to commit Make sure you have modified files in your project before running gitpush


License

ISC License — see LICENSE for details


Author

mrskjha