{"id":36865990,"url":"https://github.com/mikelorant/committed","last_synced_at":"2026-01-12T14:54:01.577Z","repository":{"id":64179284,"uuid":"573936790","full_name":"mikelorant/committed","owner":"mikelorant","description":":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.","archived":false,"fork":false,"pushed_at":"2025-06-04T22:47:41.000Z","size":2403,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-05T03:34:20.204Z","etag":null,"topics":["bubbletea","cli","committed","emoji","git","go"],"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/mikelorant.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":"2022-12-03T22:35:47.000Z","updated_at":"2025-06-04T22:47:43.000Z","dependencies_parsed_at":"2024-03-04T01:40:12.731Z","dependency_job_id":"5ec20098-72c1-449e-ac6d-25c925362172","html_url":"https://github.com/mikelorant/committed","commit_stats":{"total_commits":365,"total_committers":2,"mean_commits":182.5,"dds":0.002739726027397249,"last_synced_commit":"3249ee1120774c180ec40638d6840f7727013ac1"},"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/mikelorant/committed","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelorant%2Fcommitted","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelorant%2Fcommitted/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelorant%2Fcommitted/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelorant%2Fcommitted/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mikelorant","download_url":"https://codeload.github.com/mikelorant/committed/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mikelorant%2Fcommitted/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340411,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["bubbletea","cli","committed","emoji","git","go"],"created_at":"2026-01-12T14:54:01.033Z","updated_at":"2026-01-12T14:54:01.563Z","avatar_url":"https://github.com/mikelorant.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Committed\n\n[![Release][release-badge]][release]\n[![Build][build-badge]][build]\n[![License][license-badge]][license]\n[![Codecov][codecov-badge]][codecov]\n[![CodeFactor][codefactor-badge]][codefactor]\n\nCommitted is a WYSIWYG Git commit editor that helps improve the quality of your\ncommits by showing you the layout in the same format as `git log`.\n\n[release]: https://github.com/mikelorant/committed/releases\n[release-badge]: https://img.shields.io/github/v/release/mikelorant/committed\n[build]: https://github.com/mikelorant/committed/actions/workflows/release.yaml\n[build-badge]: https://github.com/mikelorant/committed/actions/workflows/release.yaml/badge.svg\n[license]: https://spdx.org/licenses/MIT.html\n[license-badge]: https://img.shields.io/github/license/mikelorant/committed\n[codecov]: https://codecov.io/gh/mikelorant/committed\n[codecov-badge]: https://codecov.io/gh/mikelorant/committed/branch/main/graph/badge.svg?token=TW2XDZAJKT\n[codefactor]: https://www.codefactor.io/repository/github/mikelorant/committed\n[codefactor-badge]: https://www.codefactor.io/repository/github/mikelorant/committed/badge\n\n## [![Highlights][highlights-badge]](#-highlights-) [![First Steps][first-steps-badge]](#-first-steps-) [![Installation][installation-badge]](#-installation-) [![Usage][usage-badge]](#-usage-) [![Configuration][configuration-badge]](#-configuration-) [![Best Practises][best-practises-badge]](#-best-practises-) [![Shortcuts][shortcuts-badge]](#-shortcuts-)\n\n[highlights-badge]: https://img.shields.io/badge/-💡_Highlights-ff0000\n[first-steps-badge]: https://img.shields.io/badge/-🐾_First_Steps-ffa500\n[installation-badge]: https://img.shields.io/badge/-💾_Installation-ffff00\n[usage-badge]: https://img.shields.io/badge/-🎛_Usage-008000\n[configuration-badge]: https://img.shields.io/badge/-⚙️_Configuration-0000ff\n[best-practises-badge]: https://img.shields.io/badge/-🏆_Best_Practises-4b0082\n[shortcuts-badge]: https://img.shields.io/badge/-⌨️_Shortcuts-ee82ee\n\n![demo](docs/demo.gif)\n\n## 💡 Highlights [⭡](#committed)\n\n- Built-in **multiline editor** with rich capabilities.\n- Custom **emoji selector** providing popular sets to choose from.\n- **Switch author** before applying the commit.\n- Inline **text interface** mimics the Git log output.\n- Dynamic **subject line counter**.\n- Toggle appending **sign-off** required by many open source projects.\n- Automatically **hard wraps** body to 72 characters.\n- Best practise **recommendations**.\n- Import and **amend** previous commit.\n- **Adaptive colours** with **light** and **dark** themes.\n\n## 🐾 First Steps [⭡](#committed)\n\n1. Install using Homebrew.\n\n   ```shell\n   brew install mikelorant/committed/committed\n   ```\n\n2. Before creating and applying a commit you will need to stage the files you\n   wish to add with the `git add` command.\n\n3. Committed replaces the `git commit` command and all you need to do to commit\n   your change is to run:\n\n   ```shell\n   committed\n   ```\n\n   It is also possible to amend your previous commit with:\n\n   ```shell\n   committed --amend\n   ```\n\nOnce the UI has appeared take note of the keyboard shortcuts shown at the bottom\nof the interface.\n\n```text\n Alt + \u003center\u003e Commit \u003cs\u003e Sign-off \u003c/\u003e Help                Summary \u003ctab\u003e\nCtrl +     \u003cc\u003e Cancel                                       Author \u003ctab\u003e + Shift\n```\n\nThese shortcuts will help you apply or cancel a commit and navigate between the\ndifferent components. Pressing enter on most components will automatically\nswitch you to the next one.\n\n## 💬 Purpose [⭡](#committed)\n\nThe benefits of high quality commits are well documented however the tooling to\nfollow these practises has been lacking. In most cases you are either providing\na single line commit message or forced into a full screen editor which has no\nknowledge of recommended Git practises.\n\nIt is common to accidentally commit to the wrong branch or use the incorrect\nauthor name. Improving clarity of commits with emojis or detailed messages is\noften frustrating.\n\nFor many, knowing what makes a good commit is not even thought about.\n\nCommitted attempts to solve these problems by first educating on best practises.\nIt then helps guide and enforce these de factor standards while showing how the\ncommit will end up being displayed to other users.\n\nThe interface does not take over the sceen or force switching to another\napplication. All actions are done with the keyboard which is consistent with the\nGit command which is often used before the actual commit. Having an editor which\nallows for more advanced cursor movement and editing assists with revising\nrather than accepting what has already been written.\n\nThese capabilities all contribute to helping create a commit message that is\nuseful.\n\n## ⚠️ Limitations [⭡](#committed)\n\n### Option Key\n\nThe option key needs to be set to send the `meta` or `esc+` keycode. Terminals\nsuch as macOS Terminal or iTerm2 may not have this as default. If not set\ncorrectly it will not be possible to apply a commit.\n\nTo make these changes following the instructions below.\n\n| Terminal       | Setting                                               |\n| :------------- | :---------------------------------------------------- |\n| macOS Terminal | `Profiles` `Keyboard`\u003cbr /\u003e![macOS Terminal options]  |\n| iTerm2         | `Preferences` `Profile` `Keys`\u003cbr /\u003e![iTerm2 options] |\n\nThe alternative keyboard shortcut \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e\\\\\u003c/kbd\u003e can also\nbe used to apply a commit.\n\n[macos terminal options]: docs/keyboard-options-macos-terminal.png\n[iterm2 options]: docs/keyboard-options-iterm2.png\n\n### Rendering Borders\n\nTerminals render emojis differently and this makes alignment of borders\ncomplicated and difficult. It is an ongoing process to improve the compatibility\nwith terminals. The following list are the terminals that have been tested.\nOther terminals may display correctly and feedback would be appreciated to help\nupdate the list.\n\n| Terminal                   | Status         | Compatibility Mode |\n| :------------------------- | :------------- | :----------------- |\n| macOS Terminal[¹](#iTerm2) | ![✅][confirm] | Unicode 9          |\n| iTerm2                     | ![✅][confirm] | Unicode 14         |\n| Visual Studio Code         | ![✅][confirm] | Unicode 9          |\n| Hyper                      | ![✅][confirm] | Unicode 9          |\n| Alacritty                  | ![✅][confirm] | Unicode 9          |\n| WezTerm[²](#WezTerm)       | ![✅][confirm] | Unicode 9          |\n| ttyd                       | ![✅][confirm] | Unicode 9          |\n| kitty                      | ![✅][confirm] | Unicode 14         |\n\n#### iTerm2\n\niTerm2 versions lower than `3.5.0` will need to use Unicode 9 compatibility.\n\nIt is also important to make sure that options related to [variation selector 16][iterm2 vs16]\nuse full width when using Unicode 14 compatibility. This requires setting\n`Support variation selector 16 making emoji fullwidth outside of alternate\nscreen mode?` to `Yes`.\n\nTo correctly align emojis using variation select 16 within `git log`, the\nsetting `Support variation selector 16 making emoji fullwidth in all modes?`\nmust be set to `Yes`.\n\n[iterm2 vs16]: https://gitlab.com/gnachman/iterm2/-/issues/10480\n\n#### WezTerm\n\nWezTerm has [configurable][wezterm unicode] Unicode version support. This\ncurrently defaults to Unicode 9.\n\n[wezterm unicode]: https://wezfurlong.org/wezterm/config/lua/config/unicode_version.html\n\n## 💾 Installation [⭡](#committed)\n\nInstall Committed with Homebrew.\n\n```shell\nbrew install mikelorant/taps/committed\n```\n\n## ⚙ Usage [⭡](#committed)\n\n```text\nCommitted is a WYSIWYG Git commit editor\n\nUsage:\n  committed [flags]\n  committed [command]\n\nAvailable Commands:\n  completion   Generate the autocompletion script for the specified shell\n  help         Help about any command\n  hook         Install and uninstall Git hook\n  list         List settings with profiles or IDs\n  version      Print the version information\n\nFlags:\n      --config string     Config file location (default\n                          \"$HOME/.config/committed/config.yaml\")\n      --snapshot string   Snapshot file location (default\n                          \"$HOME/.local/state/committed/snapshot.yaml\")\n      --dry-run           Simulate applying a commit (default false)\n  -a, --amend             Replace the tip of the current branch by creating a new commit\n  -h, --help              help for committed\n  -v, --version           version for committed\n\nUse \"committed [command] --help\" for more information about a command.\n```\n\n### List\n\n```text\nUsage:\n  committed list [command]\n\nAvailable Commands:\n  emojis       List emoji profiles\n  themes       List theme IDs\n```\n\n### Hook\n\n```text\nUsage:\n  committed hook [flags]\n\nFlags:\n      --install     Install Git hook\n      --uninstall   Uninstall Git hook\n```\n\n## 🎛 Configuration [⭡](#committed)\n\nNo configuration is necessary however there are some values that can be changed\nbased on preference.\n\nCommitted defaults to using a config file located at\n`$HOME/.config/committed/config.yaml`.\n\n```yaml\nview:\n  # Starting component focus.\n  # Values: author, emoji, summary\n  # Default: emoji\n  focus: emoji\n\n  # Emoji selector placement in relation to subject.\n  # Values: above, below\n  # Default: below\n  emojiSelector: below\n\n  # Emoji set to use.\n  # Values: gitmoji, devmoji, emojilog\n  # Default: gitmoji\n  emojiSet: gitmoji\n\n  # Theme to display. Dark and light backgrounds have different themes.\n  # Dark values:\n  #   builtin_dark, dracula, gruvbox_dark, nord, retrowave,\n  #   solarized_dark_higher_contrast, tokyo_night\n  # Dark default: builtin_dark\n  # Light values:\n  #   builtin_light, gruvbox_light, builtin_solarized_light,\n  #   builtin_tango_light, tokyo_night_light\n  # Light default: builtin_light\n  theme: builtin_dark\n\n  # Colour profile for displaying themes.\n  # Values: adaptive, dark, light\n  # Default: adaptive\n  colour: adaptive\n\n  # Terminal compatibility.\n  # Values: unicode14, unicode9\n  # Default: unicode14\n  compatibility: unicode14\n\n  # Highlight active component.\n  # Value: true, false\n  # Default: false\n  highlightActive: false\n\n  # Ignore Git global author.\n  # Value: true, false\n  # Default: false\n  ignoreGlobalAuthor: false\n\ncommit:\n  # Emoji format in commit.\n  # Values: shortcode, character\n  # Default: character\n  emojiType: character\n\n  # Enable author sign-off for commits.\n  # Values: true, false\n  # Default: false\n  signoff: false\n\nauthors:\n  # List of extra authors.\n  - name: John Doe\n    email: john.doe@example.com\n```\n\n### Themes\n\nThere are a number of themes available that modify the colours. By default, the\nbackground colour is detected which changes the choices of themes. This\ndetection can be disabled by setting the colour profile in the configuration.\nThe first theme of each set is the default theme applied.\n\n#### Dark Themes\n\n| Name                                        | ID                             |\n| :------------------------------------------ | :----------------------------- |\n| Builtin Dark                                | builtin_dark                   |\n| [Dracula][dracula]                          | dracula                        |\n| [Gruvbox Dark][gruvbox]                     | gruvbox_dark                   |\n| [Nord][nord]                                | nord                           |\n| [Retrowave][retrowave]                      | retrowave                      |\n| [Solarized Dark Higher Contrast][solarized] | solarized_dark_higher_contrast |\n| [Tokyo Night][tokyo-night]                  | tokyo_night                    |\n\n#### Light Theme\n\n| Name                                 | ID                      |\n| :----------------------------------- | :---------------------- |\n| Builtin Light                        | builtin_light           |\n| [Builtin Solarized Light][solarized] | builtin_solarized_light |\n| [Builtin Tango Light][tango]         | builtin_tango_light     |\n| [Gruvbox Light][gruvbox]             | gruvbox_light           |\n| [Tokyo Night Light][tokyo-night]     | tokyo_night_light       |\n\n[dracula]: https://draculatheme.com/\n[gruvbox]: https://github.com/morhetz/gruvbox\n[nord]: https://www.nordtheme.com/\n[retrowave]: https://github.com/juanmnl/vs-1984\n[solarized]: https://ethanschoonover.com/solarized/\n[tokyo-night]: https://github.com/enkia/tokyo-night-vscode-theme\n[tango]: http://tango.freedesktop.org/Tango_Desktop_Project\n\n### Emoji Profiles\n\nPopular emoji sets can be set as the default profile:\n\n- [Gitmoji](https://gitmoji.dev/)\n- [Devmoji](https://github.com/folke/devmoji)\n- [Emoji-Log](https://github.com/ahmadawais/emoji-log)\n\n## 🏆 Best Practises [⭡](#committed)\n\nTo create a well formed commit, these are some of the best practises that are\noften cited.\n\n\u003e Capitalized, short (50 chars or less) summary\n\u003e\n\u003e More detailed explanatory text, if necessary.  Wrap it to about 72\n\u003e characters or so.  In some contexts, the first line is treated as the\n\u003e subject of an email and the rest of the text as the body.  The blank\n\u003e line separating the summary from the body is critical (unless you omit\n\u003e the body entirely); tools like rebase can get confused if you run the\n\u003e two together.\n\u003e\n\u003e Write your commit message in the imperative: \"Fix bug\" and not \"Fixed bug\"\n\u003e or \"Fixes bug.\"  This convention matches up with commit messages generated\n\u003e by commands like git merge and git revert.\n\u003e\n\u003e Further paragraphs come after blank lines.\n\u003e\n\u003e - Bullet points are okay, too\n\u003e\n\u003e - Typically a hyphen or asterisk is used for the bullet, followed by a\n\u003e   single space, with blank lines in between, but conventions vary here\n\u003e\n\u003e - Use a hanging indent\n\nSource: [Tim Pope](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)\n\nThe placeholder text for the summary and body will show these recommendations.\n\nRelated links:\n\n- [Joel Parker Henderson](https://github.com/joelparkerhenderson/git-commit-message)\n- [Chris Beams](https://cbea.ms/git-commit/)\n\n## ⌨ Shortcuts [⭡](#committed)\n\nThe global shortcuts can be used within any view.\n\n| Key Binding                              | Command            |\n| :--------------------------------------- | :----------------- |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e⏎ Enter\u003c/kbd\u003e | Commit             |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e\\\\\u003c/kbd\u003e      | Commit             |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e       | Toggle sign-off    |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003eT\u003c/kbd\u003e       | Toggle theme       |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e/\u003c/kbd\u003e       | Help               |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e1\u003c/kbd\u003e       | Focus author       |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e2\u003c/kbd\u003e       | Focus emoji        |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e3\u003c/kbd\u003e       | Focus summary      |\n| \u003ckbd\u003e⌥ Option\u003c/kbd\u003e + \u003ckbd\u003e4\u003c/kbd\u003e       | Focus body         |\n| \u003ckbd\u003e⌃ Control\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e      | Cancel             |\n| \u003ckbd\u003e⇥ Tab\u003c/kbd\u003e                         | Next component     |\n| \u003ckbd\u003e⇧ Shift\u003c/kbd\u003e + \u003ckbd\u003e⇥ Tab\u003c/kbd\u003e    | Previous component |\n\nThe emoji shortcuts are limited to the emoji view only.\n\n| Key Binding            | Command       |\n| :--------------------- | :------------ |\n| \u003ckbd\u003e⌫ Delete\u003c/kbd\u003e    | Clear emoji   |\n| \u003ckbd\u003e⎋ Escape\u003c/kbd\u003e    | Reset filter  |\n| \u003ckbd\u003e⇟ Page Down\u003c/kbd\u003e | Next page     |\n| \u003ckbd\u003e⇞ Page Up\u003c/kbd\u003e   | Previous page |\n\n## 📚 Tips [⭡](#committed)\n\n### Aliases\n\nShell or Git aliases can be used to tailor Committed to your preferred workflow.\nAn example Git alias is as follows:\n\n```shell\ngit config --global alias.co '! committed'\n```\n\nYou can then commit changes with:\n\n```shell\ngit co\n```\n\n### Prepare Message Hook\n\nCommitted can be installed as a Git prepare message hook. Be aware that any\nexisting `prepare-commit-msg` hook will not be replaced and it is necessary to\nremove this hook before installing.\n\nInstallation:\n\n```shell\ncommitted hook --install\n```\n\nRemoval:\n\n```shell\ncommitted hook --uninstall\n```\n\n### Editor\n\nCommitted can replace the default Git editor which allows commits to be applied\nusing `git commit`. Most of the standard Git command arguments can be used.\n\n```shell\ngit config --global core.editor \"committed --editor\"\n```\n\nThis can be removed with:\n\n```shell\ngit config --global --unset-all core.editor\n```\n\nThere are some limitations related to acting as an editor.\n\n- Comment lines will be truncated to the width of the editor.\n- Interactive rebasing and other operations which require edit commands may have\n  visual issues. The first command may be part of the summary.\n- Author cannot be set. The configured Git author will be used and will be\n  selected using the default Git method (repository followed by global).\n- When amending, subject line may be part of the body.\n- When amending, emoji character or shortcode must be in the existing data set.\n- When amending, summary will be truncated if more than 72 characters.\n- When amending, trailers will be imported into the body.\n\n### Amend\n\nThere are certain limitations when amending commits and it is recommended only\nfor use with commits created with Committed. The limitations share similarities\nwith using Git as an editor.\n\n- Emoji character or shortcode must be in the existing data set.\n- Trailers will be imported into the body.\n- Summary will be truncated if more than 72 characters.\n- Lines will not reflow when editing the body.\n\n## ⚖️ Comparison\n\n### Git Functions\n\n| Feature                      | Committed      | Gitmoji CLI       |\n| :--------------------------- | :------------- | :---------------- |\n| Git hooks                    | ![✅][confirm] | ![✅][confirm]    |\n| Git editor replacement       | ![✅][confirm] | ![❌][cancel]     |\n| Amend commit                 | ![✅][confirm] | ![❌][cancel]     |\n| Add files                    | ![❌][cancel]  | ![✅][confirm]    |\n| Signed commits               | ![❌][cancel]  | ![✅][confirm]    |\n| Sign-off commits             | ![✅][confirm] | ![❌][cancel]     |\n| Switch author                | ![✅][confirm] | ![❌][cancel]     |\n| Save and load failed commits | ![✅][confirm] | ![❌][cancel][^1] |\n\n[^1]: [Print Git command on failure](https://github.com/carloscuesta/gitmoji-cli/pull/681).\n\n### Visual Style\n\n| Feature                 | Committed      | Gitmoji CLI    |\n| :---------------------- | :------------- | :------------- |\n| Subject counter         | ![✅][confirm] | ![✅][confirm] |\n| Custom emojis           | ![❌][cancel]  | ![✅][confirm] |\n| Mulitple emoji profiles | ![✅][confirm] | ![❌][cancel]  |\n| Multiline editor        | ![✅][confirm] | ![❌][cancel]  |\n| Scope prompt            | ![❌][cancel]  | ![✅][confirm] |\n| Themes                  | ![✅][confirm] | ![❌][cancel]  |\n| Hard wrap body width    | ![✅][confirm] | ![❌][cancel]  |\n\n## ✏️ Authors [⭡](#committed)\n\n- [@mikelorant](https://www.github.com/mikelorant)\n\n## 🎫 License [⭡](#committed)\n\n[MIT](https://choosealicense.com/licenses/mit/)\n\n## 👍 Thanks [⭡](#committed)\n\nThanks to [Carlos Cuesta] for creating [gitmoji] and [gitmoji-cli] which was the\ninspiration for this project.\n\nThanks to [Ahmad Awais] for [Emoji-Log] and [Folke Lemaitre] for [Devmoji].\n\nMany thanks to [David Ackroyd] and [Matt Hope] for all their guidance with Go.\nWithout their expertise I would never had the capability to build Committed.\n\nThanks to all the developers from [Charm] for their amazing set of libraries.\nCommitted would never have looked the way it does without [Bubble Tea],\n[Lipgloss] and [Bubbles].\n\nThanks to [Tim Pope] for his Git commit recommendations which was a core\ncomponent in the interface design.\n\n[carlos cuesta]: https://github.com/carloscuesta\n[ahmad awais]: https://github.com/ahmadawais\n[folke lemaitre]: https://github.com/folke\n[david ackroyd]: https://github.com/dackroyd\n[matt hope]: https://github.com/matthope\n[charm]: https://github.com/charmbracelet\n[tim pope]: https://github.com/tpope\n\n[gitmoji]: https://gitmoji.dev/\n[gitmoji-cli]: https://github.com/carloscuesta/gitmoji-cli\n[emoji-log]: https://github.com/ahmadawais/Emoji-Log\n[devmoji]: https://github.com/folke/devmoji\n[bubble tea]: https://github.com/charmbracelet/bubbletea\n[lipgloss]: https://github.com/charmbracelet/lipgloss\n[bubbles]: https://github.com/charmbracelet/bubbles\n\n[//]: # (shared link reference definitions)\n\n[confirm]: docs/assets/confirm-24x24.svg\n[cancel]: docs/assets/cancel-24x24.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikelorant%2Fcommitted","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmikelorant%2Fcommitted","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmikelorant%2Fcommitted/lists"}