Git integration
Using Clanker Grid
Git integration
Built-in git tools for common operations without leaving the app.
Git Menu
Click the Git button in the header to access:
- Status summary (with change count)
- Branch operations
- Linked worktree management
- Merge tools
- Stash management
- Commit history
- Remote operations
File Explorer Git Integration
The file explorer shows git status indicators:
- Modified files display with an indicator
- Untracked files are visually distinguished
- Local Git changes are reflected via local file watching. SSH Git status uses its existing polling; remote Explorer and open editor files additionally use bounded batched metadata polling for the active workspace.
Status
Current status shows:
- Current branch
- Unstaged changes
- Staged changes
- Merge/rebase state
- Ahead/behind upstream tracking
Branching
From the Git menu → Branches:
- View current branch
- Switch branches
- Create new branch
- Delete branch
Worktrees
Create or adopt a working copy through New isolated agent beside the harness launchers, not the Git menu. Selecting a harness and a new branch, available existing branch or linked worktree runs nothing until Launch. The main checkout is not switched.
The Git menu's Worktrees section lists linked checkouts (not the main checkout) and reloads with the menu's refresh. Rows distinguish In use, Managed (attached to this workspace) and Unmanaged, with Locked or Missing where applicable.
- Remove… is unavailable for the workspace's own checkout, active, locked or missing rows. Removal checks branch identity, dirty/untracked/ignored contents and workspace, terminal and dev-server usage. Managed removal first releases the unused checkout context; if later removal fails, files remain on disk as unmanaged. The branch is retained.
- Unlock… confirms Git's recorded lock reason and unlocks that listed linked worktree only. Removal is a separate action.
- Prune missing worktrees… confirms repository-wide cleanup of stale Git metadata. It deletes no branch or directory and refuses while conflicting usage or removal operations remain.
- Repair… in the isolated-agent picker opens this same management flow. Forget stale checkout… rechecks reconciliation and only forgets an unused checkout that is still gone.
Local removal preserves checkout files; SSH removal uses private host recovery folders and completion journals. See Workspaces for recovery and reservation behavior.
Stashing
Stashes section provides:
- List stashes with descriptions
- Create stash
- Apply, pop, or drop stashes
- Clear all stashes
Merging
Merge section:
- Select target branch
- Initiate merge
- Abort in-progress merge
- Status indicators for conflicts
Remote Operations
Access via the Git menu header:
- Fetch — Download refs from remote
- Pull — Fetch and merge (supports rebase)
- Push — Upload local commits to remote
Remote operations use Git and configured remotes; they do not require provider API integration. Pull and Push require an upstream branch. If the current branch has no upstream, Publish branch is available when a remote exists.
For an SSH workspace, Clanker runs Git on the workspace host over SSH in the registered remote repository. Git authentication and remotes for that repository use the remote host's configuration. The desktop never treats a same-path local checkout as the remote repository.
Remotes
The Remotes section allows you to manage git remote connections:
- View remotes — See all configured remotes with their URLs
- Add remote — Connect to a new remote repository (SSH or HTTPS URLs)
- Rename remote — Change the name of an existing remote
- Remove remote — Disconnect a remote
Adding a Remote
- Open the Git menu
- Click the + button in the Remotes section
- Enter a name (e.g.,
origin,upstream) - Enter the remote URL:
- SSH:
git@github.com:owner/repo.git - HTTPS:
https://github.com/owner/repo.git
- SSH:
- Click Add Remote
Workflow Example: Connect to GitHub
- Create a new repository on GitHub (github.com)
- Copy the remote URL from GitHub
- In Clanker Grid, open the Git menu → Remotes
- Click Add remote, name it
origin, paste the URL - The selected repository is now connected to the GitHub remote; for an SSH workspace, that configuration is stored in the remote repository
Committing
Commit Dialog
- Open Git menu → Commit
- Stage files (individual or all)
- Enter commit message
- Click Commit
AI Commit Messages
Optional AI-assisted commit messages:
- Enable in Settings → AI Commit
- Select provider (Codex, OpenCode, Pi, Oh My Pi, or Antigravity)
- Select model
- In commit dialog, click Generate Message
The AI analyzes your changes and generates a commit message.
AI commit message generation is unavailable for SSH workspaces in V1. Manual staging and commits run on the remote host.
History
View commit history with:
- Commit hash
- Author
- Date
- Message
- Diff summary for each commit
VCS Provider Integration
Clanker Grid integrates with remote VCS providers to surface context about your repository.
Supported Providers
- GitHub — PRs, checks status, reviews
- GitLab — Merge requests, pipelines, approvals
- Bitbucket — Pull requests, pipeline status, participants
Provider detection is automatic based on your git remote URL.
Provider Context
When connected to a VCS provider, the Git menu displays:
- PR/MR Badge — Shows current PR number, title, and state
- Status Indicators — CI/CD status (pending, success, failure)
- Review State — Approval status when available
Quick Navigation
Access provider links via the dropdown menu:
- Repository
- Pull/Merge Request
- Create Pull/Merge Request
- Branches
- Issues
- Releases
- Actions/Pipelines
Links open in your default browser.
Credential Management
Configure authentication for remote operations:
SSH Keys
- Open Settings → Credentials
- Click Generate SSH Key
- Copy the public key
- Add to your VCS provider (Settings → SSH Keys)
Personal Access Tokens
- Open Settings → Credentials → Access Tokens
- Select provider (GitHub, GitLab, Bitbucket)
- Enter your token
- Click Save
New tokens are encrypted with Electron's safeStorage; saving fails when OS-backed encryption is unavailable. See Configuration.
For Git commands in an SSH workspace, authentication happens on the remote host using that host's SSH keys or Git credential helpers. Keys generated on the desktop are not copied to the remote host automatically. Desktop PATs are used for provider API context, not to configure remote Git authentication.
Credential Status
The Git menu shows credential status for your remote:
- SSH key configured ✓
- PAT stored ✓
- Git credential helper status