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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@hirotomoyamada/ai-commit

v1.0.6

Published

AI generates git commit messages on your behalf.

Downloads

68

Readme

AI Commit

NPM Minizip NPM Downloads GitHub Github Stars

AI generates git commit messages on your behalf.

Table of Contents

Setup

  1. Install

    pnpm add -g @hirotomoyamada/ai-commit
  2. Obtain your API key from OpenAI.

  3. Set your API key in ai-commit.

    ai-commit config set apiKey=<your token>

Upgrading

To check the installed version, run the following:

ai-commit --version

To install the latest version, run the following:

pnpm up -g @hirotomoyamada/ai-commit --latest

Usage

To generate a commit message, run the following:

ai-commit

[!TIP]

ai-commit provides a shortened alias aic.

When you run ai-commit, two scenarios may occur:

  1. If there are files staged:

    • AI detects the differences in the staged files and generates a commit message.
    • Once you review and approve the generated commit message, it will be committed.
  2. If there are changed files not yet staged:

    • A list of changed files will be displayed.
    • You select the files to add to the stage from the list.
    • AI detects the differences in the newly staged files and generates a commit message.
    • Once you review and approve the generated commit message, it will be committed.

[!TIP]

To add all changed files not currently staged to the stage (with git add .), set the --all or -a option.

Changing the Commit Message Suggestions

To change the commit message suggestions, set the --generate <i> or -g <i> option. The default is set to 1.

ai-commit --generate 5

[!NOTE]

You can set up to a maximum of 5 suggestions.

Applying Conventional Commits

Many projects have rules for commit messages based on Conventional Commits. If you want to apply these rules, set conventional with the --type or -t option.

ai-commit --type conventional

[!NOTE]

By setting it in the configuration, you can always apply the Conventional Commits commit message rules.

Configuration

To get the configuration, run the following:

ai-commit config get

To get specific items only, run the following:

ai-commit config get generate locale

To set values in the configuration, run the following:

ai-commit config set generate=5 type=conventional

To reset the configuration values, run the following:

ai-commit config reset

| Item | Default | Description | | ----------- | ----------- | ------------------------------------------------------------------------------------------------ | | apiKey | undefined | API key generated from OpenAI | | generate | 1 | Number of commit messages to generate | | locale | en | Locale used for generating commit messages | | timeout | 10000 | Timeout for network requests to OpenAI (milliseconds) | | type | undefined | Type of commit message to generate | | model | gpt-4 | OpenAI model used for generating commit messages | | maxLength | 50 | Maximum character length of the generated commit message |

Prompt

To get the prompt, run the following:

ai-commit prompt get

The default prompt is as follows:

Generate a concise git commit message written in present tense for the following code diff with the given specifications below:
Message language: {{ locale }}
Commit message must be a maximum of {{ maxLength }} characters.
Exclude anything unnecessary such as translation. Your entire response will be passed directly into git commit.
{{ commitType }}
The output response must be in format:
{{ commitRule }}

[!NOTE]

{{ locale }} and {{ maxLength }} will be replaced with the values set in the configuration.

To update the prompt, run the following:

ai-commit prompt set

To reset the prompt, run the following:

ai-commit prompt reset

License

MIT © Hirotomo Yamada