A beautifully styled, 100% git compatible tool built to make git operations intuitive and enjoyable for developers.
• Interactive prompts for commit messages and branch names • Smart defaults for common git operations • Beautiful styling with clear visual feedback • Beautiful log view with styled commit history and graph support • Auto-push and upstream management • Conflict-aware merge operations • Safe reset command with confirmation prompt
go build -o tt .Get started by running: tt init
tt init- Initialize a new git repositorytt add- Stage files for committt cortt commit- Commit changes with stylett reset- Hard-reset the repository after confirmationtt branch- Create, switch, and list git branchestt checkoutortt co- Interactively checkout branches or commitstt merge- Merge branches with intelligent conflict handlingtt push- Push changes to remote repositorytt pull- Pull changes from remote repositorytt clone- Clone a repository into a new directorytt log- Show commit history with beautiful formattingtt stash- Stash changes with stylett status- Show git repository statustt tag- Create and manage git tagstt revert- Revert a commit by creating a new commit that undoes the changestt diff- Show styled git diff with optional AI overviewtt aic- Generate AI-powered commit messagestt ap- Generate AI commit message and push changestt get- Get the current configuration valuestt set- Set configuration values
The tt diff command displays git changes with enhanced styling and optional AI-powered overview.
tt diffGenerate an AI summary of your changes:
tt diff --ai
# or
tt diff -att diff --stat
# or
tt diff -stt diff --name-only
# or
tt diff -nThis will:
- Display changes with color-coded additions (green) and deletions (red)
- Style diff headers with bold blue
- Optionally generate AI summary explaining what the changes achieve
- Support all standard git diff arguments (e.g.,
tt diff HEAD~1,tt diff main..feature)
The tt reset command performs a hard reset of the repository, discarding all uncommitted changes. It requires user confirmation before proceeding.
tt resetThis will:
- Show a confirmation prompt with the commands to be executed
- If confirmed, run
git add .followed bygit reset --hard - Display success or error messages accordingly
Warning: This action cannot be undone. Make sure to backup any important uncommitted changes.
The tt branch command provides comprehensive branch management with listing, creating, and switching capabilities.
tt branchThis will:
- Display the current branch
- List all local branches with the current branch marked
- Show a paginated commit graph with recent commits
tt branch <branch-name>
# Optionally auto-push the new branch to remote
tt branch <branch-name> --pushtt branch <branch-name>If the branch exists, tt will switch to it (no action required). If the branch does not exist, tt will create a new branch with that name.
tt branch delete <branch>
# Delete a remote branch (requires confirmation phrase)
tt branch delete --remote <branch>This will:
- Verify the branch exists and is not the current branch.
- For local branches, try to delete safely with
--merged. - If the branch has unmerged commits, prompt for confirmation to force delete.
- For remote branches, require typing the exact phrase "confirm delete remote " to proceed.
- Display success or error messages accordingly.
The tt stash command provides an easy way to stash your changes, always including untracked files for simplicity.
tt stash "WIP: login fix"Or without message for interactive prompt:
tt stashThis will:
- Show a preview of files to be stashed
- Prompt for a message if not provided
- Stash all changes including untracked files (no need to remember
--include-untracked)
tt stash listShows a simplified list of your stashes with dates and messages.
tt stash popApplies the latest stash with confirmation and warns about potential conflicts.
The tt checkout command provides an interactive way to checkout branches or specific commits.
tt checkout
# or
tt coThis will:
- Show current branch or detached HEAD state
- Warn about uncommitted changes (if any)
- Present an interactive menu to choose between:
- Checkout a branch - Select from local branches with last commit info
- Checkout a commit - Choose from recent 20 commits or search all
- For commit checkout, show a detached HEAD warning and require confirmation
- Display success message with new branch/commit info
Features:
- Searchable/filterable branch and commit lists
- Shows commit messages, authors, and dates for context
- Clear warnings about detached HEAD state when checking out commits
- Validates uncommitted changes and explains git's behavior
The tt add command stages files for commit, mirroring git add with styled output.
tt add -A
# or
tt add --alltt add file.txt
tt add src/
tt add -p file1.txt -p file2.txtThis will:
- Display a header and progress indicator
- Execute
git addwith the specified files - Show success or error messages with styling