Comsg is a developer tool that automatically converts Git stagged diffs into clear, consistent, and context-aware commit messages. By analyzing code changes at a semantic level, Comsg helps maintain a clean commit history without requiring developers to manually craft messages for every change.
- Accepts Git staged changes
- Identifies added, removed, and modified lines
- Handles multi-file diffs and complex change sets
- Interprets the intent behind code changes
- Generates concise commit titles and optional extended descriptions
- Supports multi-scope summaries for large patches
Comsg supports the full range of Conventional Commit types, including:
- feat — a new feature
- fix — a bug fix
- docs — documentation changes
- style — code style changes (formatting, missing semicolons, etc.)
- refactor — code restructuring without functional changes
- test — adding or updating tests
- build — build system or dependency changes
- ci — CI/CD configuration updates
- perf — performance improvements
- chore — maintenance tasks not affecting source code
These commit types help maintain consistent and meaningful commit history across projects and teams.
Follow these steps to install Comsg globally:
npm i -g comsggit clone https://github.com/Code14-ZeD/comsg
cd comsgchmod +x index.jsnpm linkAfter installation, the comsg command becomes available system-wide.
Before running Comsg, you must add your OpenAI API key in the project where you want to use this tool.
In the root of your project:
nano .envAdd the following environment variable:
OPENAI_API_KEY=your_api_key_herecomsgComsg will analyze your current Git stagged diff and generate a commit message based on your changes.
Comsg allows customization of how commit messages are generated.
All customization lives in the index.js file. Inside this file, look for the commit-tool's description, which defines how commit messages should be formatted and structured. Modify the description according to you.
const commitTool = tool({
name: "commit-tool",
description: `
An intelligent tool that transforms raw Git diffs into commit messages...
Rules:
- Always generate commit messages in the format: <type>(<scope>): <description>
- Use types like feat, fix, docs, style, refactor, test, chore
- Scope is optional but should indicate the affected area
- Description should be imperative and concise
- Ensure commit descriptions are 50 characters or less
...
`,You are ready to use the customized tool.