Interactive CLI for creating Conventional Commits with a wizard-themed interface
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.
- 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.jsonchecked into version control keeps standards consistent - Commitlint sync - writes matching rules to
commitlint.config.jswith a single command - Offline-first - no network calls, no telemetry, no data collection
Global (recommended for individuals):
npm install -g merlin-commitProject dev dependency (recommended for teams):
npm install -D merlin-commitOne-shot with npx:
npx merlin-commit-
Stage your changes:
git add . -
Run the wizard:
merlin
-
Follow the prompts - select a type, enter a scope and subject, and confirm. Merlin creates the commit.
| 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 |
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.
| 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 |
See docs/development/contributing.md for development setup, coding standards, and the pull request process.
MIT © mBukator
