AI Commit Messages
- Desktop app
- All plans
What it does
Writes one clean commit message from the real git diff of the files you are about to commit. Click the sparkle on the commit message field, optionally type a rough draft ("fix temp pdf"), and the Commit writer bubble proposes a Conventional Commits message that respects your per-project format rules ("always bug(TICKET) : Description"). It stacks on a free, deterministic pre-fill of the field. By default (Agents write their own commit message, on), the agent itself puts its commit line in the field on the first turn that changes files, once per commit cycle, through its AgentsRoom tools and following your format rules; until it does, only a backlog ticket's type and title pre-fill it (crediting a public backlog reporter by first name), and a message you typed by hand is never replaced. With that setting off, the field falls back to the classic guess from the agent's session title or latest notification. The diff is sent only when you click, and is never stored.
Where to find it
- Right panel > Changes tab: the sparkle button (AI commit message) on the commit message field, next to the Expand button that opens the message in a full-screen editor.
- Review mode: the same sparkle on its commit field.
- Format rules: the gear in the bubble (Commit format rules), Project settings > Git (project rules), Settings > Git (global rules), Folder settings > Git (folder rules).
- Settings > Git is the tab for everything about commits made from AgentsRoom: Agents write their own commit message, Commit format rules, Attach agent conversation to commit and Automatically update .gitignore. Project settings > Git holds the project overrides.
How to use it
- With pending changes, click the sparkle. The bubble opens, pre-filled with anything already typed.
- Type a short intent or send empty: the diff of the scoped files (per-agent filter and excluded files respected) is read locally and sent.
- The proposal arrives as a card: Use this message fills the field, Try another regenerates.
- Commit as usual. What you applied is remembered like manual input and survives filter changes.
To read or edit a long message (a subject plus a body, yours or the agent's), drag the handle on the top edge of the box upwards ("Drag to resize the commit message box"); the height is remembered for every project. Or click Expand: the Commit message editor opens full screen with the same sparkle, Commit and Commit + Close buttons; Cmd/Ctrl+Enter commits, Esc or Close closes. Every keystroke there is the same hand-typed draft as in the box.
Rules once, forever: click the gear, write your team's convention in plain text (up to 1,000 characters), Save rules. Every generation on that project follows it; the rules sync with your account across machines.
Settings
commitFormatRules(global, Settings > Git > Commit format rules; project override in Project settings > Git; folder default in Folder settings > Git): free-form rules the generator must follow. The nearest level wins: project, then folder chain, then global.agentCommitMessage(global, Settings > Git > Agents write their own commit message, on by default; project override in Project settings > Git; per-agent pin in Edit agent > Commit message in the Changes tab): whether the agent writes the commit message itself or the field guesses one from its session title. The nearest level wins: agent, then project, then global. When off, the agent'sgit_set_commit_messagetool is refused.
Agent tools (MCP)
git_set_commit_message({ message }): the agent pre-fills the commit field of its own pill in the Changes tab with its final commit line (optional body after a blank line). It commits nothing and runs no git command; a hand-typed message stays (the answer then sayskeptUserDraft); refused whenagentCommitMessageis off for that agent or project. The answer carries the format rules in force so the agent can check its line before calling. One write per commit cycle: the box is filled only when empty (a later call changes nothing and answersalreadySet), and a commit of that agent's files from the desktop (or/clearon the agent) clears it, which starts a fresh cycle. A commit made from the phone does not clear it.
Providers
Independent of the agent CLI: it reads the git diff, not the agent, so it behaves the same whatever produced the changes. The pre-fill's session titles and ticket titles are provider-agnostic too.
Mobile
Partly. The phone's Changes screen has the same pre-fill as the desktop, in the same order: the message the agent posted with git_set_commit_message, then the ticket type and title (with reporter credit), then the session title, then the notification. The Agents write their own commit message setting is honoured on the phone (agent pin, then project, then global) but changed from the computer only. The AI bubble, the resize handle and the full-screen editor are not on the phone: its message field simply grows with the text.
Limits
- Monthly allowance per plan: 5 generations on Free, 100 on Plus, unlimited on Pro (a fair-use ceiling applies and is not displayed). One free try without an account. Failed generations do not count; counters reset each calendar month. Your own OpenAI key keeps it running past the allowance, see Bring Your Own OpenAI Key.
- The diff is truncated to about 15,000 characters before sending.
- Language: the draft's language; with an empty draft, the interface language.
- Only the short draft and the produced message are logged for quota counting, never the diff.
Common questions
- What does it read? The diff of the files scoped to the commit, collected on your machine, sent only on click.
- Is my diff stored? No. Used for that one generation, then discarded.
- I typed part of the message, will it be overwritten? No: the proposal applies only when you click Use this message, and manual input is remembered per agent filter.
- How is this different from the automatic pre-fill? The pre-fill is free, unlimited and reads no diff (ticket, session title, notification). The AI reads the actual changes.
- Which message ends up in the box? In this order: what you typed by hand, then the line the agent posted with
git_set_commit_message, then the backlog ticket (type and title, reporter credited), then the session title, then the latest notification. With Agents write their own commit message on, the session title and notification guesses are skipped. - Why did my agent say its commit line in the chat instead of filling the box? Either you had typed a message by hand (it is never replaced), or the setting is off for that agent, project or globally: the agent then gives its line in its answer.
- My agent's later turns no longer update the commit box. On purpose since 1.188.0: before, an agent working over several turns rewrote the box every turn and erased the previous message. The first message stays until you commit that agent's files from the desktop or
/clearthe agent; the agent keeps giving its current line in its answer. Edit the box by hand if you prefer the newer line. - Which format? Conventional Commits (feat, fix, refactor, chore, docs, style, perf, test), subject under 72 characters, short body only when needed; your rules take priority.
Related
- Commit Context: attach the agent conversation to the same commit.
- Per-Agent Review: the Changes filter per agent that scopes the diff.
- Backlog Task Board: where the ticket title of the pre-fill comes from.
- Bring Your Own OpenAI Key: unlimited generations on your key.