Say goodbye to writing commit messages from scratch! Tower 16 for Mac is here, and it introduces AI Commits, allowing you to generate commit messages and descriptions with the help of AI directly from your favorite Git client.
This has been one of our most requested features, and we're excited to finally bring it to you. We get it: writing commit messages takes you out of your flow. Tower 16 uses AI to handle that for you, so you can stay focused on shipping.
Let's see how it works! If you prefer, you can get up to speed in just 3 minutes by watching our video tour below 😎
The New "Working Copy" View
The first thing you will notice when opening the "Working Copy" view is that the Commit Composing area has been redesigned with a few handy additions.

On the left side, three new icons give you quick access to options that were previously harder to reach:
- Expanded Body View: keep the description field visible at all times.
- Commit Templates: apply a previously saved template to the subject and description fields with one click.
- Hard Line Wrap: toggle automatic line wrapping for your commit descriptions.
But the real star of the show is on the right side — let's take a closer look! ✨
AI Commits in Action!
You will easily spot a colorful, brand new "✨ Generate" button in the Commit Composing area. Simply stage your changes, click the button, and Tower will instantly generate a commit message and description for you — it's that simple!
☝️ For the AI Commits feature to work, make sure you already have the CLI version of either Claude Code or OpenAI Codex installed on your system.
You will also find a dropdown next to it that allows you to pick from a selection of preset prompts.

This makes it easy to switch between different styles of commit messages depending on the situation — for example, a short one-liner versus a detailed, thorough commit.
New "AI" Tab in the Settings
To configure AI Commits, head over to Tower's "Settings" panel where you will find a brand new "AI" tab.

Here you can:
- Select the AI provider for generating commit messages. Tower currently supports two AI providers: Claude Code and OpenAI's Codex. To use this feature, please ensure that you have the CLI version of one of these services installed on your system. You also have the option to disable this feature entirely.
- Add or delete custom prompt presets to fine-tune the output to your liking.
That's right; you can create your own custom prompts to ensure that every generated message follows your preferred format and style. This is especially useful for teams that follow specific commit conventions (like Conventional Commits), or those who require certain prefixes, scopes, or formatting rules (like the usage of Gitmoji!).
If you need some inspiration, here are a few prompt suggestions for you to consider:
1. Quick & Simple
"Summarize the following code changes in a single short commit message (under 72 characters). Be direct and describe what changed, not why."
2. Gitmoji
"Write a commit message for the following changes using the gitmoji convention. Start the subject line with the most appropriate gitmoji (e.g. ✨ for a new feature, 🐛 for a bug fix, ♻️ for refactoring, 🎨 for style/structure improvements). Keep the subject under 72 characters."
3. Conventional Commits
"Write a commit message following the Conventional Commits specification. Use the format type(scope): description. Choose the appropriate type (feat, fix, refactor, chore, docs, style, test, perf, ci, build). Include a body paragraph explaining the motivation and what changed if the diff is non-trivial."
Improvements and Bug Fixes
As usual, we also took some time to implement improvements across the board:
- Performance: Redundant repository reloads when switching back to Tower have been eliminated, branch tracking updates are faster on repositories with many branches and remotes, and unnecessary reloads after fetching when nothing has changed are now skipped.
- Graphite: Parent branch menus now build significantly faster on repositories with many branches.
- Working Copy: "Show File" and "Blame" actions are now correctly disabled for untracked files.
- Commit: The commit message body field can now be kept always visible — toggle this in Preferences.
- Diff/Merge Tools: Tower now validates the tool configuration before launching and provides better error feedback on failure.
- Partial Stash: You can now drag individual files from the Working Copy onto Stashes to create a partial stash, including untracked files.
We also seized this opportunity to fix some bugs! Here is what we addressed:
- Working Copy: "Rebase Onto" from the Working Copy context menu could cause data loss — this has been fixed. The "Fully Merged" badge and history banner now also update correctly after a fetch.
- History: "Rebase Onto" now correctly updates the parent branch of the rebased commits.
- Interactive Rebase: Fixed a stale commit message being used when resolving squash or fixup conflicts. Also fixed interactive rebase with autosquash failing when squash! commits are present.
- Graphite: Fixed the workflow becoming very sluggish with a large number of branches, and an issue where branches could be incorrectly identified as trunk.
- Worktrees: Fixed worktrees added with relative paths not being recognized.
- Performance: Fixed Tower freezing when clicking on branches in certain situations.
- Repositories: The "git-flow" option is no longer shown in repository settings when a different workflow is active.
- License: Fixed broken links in the license window.
We hope you enjoy this release! Happy committing! 😊
Not a Tower user yet? Download our 30-day free trial and experience a better way to work with Git!
PS: Did you know? Tower Pro is now free for students as well as teachers and educational institutions!