Skip to content

About

🧙‍♂️ Magical, interactive CLI for creating conventional commits

Topics

Resources

Code of conduct

Stars

3 stars

Watchers

0 watching

Forks

Repository files navigation

merlin-commit

merlin-commit

Interactive CLI for creating Conventional Commits with a wizard-themed interface

npm
   version license node version

Merlin guides you through each part of a commit message - type, scope, subject, body, breaking changes, and issue references - validating your input in real time and producing consistently formatted messages your whole team can rely on.


Preview

merlin-commit demo


Features

  • Wizard UI - step-by-step prompts with real-time character counters and validation
  • Conventional Commits - enforces the spec automatically; 11 built-in types with emoji
  • Two themes - wizard (default) and standard for teams that prefer plain output
  • Auto-add - interactive file picker to stage changes before the commit prompt
  • Editor integration - opens your preferred editor for long-form body, breaking changes, and issue references
  • Team config - project-level .merlinrc.json checked into version control keeps standards consistent
  • Commitlint sync - writes matching rules to commitlint.config.js with a single command
  • Offline-first - no network calls, no telemetry, no data collection

Installation

Global (recommended for individuals):

npm install -g merlin-commit

Project dev dependency (recommended for teams):

npm install -D merlin-commit

One-shot with npx:

npx merlin-commit

Quick Start

  1. Stage your changes:

    git add .
  2. Run the wizard:

    merlin
  3. Follow the prompts - select a type, enter a scope and subject, and confirm. Merlin creates the commit.


Commands

Command Description
merlin / merlin commit / merlin c Run the interactive commit wizard
merlin config Open the configuration menu
merlin init Set up husky, commitlint, and a project config for your repository

Commit flags:

Flag Description
--dry-run Preview the commit message without creating the commit
--no-verify Skip git hooks (commitlint, husky)
--amend Amend the previous commit

Configuration

Merlin reads from ~/.merlinrc.json (user) and .merlinrc.json at the repository root (project). Project values take precedence over user values, and both layers override the defaults.

See docs/reference/config-schema.md for every field, its type, valid range, and default value.


Documentation

Document Description
Installation Requirements, install methods, troubleshooting
Quick Start First commit, step by step
Commit Types All 11 built-in types with usage guidance
Themes Wizard and standard UI themes
Editor Integration VS Code, Neovim, Emacs, Nano setup
Auto-Add Interactive file staging before committing
CLI Reference Every command, flag, and option
Configuration Config files, merge strategy, common tasks
Config Schema Complete .merlinrc.json field reference
Team Setup Step-by-step team rollout guide
Commitlint Integration Syncing merlin rules to commitlint
Contributing Development setup and PR process
Architecture Code layers, data flow, design decisions
Testing Test patterns, running tests, coverage
Releases Release process for maintainers

Contributing

See docs/development/contributing.md for development setup, coding standards, and the pull request process.


License

MIT © mBukator

About

🧙‍♂️ Magical, interactive CLI for creating conventional commits

Topics

Resources

Code of conduct

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages