The Git Panel
The Git panel in the Status Panel provides a full Git interface for your project. It tracks file changes, manages commits, handles branches, stashes, and pulls — all without leaving the app.
The panel manages two separate Git repositories simultaneously:
- Project — Your main project code. The tab label shows the number of changed files
- Skills — Your Claude Code skills stored in
.claude/skills/. The skills repo is shared across projects so you can reuse skills and create new ones using existing skills as templates
Both repos share the same UI components and actions. The panel refreshes automatically every 15 seconds and updates instantly when changes are detected via live connections.
Panel Layout
Each repo tab shows four sections, stacked vertically:
Repository info
The top section displays the current branch name, how many commits you’re ahead or behind the remote, and the repository path.
Quick Commit
A text input pre-filled with the current chat title (project repo) or the relevant skill names (skills repo). Type your commit message, press Enter or click the Commit button. This action stages all changed files (including untracked files), commits them, and pushes to the remote — all in one step.
For the skills repo, a pull with rebase runs automatically before committing to avoid conflicts. If there are no file changes but you have unpushed commits, clicking Commit will push them to the remote.
A successful commit triggers a confetti celebration with a sound effect. The commit is automatically linked to the current chat conversation so you can trace back from any commit to the AI discussion that produced it.
Toolbar
The toolbar above the file list provides three groups of controls:
- Left — Pull split-button (main action + dropdown for stash operations), a status icon (check when clean, warning when changes exist), a files dialog button to browse the full file tree, and a commits button that shows a count badge and opens a dropdown listing all commits from the current chat session, making it easy to review what the AI has done during the session
- Center — Branch dropdown showing the current branch name. Click to open branch management options (switch, create, merge, inspect, delete)
- Right — Undo All button that reverts all unstaged changes and deletes untracked files
File list
Each changed file is displayed with four details:
- Status icon — Color-coded by change type: blue for modified, green for added, red for deleted, cyan for renamed, green for untracked. Click the icon to open the file editor with the file in its current state
- File path — Clickable, opens the diff dialog
- Action button — Undo icon to revert an unstaged file, or Unstage button to move a staged file back to unstaged
The file list truncates at 1,000 files with a “show more” button to load the rest.
Pull and Stash Operations
The pull button in the toolbar is a split button — click the main area to pull with rebase, or click the dropdown arrow for additional operations:
- Pull — Fetches remote changes and rebases your local commits on top. This is the default action
- Stash — Saves your current uncommitted changes to a named stash. Opens a dialog where you can optionally enter a stash message. Your working directory reverts to the last committed state
- Unstash — Applies a previously saved stash. Opens a selection dialog listing all stashes with their index and message (formatted as
stash@{N}: message). Select one to pop it - Stash-Pull-Rebase — Combined workflow: stashes your changes, pulls from remote with rebase, then leaves the stash for you to apply manually when ready
- Stash-Pull-Rebase-Unstash — Fully automated workflow: stashes, pulls with rebase, and immediately unstashes your changes back. Use this when you want to sync with remote without interrupting your work
Branch Management
Click the branch dropdown in the toolbar center to open the branch menu with five operations:
- Switch Branch — Opens a searchable dialog with all branches listed. Radio button selection, with a “current” badge on the active branch. The current branch is disabled for switching
- Create Branch — Opens a dialog to enter a new branch name. Names must contain only alphanumeric characters, hyphens, underscores, and slashes — no spaces
- Merge Branch — Opens a branch selection dialog to choose which branch to merge into the current one
- Inspect Branch — Opens the Commits page filtered to the current branch
- Delete Branch — Opens a branch selection dialog. Deleting a branch is a destructive action and requires confirmation
File Operations
Besides the one-step Quick Commit, you can manage files individually:
- Stage file — Mark an unstaged file for inclusion in the next commit. Each file item has its own action button for staging
- Unstage file — Move a staged file back to unstaged. Click the Unstage button on a staged file
- Undo file — Revert a single file to its last committed state. Uses the undo icon on unstaged files
- Undo All — Revert all unstaged changes across all files and delete untracked files. The toolbar button in the right section
File statuses refresh in real-time via live connections. Operations like staging and undoing trigger immediate visual updates without waiting for the next refresh cycle.
Viewing Diffs
Click any file path in the file list to open the diff dialog. The dialog shows the full difference between the current version and the last committed version, with syntax highlighting powered by highlight.js.
The diff dialog provides:
- File path in the dialog header
- View mode toggle — Switch between side-by-side (old and new versions next to each other) and line-by-line (unified view with additions and deletions interleaved)
- Edit button — Opens the file in the file editor so you can make changes directly
- Theme-aware rendering — Adapts to your dark or light theme setting
Binary files (including SQLite databases) show “Binary file — diff not available” instead of a diff view.
Commits Page
Open the Commits page by clicking the commits button (with the count badge) in the Git panel toolbar. This page shows the full commit history for the selected repository.
Filter and navigation
The top of the page has a filter bar with a text input for searching commit messages. When filtering by branch (via the Inspect Branch action), a branch badge appears showing which branch is active. A refresh button imports and links new commits.
Commit list
Commits are displayed in a paginated list (10 per page). Each entry shows:
- Commit message title
- Relative timestamp, branch name, and short commit hash
- A chat icon if the commit is linked to a conversation
Click any commit to see its full details, including the complete diff of all files changed in that commit. The page supports page navigation showing the total number of commits.
Chat-commit linking
When the AI creates a commit through Quick Commit in the project repo, it’s automatically linked to the current chat conversation. This integration connects your Git history with your conversation history — from any commit, you can trace back to the AI discussion that produced it. This provides full traceability of how decisions were made and what context led to each change.