{"id":17867132,"url":"https://github.com/segersniels/cmt","last_synced_at":"2026-02-18T14:34:08.872Z","repository":{"id":259515295,"uuid":"877382722","full_name":"segersniels/cmt","owner":"segersniels","description":"A command-line tool designed to help developers write consistent and standardized commit messages across different commit conventions.","archived":false,"fork":false,"pushed_at":"2025-03-28T08:44:27.000Z","size":253,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-28T22:39:32.576Z","etag":null,"topics":["charmbracelet","cli","commit","commit-message","convention","conventional-commits","dx","gitmoji","gitmoji-cli","prompt"],"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/segersniels.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2024-10-23T14:54:52.000Z","updated_at":"2025-03-28T08:43:35.000Z","dependencies_parsed_at":"2024-10-26T05:50:33.969Z","dependency_job_id":"8de5d444-93b7-4711-b44a-28f56f5acf0b","html_url":"https://github.com/segersniels/cmt","commit_stats":null,"previous_names":["segersniels/cmt"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/segersniels/cmt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segersniels%2Fcmt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segersniels%2Fcmt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segersniels%2Fcmt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segersniels%2Fcmt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/segersniels","download_url":"https://codeload.github.com/segersniels/cmt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segersniels%2Fcmt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29582318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T13:56:48.962Z","status":"ssl_error","status_checked_at":"2026-02-18T13:54:34.145Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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","commit-message","convention","conventional-commits","dx","gitmoji","gitmoji-cli","prompt"],"created_at":"2024-10-28T09:44:12.258Z","updated_at":"2026-02-18T14:34:03.856Z","avatar_url":"https://github.com/segersniels.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cmt\n\n[![npm](https://img.shields.io/npm/v/@segersniels/cmt)](https://www.npmjs.com/package/@segersniels/cmt)![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/segersniels/cmt/ci.yml)\n\n`cmt` (short for commit) is a command-line tool designed to help developers write consistent and standardized commit messages across different commit conventions.\n\n![demo](demo.gif)\n\n## Conventions\n\nOpen source contributors often face a unique challenge when working across multiple projects: navigating the diverse landscape of commit conventions. Each repository may adhere to its own set of rules for structuring commit messages, from [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to [Gitmoji](https://gitmoji.dev/), or even custom formats. This inconsistency can lead to confusion, reduced productivity, and potential errors in version control.\n\n`cmt` aims to alleviate this pain point by providing a flexible, easy-to-use tool that adapts to different commit conventions. By standardizing the commit process across projects, `cmt` helps contributors maintain consistency and focus on what truly matters - their code contributions.\n\nSupported conventions at the time of writing:\n\n- [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)\n- [Gitmoji](https://gitmoji.dev/)\n\n## Install\n\n### NPM\n\n```bash\nnpm install -g @segersniels/cmt\n```\n\n### Script\n\n```bash\n# Install in the current directory\ncurl -sSL https://raw.githubusercontent.com/segersniels/cmt/master/scripts/install.sh | bash\n# Install in /usr/local/bin\ncurl -sSL https://raw.githubusercontent.com/segersniels/cmt/master/scripts/install.sh | sudo bash -s /usr/local/bin\n```\n\nOr download one of the released binaries for your operating system [here](https://github.com/segersniels/cmt/releases).\n\n## Usage\n\n### Existing project\n\nYou can choose to use `cmt` in an existing project without adding a new configuration file. If no `.cmtrc.json` file is found, `cmt` will attempt to determine the commit convention from the last commit message.\n\n### New project\n\nFirst initialize `cmt` in your project:\n\n```\ncmt init\n```\n\nThis will create a `.cmtrc.json` file with your preferred settings.\n\nAfter that simple create a commit:\n\n```\ncmt commit\n```\n\nor use the shorthand:\n\n```\ncmt c\n```\n\nFollow the interactive prompts to construct your commit.\n\n## Configuration\n\n`cmt` uses a `.cmtrc.json` file to store configuration. You can edit this file manually or run `cmt init` to set up your preferences.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegersniels%2Fcmt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsegersniels%2Fcmt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegersniels%2Fcmt/lists"}