The Git panel
Git is a version control system: it keeps the project’s change history, letting you return to earlier versions, work on several variants at once, and synchronize the project with other computers and servers. The Git panel in the chat’s status panel gives full access to that history without leaving the app: change tracking, commits, branches, stash, and pull.
The panel manages your project’s single Git repository — it includes both the code and the skills (.claude/skills/). All changes — code, skills, configuration — are visible in one shared list.
The panel refreshes itself: every 15 seconds, and instantly on changes, over live connections.
Panel layout
Every repository tab is built, top to bottom, of four sections:
Repository info
The top section shows the current branch name, how far you are behind or ahead of the remote repository (in commits), and the repository path.
Quick commit
A commit is saving a “snapshot” of the project with a describing message: what exactly changed and why. The quick commit field is pre-filled with the current chat title. Type a description, press Enter or the Commit button — and in one action all changed files are staged (including new ones), a commit is created, and the changes are sent to the remote repository. Staging is “marking” the files that will go into the next commit.
A successful commit is celebrated with festive confetti and a sound. The commit is automatically linked to the current chat conversation: from any commit you can return to the discussion with the agent that produced it.
Automatic commits (before an auto-clickable button fires, before sending a prompt from the AutoSend queue or an AutoFix task) pass quietly — no confetti and no sound. While such a commit runs, the file list is briefly cleared, and when it finishes, a green “Autocommitted and pushed” badge appears at the top for 10 seconds — so you immediately see where the changes went. Autocommits can be turned on and off in the Buttons card in the settings, and for prompts — in the AutoSend settings.
The toolbar
The toolbar above the file list is divided into three groups:
- On the left — a split Pull button (the main action + a dropdown for stash operations), a status icon (a check mark when everything is clean; a warning when there are changes), a files dialog button for viewing the full tree, and a commits button with a counter: it shows all commits of the current chat session — handy for checking what the agent did during the conversation
- In the center — a branch dropdown with the current branch’s name. Click it to manage branches: switch, create, merge, inspect, delete
- On the right — the Undo All button: reverts all uncommitted changes and deletes new (untracked) files
The file list
Every changed file is shown with four details:
- Status icon — the color shows the change type: blue for modified, green for added, red for deleted, cyan for renamed, green for new (untracked). Click the icon to open the file editor with the file’s current state
- File path — clickable, opens the diff dialog (a version comparison)
- Action button — an Undo icon for reverting an uncommitted file, or an Unstage button that returns a staged (indexed) file to the uncommitted ones
The list is limited to 1000 files; a “show more” button loads the rest.
Pull and stash operations
The Pull button is split: press the main area to pull with rebase, or the dropdown arrow for additional operations. Pull means “fetch changes from the remote server”; push means “send yours”. Rebase is a tidy way to combine histories: your local commits are placed on top of the received changes, and the history stays linear and readable.
- Pull — fetches the remote changes and rebases your local commits on top of them. The default action
- Stash — “set aside” the current uncommitted changes: they are saved into a named stash (you can give it a description), and the working folder returns to the last commit. Convenient when you need to switch to another task for a while without losing your work in progress
- Unstash — takes a previously set-aside stash and applies its changes back. A list of all stashes opens in the
stash@{N}: messageformat — pick the one you need - Stash-Pull-Rebase — a combined process: set your changes aside, fetch the server’s changes with rebase, then apply the set-aside ones manually when you are ready
- Stash-Pull-Rebase-Unstash — a fully automated process: stash, pull with rebase, and immediately apply your changes back. Use it when you need to synchronize with the server without interrupting your work
Managing branches
A branch is a separate line of development: like a parallel variant of the project that does not interfere with the main version. Convenient, for example, for preparing a new version in a separate branch without touching the working one. The branch dropdown in the center of the toolbar opens a menu with five operations:
- Switch Branch — opens a dialog listing all branches (with name search); the current branch is marked and disabled for switching
- Create Branch — a dialog for the new branch’s name. The name can contain only letters, digits, hyphens, underscores, and slashes — no spaces
- Merge Branch — choose which branch to merge into the current one (combining two lines of development)
- Inspect Branch — opens the commits page filtered by the current branch
- Delete Branch — a branch picker; deletion is irreversible, so it asks for confirmation
File operations
Beyond the one-step quick commit, files can be managed individually:
- Stage a file — mark an uncommitted file for inclusion in the next commit. Every list item has its own button
- Unstage a file — return a staged file to the uncommitted ones: the Unstage button on a staged file
- Undo a file — return a single file to its last committed state: the undo icon on uncommitted files
- Undo All — revert all uncommitted changes across all files and delete new (untracked) files: the button on the right of the toolbar
File statuses update in real time. Staging and undoing are reflected on screen immediately — no need to wait for the next refresh cycle.
Viewing diffs
A diff is a before/after comparison: the full difference between the current version of a file and the last committed one, with syntax highlighting. Click any file path in the list to open the diff dialog.
The diff dialog offers:
- The file path in the dialog header
- A view mode switch — side-by-side (old and new versions next to each other) or line-by-line (a single view alternating additions and removals)
- An Edit button — opens the file in the file editor to make changes directly
- Theme adaptation — automatically adjusts to the dark or light theme
For binary files (including SQLite databases) it shows “Binary file – diff not available” — such files cannot be compared.
The commits page
The commits button (with its counter) on the Git toolbar opens the commits page — the full change history of the selected repository.
Filter and navigation
At the top of the page is a filter panel with a search field for commit messages. When filtered by branch (via the “Inspect Branch” action), a label with the active branch’s name appears. The refresh button pulls in and links new commits.
The commit list
Commits are shown paginated (10 per page). Each record has:
- The commit message’s subject line
- The relative time, the branch name, and the short commit hash (a unique identifier)
- A chat icon when the commit is linked to a conversation
Click any commit — the full details open, including the diff of all files changed in that commit. The page supports pagination and shows the total number of commits.
Linking a chat and a commit
When the agent creates a commit through the quick commit in the project repository, it is automatically linked to the current chat conversation. Git history connects with discussion history: from any commit you can return to the conversation that created it. This shows how decisions were made and what context led to each change.