Committing Changes with AI

Tower can use AI to generate and rephrase commit messages based on your staged changes.

Committing Changes with AI in Tower
Committing Changes with AI in Tower

Prerequisites

AI Commits requires a locally installed AI command-line tool. Tower currently supports two providers:

  • Claude Code — Anthropic's CLI tool for Claude
  • OpenAI Codex — OpenAI's CLI tool

You must install at least one of these before enabling the feature in Tower.

Installing Claude Code

Claude Code can be installed via Homebrew:

brew install --cask claude-code

After installation, run claude in a terminal and follow the authentication prompts to log in to your Anthropic account. A Claude subscription is required to use the CLI.

For full installation instructions, refer to the Claude Code documentation.

Installing OpenAI Codex

OpenAI Codex CLI can be installed the same way:

brew install --cask codex

After installation, run codex in a terminal and authenticate with your OpenAI account. An OpenAI subscription with API access is required.

For full installation instructions, refer to the OpenAI Codex documentation.

Verify your CLI is accessible
Both tools must be accessible from your system's PATH. You can verify this by running claude --version or codex --version in a terminal. If Tower cannot locate the binary, AI Commits will not function.

Generating a Commit Message

With changes staged in your working copy, click the ✨ Generate button. Tower passes your staged diff to the selected CLI tool, which returns a generated commit subject and description. The commit composer fields are populated automatically — you can review and edit the result before committing.

Stage your changes first
The "✨ Generate" button works with staged changes only. Make sure the files or hunks you want reflected in the commit message are staged before generating.

Using Preset Prompts

A dropdown arrow next to the ✨ Generate button gives you access to a list of prompt presets. Each preset instructs the AI to produce a different style of commit message — for example, a concise one-liner versus a detailed description.

Selecting a preset from the dropdown and clicking ✨ Generate applies that prompt for the current generation.

AI Commits dropdown in Tower
AI Commits dropdown in Tower

Managing Custom Prompts

You can define your own prompt presets in Preferences > AI. Custom prompts are useful for teams that follow specific commit conventions or formatting rules.

To add a custom prompt:

  1. Open Preferences > AI.
  2. Click the + button in the footer of the "Prompts" section.
  3. Enter a title and the prompt text, then save.

Your custom prompts will appear alongside the built-in presets in the dropdown.

Adding a New Custom Prompt
Adding a New Custom Prompt

Prompt Examples

Here are a few examples to get you started:

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."

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). Keep the subject under 72 characters."

Short & Direct

"Summarize the following code changes in a single short commit message (under 72 characters). Be direct and describe what changed, not why."

Disabling AI Commits

To disable all AI functionality: open Preferences > AI and toggle off Enable AI agent support. This fully disables the feature — the ✨ Generate button will no longer appear, and no data will be sent to any AI tool.

Privacy and Data Handling

Tower itself does not operate any AI service and does not send any of your code or data to Tower's servers.

When you click ✨ Generate, Tower sends your staged diff to the locally installed CLI tool on your machine. That tool communicates directly with the AI provider (Anthropic or OpenAI) using the credentials you set up during CLI installation. Your data is subject to the privacy policy of the provider whose CLI you have installed, not Tower's.