Committed
:writing_hand: Committed is a WYSIWYG Git commit editor that helps improve the quality of your commits by showing you the layout in the same format as git log.
Install / Use
/learn @mikelorant/CommittedREADME
Committed
Committed is a WYSIWYG Git commit editor that helps improve the quality of your
commits by showing you the layout in the same format as git log.

💡 Highlights ⭡
- Built-in multiline editor with rich capabilities.
- Custom emoji selector providing popular sets to choose from.
- Switch author before applying the commit.
- Inline text interface mimics the Git log output.
- Dynamic subject line counter.
- Toggle appending sign-off required by many open source projects.
- Automatically hard wraps body to 72 characters.
- Best practise recommendations.
- Import and amend previous commit.
- Adaptive colours with light and dark themes.
🐾 First Steps ⭡
-
Install using Homebrew.
brew install mikelorant/committed/committed -
Before creating and applying a commit you will need to stage the files you wish to add with the
git addcommand. -
Committed replaces the
git commitcommand and all you need to do to commit your change is to run:committedIt is also possible to amend your previous commit with:
committed --amend
Once the UI has appeared take note of the keyboard shortcuts shown at the bottom of the interface.
Alt + <enter> Commit <s> Sign-off </> Help Summary <tab>
Ctrl + <c> Cancel Author <tab> + Shift
These shortcuts will help you apply or cancel a commit and navigate between the different components. Pressing enter on most components will automatically switch you to the next one.
💬 Purpose ⭡
The benefits of high quality commits are well documented however the tooling to follow these practises has been lacking. In most cases you are either providing a single line commit message or forced into a full screen editor which has no knowledge of recommended Git practises.
It is common to accidentally commit to the wrong branch or use the incorrect author name. Improving clarity of commits with emojis or detailed messages is often frustrating.
For many, knowing what makes a good commit is not even thought about.
Committed attempts to solve these problems by first educating on best practises. It then helps guide and enforce these de factor standards while showing how the commit will end up being displayed to other users.
The interface does not take over the sceen or force switching to another application. All actions are done with the keyboard which is consistent with the Git command which is often used before the actual commit. Having an editor which allows for more advanced cursor movement and editing assists with revising rather than accepting what has already been written.
These capabilities all contribute to helping create a commit message that is useful.
⚠️ Limitations ⭡
Option Key
The option key needs to be set to send the meta or esc+ keycode. Terminals
such as macOS Terminal or iTerm2 may not have this as default. If not set
correctly it will not be possible to apply a commit.
To make these changes following the instructions below.
| Terminal | Setting |
| :------------- | :---------------------------------------------------- |
| macOS Terminal | Profiles Keyboard<br />
|
| iTerm2 | Preferences Profile Keys<br />
|
The alternative keyboard shortcut <kbd>⌥ Option</kbd> + <kbd>\</kbd> can also be used to apply a commit.
Rendering Borders
Terminals render emojis differently and this makes alignment of borders complicated and difficult. It is an ongoing process to improve the compatibility with terminals. The following list are the terminals that have been tested. Other terminals may display correctly and feedback would be appreciated to help update the list.
| Terminal | Status | Compatibility Mode | | :------------------------- | :------------- | :----------------- | | macOS Terminal¹ | ![✅][confirm] | Unicode 9 | | iTerm2 | ![✅][confirm] | Unicode 14 | | Visual Studio Code | ![✅][confirm] | Unicode 9 | | Hyper | ![✅][confirm] | Unicode 9 | | Alacritty | ![✅][confirm] | Unicode 9 | | WezTerm² | ![✅][confirm] | Unicode 9 | | ttyd | ![✅][confirm] | Unicode 9 | | kitty | ![✅][confirm] | Unicode 14 |
iTerm2
iTerm2 versions lower than 3.5.0 will need to use Unicode 9 compatibility.
It is also important to make sure that options related to variation selector 16
use full width when using Unicode 14 compatibility. This requires setting
Support variation selector 16 making emoji fullwidth outside of alternate screen mode? to Yes.
To correctly align emojis using variation select 16 within git log, the
setting Support variation selector 16 making emoji fullwidth in all modes?
must be set to Yes.
WezTerm
WezTerm has configurable Unicode version support. This currently defaults to Unicode 9.
💾 Installation ⭡
Install Committed with Homebrew.
brew install mikelorant/taps/committed
⚙ Usage ⭡
Committed is a WYSIWYG Git commit editor
Usage:
committed [flags]
committed [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
hook Install and uninstall Git hook
list List settings with profiles or IDs
version Print the version information
Flags:
--config string Config file location (default
"$HOME/.config/committed/config.yaml")
--snapshot string Snapshot file location (default
"$HOME/.local/state/committed/snapshot.yaml")
--dry-run Simulate applying a commit (default false)
-a, --amend Replace the tip of the current branch by creating a new commit
-h, --help help for committed
-v, --version version for committed
Use "committed [command] --help" for more information about a command.
List
Usage:
committed list [command]
Available Commands:
emojis List emoji profiles
themes List theme IDs
Hook
Usage:
committed hook [flags]
Flags:
--install Install Git hook
--uninstall Uninstall Git hook
🎛 Configuration ⭡
No configuration is necessary however there are some values that can be changed based on preference.
Committed defaults to using a config file located at
$HOME/.config/committed/config.yaml.
view:
# Starting component focus.
# Values: author, emoji, summary
# Default: emoji
focus: emoji
# Emoji selector placement in relation to subject.
# Values: above, below
# Default: below
emojiSelector: below
# Emoji set to use.
# Values: gitmoji, devmoji, emojilog
# Default: gitmoji
emojiSet: gitmoji
# Theme to display. Dark and light backgrounds have different themes.
# Dark values:
# builtin_dark, dracula, gruvbox_dark, nord, retrowave,
# solarized_dark_higher_contrast, tokyo_night
# Dark default: builtin_dark
# Light values:
# builtin_light, gruvbox_light, builtin_solarized_light,
# builtin_tango_light, tokyo_night_light
# Light default: builtin_light
theme: builtin_dark
# Colour profile for displaying themes.
# Values: adaptive, dark, light
# Default: adaptive
colour: adaptive
# Terminal compatibility.
# Values: unicode14, unicode9
# Default: unicode14
compatibili
Related Skills
apple-reminders
346.4kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
346.4kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
346.4kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
