meteor

command module
v0.31.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2026 License: MIT Imports: 18 Imported by: 0

README

️☄ meteor ☄

GitHub Release
Meteor is a simple, highly customisable CLI tool that helps you to write conventional commits with git.

You can call meteor where you'd normally type git commit. All flags supported in git commit will still work.

Demo

Installation

Homebrew

brew tap stefanlogue/tools
brew install --cask meteor

[!IMPORTANT] If you previously installed meteor from the formula, you'll need to uninstall it before installing it from the cask

Scoop

scoop bucket add stefanlogue https://github.com/stefanlogue/scoops
scoop install stefanlogue/meteor

Go

Install with Go (1.21+):

go install github.com/stefanlogue/meteor@latest

Or grab a binary from the latest release.

Customisation

You can customise the options available by creating a .meteor.json file anywhere in the directory tree (at or above the current working directory). The config file closest to the current working directory will be preferred. This enables you to have different configs for different parent directories, such as one for your personal work, one for your actual work, one for open source work etc. For global configurations you can create a config.json file in the ~/.config/meteor/ directory.

The content should be in the following format:

{
  "boards": [
    { "name": "COMP" },
    { "name": "PERS" }
  ],
  "coauthors": [
    { "name": "John Doe", "email": "john.doe@email.com" }
  ],
  "prefixes": [
    { "type":  "feat", "description":  "a new feature"},
    { "type":  "fix", "description":  "a bug fix"},
    { "type":  "bug", "description":  "introducing a bug"}
  ],
  "commitTitleCharLimit": 60,
  "commitBodyCharLimit": 60,
  "commitBodyLineLength": 40,
  "readContributorsFromGit": true,
  "allowCustomPrefixes": true
}

Boards

Demo with boards

If you use boards (Jira etc) but need a way to have commits without one, add the following to the boards array:

{
  "boards": [
    { "name": "COMP" },
    { "name": "NONE" }
  ]
}

If you want to define a set of predefined scopes to select from rather than typing the scope, a scopes array can be added to your config:

[!WARNING] Setting predefined scopes removes the ability to type the scope, unless allowCustomScopes is set to true in your config file

{
  "scopes": [
    { "name": "scope1" },
    { "name": "scope2"}
  ]
}

Line wrapping

To enforce line wrapping on the commit body, set the commitBodyLineLength config option to any integer greater than or equal to 20.

Message Templates

If the default commit message templates aren't exactly what you're looking for, you can provide your own! The syntax can be seen in the defaults below:

{
  "messageTemplate": "@type(@scope): @message",
  "messageWithTicketTemplate": "@ticket(@scope): <@type> @message"
}

messageTemplate needs to have:

  • @type: the conventional commit type i.e. feat, chore etc.
  • @message: the commit message
  • (@scope): (optional but recommended) the scope of the commit, must be within parentheses

messageWithTicketTemplate also additionally takes @ticket

Intro

If you want to skip the intro screen to save a keypress, add the following to your config:

{
  "showIntro": false
}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
util
Package util provides utility functions for various operations.
Package util provides utility functions for various operations.
pkg
config
Package config handles loading and parsing the configuration file for the application.
Package config handles loading and parsing the configuration file for the application.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL