{"id":14530439,"url":"https://github.com/stefanlogue/meteor","last_synced_at":"2025-09-02T02:30:50.479Z","repository":{"id":205528319,"uuid":"714457662","full_name":"stefanlogue/meteor","owner":"stefanlogue","description":"A highly configurable CLI tool for writing conventional commits","archived":false,"fork":false,"pushed_at":"2025-06-23T19:32:11.000Z","size":9178,"stargazers_count":283,"open_issues_count":3,"forks_count":17,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-23T20:29:46.666Z","etag":null,"topics":["charmbracelet","cli","commit","conventional-commits","go","golang","huh","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stefanlogue.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-04T22:40:19.000Z","updated_at":"2025-06-10T14:13:48.000Z","dependencies_parsed_at":"2024-01-21T15:42:42.544Z","dependency_job_id":"644101cf-e42d-4de2-89b8-eff9004eb79b","html_url":"https://github.com/stefanlogue/meteor","commit_stats":null,"previous_names":["stefanlogue/meteor"],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/stefanlogue/meteor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanlogue%2Fmeteor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanlogue%2Fmeteor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanlogue%2Fmeteor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanlogue%2Fmeteor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stefanlogue","download_url":"https://codeload.github.com/stefanlogue/meteor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stefanlogue%2Fmeteor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273219734,"owners_count":25066224,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charmbracelet","cli","commit","conventional-commits","go","golang","huh","tui"],"created_at":"2024-09-05T00:01:07.274Z","updated_at":"2025-09-02T02:30:50.461Z","avatar_url":"https://github.com/stefanlogue.png","language":"Go","funding_links":[],"categories":["Go","Applications"],"sub_categories":["Development Tools"],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e️☄ meteor ☄\u003c/h1\u003e\n  \u003cimg alt=\"GitHub Release\" src=\"https://img.shields.io/github/v/release/stefanlogue/meteor\"\u003e\n  \u003ch5\u003eMeteor is a simple, highly customisable CLI tool that helps you to write \u003ca href=\"https://www.conventionalcommits.org/\"\u003econventional commits\u003c/a\u003e with git.\u003c/h5\u003e\n\u003c/div\u003e\n\nYou can call `meteor` where you'd normally type `git commit`. All flags\nsupported in `git commit` will still work.\n\n![Demo](demos/demo-without-boards.gif)\n\n## Installation\n\n### Homebrew\n\n```console\nbrew tap stefanlogue/tools\nbrew install --cask meteor\n```\n\n\u003e [!IMPORTANT]\n\u003e If you previously installed `meteor` from the formula, you'll need to\n\u003e uninstall it before installing it from the cask\n\n### Scoop\n\n```console\nscoop bucket add stefanlogue https://github.com/stefanlogue/scoops\nscoop install stefanlogue/meteor\n```\n\n### Go\n\nInstall with Go (1.21+):\n\n```console\ngo install github.com/stefanlogue/meteor@latest\n```\n\nOr grab a binary from [the latest release](https://github.com/stefanlogue/meteor/releases/latest).\n\n## Customisation\n\nYou can customise the options available by creating a `.meteor.json` file\nanywhere in the directory tree (at or above the current working directory). The\nconfig file closest to the current working directory will be preferred. This\nenables you to have different configs for different parent directories, such as\none for your personal work, one for your actual work, one for open source work\netc. For global configurations you can create a `config.json` file in the\n`~/.config/meteor/` directory.\n\nThe content should be in the following format:\n\n```json\n{\n  \"boards\": [\n    { \"name\": \"COMP\" },\n    { \"name\": \"PERS\" }\n  ],\n  \"coauthors\": [\n    { \"name\": \"John Doe\", \"email\": \"john.doe@email.com\" }\n  ],\n  \"prefixes\": [\n    { \"type\":  \"feat\", \"description\":  \"a new feature\"},\n    { \"type\":  \"fix\", \"description\":  \"a bug fix\"},\n    { \"type\":  \"bug\", \"description\":  \"introducing a bug\"}\n  ],\n  \"commitTitleCharLimit\": 60,\n  \"commitBodyCharLimit\": 60,\n  \"commitBodyLineLength\": 40\n}\n```\n\n### Boards\n\n![Demo with boards](demos/demo-with-boards.gif)\n\nIf you use boards (Jira etc) but need a way to have commits without one, add the\nfollowing to the `boards` array:\n\n```json\n{\n  \"boards\": [\n    { \"name\": \"COMP\" },\n    { \"name\": \"NONE\" }\n  ]\n}\n```\n\nIf you want to define a set of predefined scopes to select from rather than\ntyping the scope, a `scopes` array can be added to your config:\n\n\u003e [!WARNING]\n\u003e Setting predefined scopes removes the ability to type the scope\n\n```json\n{\n  \"scopes\": [\n    { \"name\": \"scope1\" },\n    { \"name\": \"scope2\"}\n  ]\n}\n```\n\n### Line wrapping\n\nTo enforce line wrapping on the commit body, set the `commitBodyLineLength`\nconfig option to any integer greater than or equal to 20.\n\n### Message Templates\n\nIf the default commit message templates aren't exactly what you're looking for,\nyou can provide your own! The syntax can be seen in the defaults below:\n\n```json\n{\n  \"messageTemplate\": \"@type(@scope): @message\",\n  \"messageWithTicketTemplate\": \"@ticket(@scope): \u003c@type\u003e @message\"\n}\n```\n\n`messageTemplate` needs to have:\n\n- `@type`: the conventional commit type i.e. `feat`, `chore` etc.\n- `@message`: the commit message\n- `(@scope)`: (optional but recommended) the scope of the commit, must be within\nparentheses\n\n`messageWithTicketTemplate` also additionally takes `@ticket`\n\n### Intro\n\nIf you want to skip the intro screen to save a keypress, add the following to\nyour config:\n\n```json\n{\n  \"showIntro\": false\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanlogue%2Fmeteor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstefanlogue%2Fmeteor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstefanlogue%2Fmeteor/lists"}