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

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 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 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 applies that prompt for the current generation.

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:
- Open Preferences > AI.
- Click the + button in the footer of the "Prompts" section.
- Enter a title and the prompt text, then save.
Your custom prompts will appear alongside the built-in presets in the dropdown.

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