Tower
Native Git client for Mac and Windows with visual history and workflows
A focused visual wrapper around Git can cover everyday local review and commits. Tower also supplies mature branch, conflict and recovery workflows; reproducing that breadth and polish is a larger project than the scoped client here.
Build verification: not recorded. How we judge buildability
What you give up
- mature undo and recovery workflows
- interactive rebase and conflict-resolution assistance
- hosting integrations and advanced branch workflows
- Mac and Windows polish and ongoing support
Why people still pay
Tower brings common Git operations, staging, history, conflict handling and advanced branch workflows into a maintained native interface. People pay for that integration and recovery experience rather than assembling it themselves.
Your build guide
The stack, security requirements, and agent rules for a focused replacement.
Before you start
- Runtime and tools: SwiftUI/AppKit and the installed Git command-line client, with local UI preferences; Git owns repository state.
- Before starting: A Mac with Xcode, Git on PATH and a disposable local repository with staged, unstaged and conflicted examples; no model API is required.
Use these project rules and optional skill references alongside the prompt. Review each skill before adding it to your agent; the AGENTS.md export includes the same guidance.
Project rule — domain: Store RepositorySelection and UI preferences; Git remains the authoritative data store. Track working-tree/index state separately and refresh after every operation.
Project rule — scope and recovery: Correct the prior AI-agent scope. Invoke Git with argument arrays, display commands and require explicit confirmation for reset/rebase/force-push; defer destructive operations until their recovery UX is designed.
Project rule — acceptance: Stage one hunk, edit another and commit; the commit contains only the staged hunk, while a failed commit leaves unstaged work intact and visible.
Project rule — delivery: document real setup commands and permissions; do not claim a build, accuracy level, performance result or security certification that has not been demonstrated.
Recommended skill: swiftui-expert-skill — design native SwiftUI state, accessible controls and permission/error views for the proposed Apple-platform interface. Follow the maintainer's installation instructions and match its requirements to the chosen runtime.
Recommended skill: swift-concurrency — isolate capture, background work and UI updates, and make cancellation invalidate late callbacks. Follow the maintainer's installation instructions and match its requirements to the chosen runtime.
Implementation plan
Phase 1
Pin the working slice and create its example input: Build a focused visual Git client for one selected local repository with status, diff, stage/unstage, commit and history views. Confirm setup: A Mac with Xcode, Git on PATH and a disposable local repository with staged, unstaged and conflicted examples; no model API is required.
Phase 2
Implement persistence and write-time invariants before decorating the UI: Store RepositorySelection and UI preferences; Git remains the authoritative data store. Track working-tree/index state separately and refresh after every operation.
Phase 3
Connect the working view to real saved state. Pass Git arguments without a shell and separate working-tree changes from staged changes. Refresh state after commands and require explicit confirmation for destructive operations.
Phase 4
Expose the app-specific limits and recovery path in context: Correct the prior AI-agent scope. Invoke Git with argument arrays, display commands and require explicit confirmation for reset/rebase/force-push; defer destructive operations until their recovery UX is designed.
Phase 5
Walk through this concrete acceptance case and preserve its exported evidence: Stage one hunk, edit another and commit; the commit contains only the staged hunk, while a failed commit leaves unstaged work intact and visible. Finish the README and backup/restore instructions; report unfinished capabilities explicitly.
Build the following focused alternative to Tower. Implement the focused workflow below first; the verdict is not evidence of a completed or production-certified build. WORKING SLICE Build a focused visual Git client for one selected local repository with status, diff, stage/unstage, commit and history views. SETUP AND ARCHITECTURE Use SwiftUI/AppKit and the installed Git command-line client, with local UI preferences; Git owns repository state. Prerequisites: A Mac with Xcode, Git on PATH and a disposable local repository with staged, unstaged and conflicted examples; no model API is required. Before integrating anything, record actual versions and permissions, plus model files or provider limits only where used, in the README; make unavailable dependencies visible rather than simulating success. DOMAIN MODEL AND INVARIANTS Store RepositorySelection and UI preferences; Git remains the authoritative data store. Track working-tree/index state separately and refresh after every operation. IMPLEMENTATION CONTRACT Pass Git arguments without a shell and separate working-tree changes from staged changes. Refresh state after commands and require explicit confirmation for destructive operations. Provide an input/setup view, the main work view, and a review/export view appropriate to this workflow. Preserve the last saved state if a job or save fails. Include empty, loading, permission-denied, partial and retryable-error states. Log identifiers and error categories without secret values or unnecessary private content. APP-SPECIFIC BOUNDARY AND RECOVERY Correct the prior AI-agent scope. Invoke Git with argument arrays, display commands and require explicit confirmation for reset/rebase/force-push; defer destructive operations until their recovery UX is designed. ACCEPTANCE SCENARIO Stage one hunk, edit another and commit; the commit contains only the staged hunk, while a failed commit leaves unstaged work intact and visible. Also reopen the app after an interrupted operation, confirm the saved record/export remains inspectable, and document the recovery action. These are implementation acceptance requirements, not a claim that this guide has been tested. DELIVERY Deliver a runnable repository with migrations or project-format versioning, a non-sensitive example, environment/permission setup, the exact manual acceptance steps, and a backup/export-and-restore walkthrough. Implement the working slice before optional integrations; list any deferred paid-product capabilities honestly. Do not add capabilities outside the working slice just to resemble the original product. PROJECT RULES FOR AGENTS.md Keep the domain invariants above executable at the write boundary. Propose scope changes before adding providers or permissions. Never fabricate source evidence, publish results, identity matches or successful delivery. Preserve user originals and require an explicit confirmation for destructive changes or external publication.
$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy or download AGENTS.md · generated from this app's build plan
prompt copied. want to know what dies next week?
new verdicts + top votes, weekly. free. one-click out.
Alternatives to building your own
all 6 free alternatives to Tower →· no votes, no pay-to-list · just what's real
Tower pricing
| plan | monthly | annual (per mo) | what you get |
|---|---|---|---|
| basic | — | $5.75/user | 1 user; core native Git client features.Annual-only price is $69/year. |
| pro | — | $10.75/user | 1 user; advanced workflows and integrations.Annual-only price is $129/year; published team discount is 10% at 10+ seats. |
| enterprise | — | $12.42/user | Enterprise controls and support.Annual-only price is $149/year. |
free tierno permanent free tier; 30-day Pro trial only
billingannual only; no monthly plan
hidden costsPrices can be reduced for 10+ Pro seats; taxes may apply. Free licenses exist only for approved students, teachers, educational institutions and nonprofits, and are not a general free tier.
pricing sources checked 2026-08-14 · pricing source ↗
Questions about Tower
Can you build your own Tower with AI?
The verdict is yes for the scoped workflow. A focused visual wrapper around Git can cover everyday local review and commits. Tower also supplies mature branch, conflict and recovery workflows; reproducing that breadth and polish is a larger project than the scoped client here.
What does the Tower build prompt cover?
The prompt starts with this scope: Build a focused visual Git client for one selected local repository with status, diff, stage/unstage, commit and history views. Full-product capabilities excluded from the comparison include: mature undo and recovery workflows; interactive rebase and conflict-resolution assistance; hosting integrations and advanced branch workflows. Follow the implementation plan and its prerequisites before expanding the build.
How do I use the prompt, AGENTS.md and agent skills?
Start with the Tower prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.
How long will this Tower project take?
The catalogue estimate is one sitting for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.
What would I give up by replacing Tower?
mature undo and recovery workflows; interactive rebase and conflict-resolution assistance; hosting integrations and advanced branch workflows; Mac and Windows polish and ongoing support. Tower brings common Git operations, staging, history, conflict handling and advanced branch workflows into a maintained native interface. People pay for that integration and recovery experience rather than assembling it themselves.
What can I use instead of building Tower?
Lazygit: Git's common chores in a terminal UI; mouse polish not included. GitHub Desktop: A calm visual Git client that stops before workspaces become a product category. SourceGit: A small cross-platform Git GUI that mostly minds its own business. Compare all listed options at https://howtovibecodeit.dev/tower/alternatives. Check each option's license, hosting needs and feature limits.