Skip to content

// features

Every feature, in one place.

The whole catalog, grouped and scannable.

Diffs & staging

  • Unified & split diffs, syntax-highlighted in ~190 languages
  • Line, hunk & file staging — drag the line numbers or use a keybind; one drag picks up added and removed lines together in unified or split view, with Shift to take one side
  • Stage or discard part of a brand-new, untracked file
  • Image diffing & collapsible surrounding context
  • Raw ⇄ Preview toggle on markdown & MDX diffs — read the change as rendered prose
  • Filter the changes list by path or category
  • Flat list ⇄ compacted directory tree in the Changes panel — collapsible folders, keyboard-first
  • Per-file added/deleted line counts on the changes list
  • Commit with co-authors suggested from history; amend, undo, revert
  • Pop the commit box out into a dialog — a roomier editor with your staged files alongside
  • Recoverable, recycle-bin discards

Branches & history

  • Branch compare — ahead/behind, three-dot diff, jump to PR, commit menu + tags
  • Update a branch from its upstream — no checkout needed
  • Push or publish a branch to any remote — no checkout needed
  • Start a branch from any base — another local branch or a remote ref
  • Check out or delete remote-only branches from the switcher
  • Archive branches — hide from the switcher without deleting
  • Clean up branches in bulk — archive or delete stale ones in one sweep, including branches merged through a pull request
  • Paged, filterable commit history with rich detail
  • File history & line blame
  • Commit-author avatars in history
  • Unpushed commits flagged in history

Rewrite & recovery

  • Interactive rebase — reword / squash / fixup / edit / drop / reorder, atomic replay
  • Change base — replay only a branch's own commits onto a new base
  • Cherry-pick commits onto the current or another branch
  • Merge preview — fast-forward / already up to date / clean / which files conflict, before you merge
  • In-app conflict editor — current / incoming / both, or mark files resolved as they stand on disk
  • Stash browser
  • Stash and reapply — one click when a pull, merge, rebase, update or switch is blocked
  • Recover lost work — git fsck for orphaned stashes, restored non-destructively
  • Operation journal — records risky ops & recovers if one is interrupted

Pull requests & review

  • PRs on GitHub, GitLab & Bitbucket + private, offline local PRs
  • Local-PR merges pre-show conflicts, resolved in an isolated worktree
  • See when a pull request won't merge cleanly — and resolve the conflicts in-app, in an isolated worktree
  • A blocked merge names why — unmet checks & required approvals (GitHub), the blocking reason (GitLab)
  • Set labels & assignees when you open a PR/MR (GitHub & GitLab)
  • A PR you're opening holds its place in its list — title, branches & draft state, then its number
  • Link related issues as you open or edit a PR — auto-detected from your branch and commits (GitHub & GitLab; Bitbucket via linked Jira)
  • Request reviewers on a PR/MR (GitHub, GitLab & Bitbucket)
  • Inline review comments — reply, resolve, apply suggestions locally
  • Compose a review from the diff — batch drafts, submit with a verdict
  • Drill into a PR's commits — per-file diffs, whole-commit & line comments
  • PR activity feed — reviews, comments, grouped commits, stale-approval marks, all timestamped
  • Comment on commits from History — whole-commit or line-anchored
  • Fork · Upstream lens — browse & work a fork's PRs and issues or the parent's
  • Fork PR maintainer actions — approve blocked workflow runs, update the branch, and push follow-ups to the contributor's fork
  • Stacked PRs — position badges and a stack navigator; create, extend, or dissolve a stack from the PR view; on GitHub, merge a stack bottom-up in one go
  • Retarget a pull request's base branch from the edit dialog — on GitHub, GitLab, and Bitbucket
  • Unfinished-review notice — a review you started on GitHub surfaces on the PR, to finish or discard
  • Triage the PR list — All | Mine | Needs review presets and whole-repo filters (GitHub & GitLab), with grouping by your review state (GitHub)

Forges & trackers

  • GitHub, GitLab & Bitbucket — first-class, each on its own identity
  • GitHub Enterprise — same features, via gh
  • Self-managed GitLab — any host glab is signed in to
  • Multiple accounts, switch the active one per host
  • Sign in & reconnect in-app — session-expired detection & token-expiry warnings, plus scope hints that reconnect with the needed scope
  • Repo switcher — forge logo & visibility badge per row, grouped by owner
  • Jira Cloud — link a project, browse & work issues in-app
  • Jira keys in branches, commits & PRs link back to the Issues tab

Issues & discussions

  • GitHub & GitLab issues, plus private local to-dos
  • Code TODOs — scan TODO/FIXME/HACK comments, jump to blame, promote to an issue
  • Issue types, sub-issues & dependencies on GitHub; related issues on GitLab
  • Issue list filters — All | Mine, plus author & label across the whole repository (GitHub & GitLab)
  • GitHub Projects — link issues & PRs to repo and owner projects
  • Project field values — read & set Status, Priority, Iteration & dates on issues and PRs
  • Project boards — a GitHub Project as a kanban, grouped by any of its single-select or iteration fields (an iteration grouping gives you a sprint board, one column per iteration), with right-click move between columns, keyboard reordering inside a column (Alt/Option+↑↓ to step, Alt/Option+Home/End for the ends, also on the card menu and in the command palette) that writes the project's own card order, and its saved views as read-only lenses (GitHub applies the filter; the board honors the sort and shows the view's fields as chips). Add existing issues and pull requests or write Markdown drafts from the toolbar and the card is there as the write lands, edit a draft's title, notes and assignees, convert a draft to a real issue, archive or remove a card, bring archived cards back into the columns with View options → Show archived cards and restore one in place from its own menu, peek at an issue or pull request card's details with Space, and pick boards for a new issue as you create it
  • Issue activity timeline — labels, assignees, milestones, renames, linked PRs, mentions & state changes, with actor avatars
  • GitHub Discussions — read, post & react
  • Close or reopen with a comment — on PRs, issues & discussions, your draft posts alongside

CI, tags & releases

  • GitHub Actions — runs, jobs, steps, re-run, cancel & dispatch
  • GitLab & Bitbucket pipelines — runs, job logs, re-run, cancel & trigger, in-app
  • CI checks rollup — pass/fail/pending/skipped, live step progress on running Actions checks, one-click re-run of what failed, batch or single job (GitHub & GitLab)
  • Tags, releases & cross-platform assets — edit notes (GitHub & GitLab), sync the updater manifest (GitHub)
  • Insights graphs — commit activity, churn & more, computed locally
  • Fork activity — a repo's recently active forks, with ahead/behind on GitHub
  • Findings tab — GitHub Dependabot/scanning alerts & advisories; GitLab SAST, secrets & code quality; Bitbucket Code Insights

Repository & workspace

  • Clone, add local, create (README/.gitignore/license) or fork
  • Explore repositories — search GitHub, GitLab & Bitbucket, then clone, fork or star
  • My work — one cross-repo inbox of your open GitHub PRs and issues, GitLab MRs and issues, and Bitbucket PRs
  • Update a fork from its upstream — fetch, then fast-forward or merge
  • Detach from a fork — remove the upstream remote; leave the fork network on GitHub, GitLab, or Bitbucket (in-app on GitLab)
  • Publish a local repo to GitHub, GitLab or Bitbucket — choose the GitHub owner or Bitbucket workspace
  • Locate a moved repo — repoint the entry and bring its local PRs, issues, review history & automations along
  • Worktree manager — create, switch, rename, lock, promote & remove, with a last-active time per worktree
  • Open a branch's worktree from its row in the branch list, with the worktree actions on the branch's context menu
  • Submodule manager — add, remove, update & track branches, edit URLs, open as repo
  • Tasks — register a repo script or write one inline and run it in an interactive terminal, kept to one repository or available in all
  • Manage tracked & ignored files
  • --force-with-lease + --force-if-includes (Git 2.30+) by default
  • Rewrite-aware divergence — a server-rebased branch gets a confirmed Reset to origin/…
  • Fork-point guard — a rebase pull asks before an upstream rewrite drops your commits
  • Auto-fetch — quiet background sync, never auto-pulls
  • Activity & notifications inbox — never miss a finished review or check
  • Per-source notification controls — in-app vs OS channels, failures-only CI, per-repo overrides
  • Environment & CLI health check
  • Native macOS menu bar — File menu with Open Recent
  • Remembers window size & position
  • Narrow windows & split-screen layouts — down to 640px, with a collapsible sidebar and diff file list
  • Themes — System, Light, Dark & a softer Slate

Admin & settings

  • Repo settings & webhooks (admin)
  • Collaborators & invitations (admin)
  • Branch rulesets — create, edit, enable/disable (admin)
  • Code security & analysis toggles (admin)
  • Danger zone — rename, archive, visibility, transfer, delete (admin)
  • GitHub Pages — source, custom domain, HTTPS (admin)
  • Actions/Dependabot/Codespaces secrets & variables (admin)
  • Edit the Sponsor button (.github/FUNDING.yml)
  • Branch-protection rules, locally
  • Promotion branches — update offers withheld on their PRs and branch menus
  • Git hooks manager — husky / pre-commit / lefthook aware
  • Edit git config — identity, default branch, line endings

Keyboard & Markdown

  • Command palette + rebindable, filterable keys — down to a single key
  • Arrow-key navigation on every list
  • Generated shortcut cheat sheet
  • GitHub-Desktop-compatible defaults
  • Markdown editor — formatting toolbar & live preview
  • Collapsible comment box — reclaim reading space, actions stay docked
  • @mention & #reference autocomplete, plus !123 on GitLab — GitHub & GitLab comments, replies, release notes, local PRs & issues
  • Reference autolinks — #123, @user, and GitLab's !123 open the issue, pull request, or profile they name
  • Reference preview cards — hover or Tab to a #123 or !123 for its state, title & author, or to an @user for their avatar & handle
  • Link previews — hover or Tab to a link for its domain & full URL, plus the page's title, description & image
  • Fullscreen image viewer — screenshots in any rendered body and both sides of an image diff, with fit/100% zoom and arrow-key stepping in fit view

AI · generate & review

  • Generated commit messages, PR & issue titles/descriptions
  • AI branch names — from your in-progress changes, or the branch's own committed work
  • AI suggests PR/MR labels from your repo's existing set
  • AI issue drafting from your repo's templates
  • AI repo descriptions & topics
  • Generate a task's script from plain English — or analyze one to document it
  • AI code review & security audit on any PR
  • Hand review context to the AI reviewer — per-branch notes deposited by your agent, read by every review (automated or one you start) with a per-run opt-out
  • Agentic review — reads the full diff, files, search & history, read-only
  • Reviews keep running in the background & finish in the tray
  • Queue the other review mode while one streams — runs it next
  • Review effort — dial the reviewer's reasoning from a light pass to Max
  • Review timeout — agentic reviews get 20 minutes, or pin your own limit
  • AI ignore patterns — .gitignore syntax, keeping chosen files out of generation and review
  • AI excluded files view — every hidden file with the rule that hid it, a warning on a ! line that decides nothing, and rule removal in place
  • Iterative reviews build on the last round & other bots' findings
  • Re-reviews remember the discussion — triage replies honored, context sized to your model
  • Reviews converge — a fuller first round, non-blocking leftovers listed apart
  • Every re-review ends with a verdict — blocking issues remain, or merge when ready
  • Reviews know where your docs live — one finding names every stale surface
  • AI reviews are clearly machine-authored — post as a GitLab project bot
  • Automations — review or audit on commit, PR open, or new commits, with notifications for everything or failures only
  • Automation history — a per-repo log of what ran, what was skipped & why, plus run an automation on demand
  • Resolve merge conflicts with AI — review the proposal, then accept
  • Debug failed CI with AI — logs to a root-cause & fix

AI · agents & sessions

  • Delegate a task to a Claude, Codex, Copilot or opencode agent — searchable model picker (opencode's live catalog), any typed id accepted
  • Default agent — pin one, or follow a CLI-agent AI provider
  • Watch the agent work step by step, with an inline diff per edit
  • Best-of-N — run one task across agents/models, keep the best
  • Run agents in a Docker/Podman sandbox (opt-in), per session or by default
  • Add per-repo tools to the agent container via a custom image
  • Integrated terminal in each session (host & container)
  • Research a topic with web search — Brainstorm & Deep research, cited
  • Plan a task into an agent-ready issue (read-only)
  • Hand an issue or plan to an agent to implement
  • Agent sessions — tabs, search & completion alerts
  • Slash commands & skills in the agent composer

AI · MCP & providers

  • Use GitDesktop as an MCP server — read-only default, opt-in write ladder
  • Trigger GitDesktop's AI generation from an external MCP client
  • Bring your own MCP servers, opted in per session
  • Browse the official MCP registry to add servers
  • Bring your own model — Anthropic, OpenAI, Google AI Studio, OpenRouter, Ollama, or a keyless agent CLI (generation & review)
  • Google AI Studio as a first-class provider — paste an AI Studio key and pick from your live Gemini catalog
  • Point AI at a custom or LAN Ollama / OpenAI-compatible server
  • Keys live in your OS keychain; one switch hides every AI surface

That's a lot to keep open all day.

Free, open source, and local — for GitHub, GitLab, and Bitbucket.