GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.7.0
A conflict editor that fills the window
Conflicts now open across the whole window: ours and theirs side by side, aligned row by row, with line numbers and syntax colors, and the merged Output live below
Tick a side for each conflict. Tick both to keep both, in the order you ticked them. The checkbox on a pane's header picks that side for every conflict
conflict 1 of N with ▲ ▼ jumps both panes between conflicts, and a conflict you haven't decided shows up in Output, so nothing gets missed
Long lines scroll sideways without losing your place
Saving a file opens the next conflicted one
Fetch all and Pull all
Every group on the Home tab has Fetch all and Pull all, for the repositories it lists. The ▾ next to Pull all picks how it pulls, shared with the toolbar
Each row shows how it went, and a line on top sums it up
Repositories with no remote, no upstream, a detached HEAD or an operation in progress are skipped, and say why
A pull that hits conflicts is undone and reported, rather than leaving a half-finished merge in a repository you aren't looking at
Much more when you right-click
Branch and HEAD labels now offer their commit's actions too: reset, revert, cherry-pick, create tag, edit message, copy SHA
Fast-forward a branch that's behind without checking it out, and merge the current branch into the one you clicked, next to merging the other way
Interactive rebase onto a branch, local or remote
Drop commit and Move commit up / down, which ask first when a remote already has the commits, since the branch will need a force push
Set upstream…, Force delete for a branch with unmerged commits, Solo on the checked-out branch, and Push and start a pull request (with gh)
Right-click selected commits to cherry-pick, revert or rebase them, or to copy their SHAs
Menus use the window's height and scroll only when it's too short
The graph
The WIP row's line now joins HEAD, even with other branches' commits between them
The WIP row shows what changed, like ✎2 +2 −1, counting each file once
Histories with a single line of commits draw that line again; they showed only dots
Branch labels in the graph can be dragged onto each other, or onto the sidebar, to merge or rebase
AI
New in Settings: Write commit messages automatically. Once every change is staged and the message is empty, AI writes the summary and description, once for those files. It's off by default, since each one is a request to your provider, and it never replaces anything you've typed
Fixed
The menu of the checked-out branch was all in bold
A non-ASCII branch name could crash an interactive rebase that hit merge commits
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.6.1
0.6.0 was never published, so this covers everything since 0.5.0.
Edit messages after the fact
Edit message in the commit details rewrites a commit's summary and description. For the latest commit that's an amend (staged changes stay staged); older commits on the current branch are reworded through a rebase. Merge commits, and commits with merges after them, are refused, and a commit a remote already has asks once more first, since the branch will need a force push
Rename stash does the same for a stash, which keeps its place in the list
Both can be undone with ⌘Z
Stashes
Stashes stand out in the graph: a dashed box with a tray icon, a dashed line down to the commit they were made on, a dashed label and an italic message
When applying a stash conflicts, the message now says which file and why (before, it ended at "failed:")
Applying or popping a stash no longer gets in the way of your uncommitted changes. If they touch different files, the stash is applied on top and your changes stay. If they share a file, your changes are stashed first and a notice says where they went; ⌘Z puts everything back
Pull and push
Choose what Pull does with the ▾ next to it: Fetch all, Pull (fast-forward if possible), Pull (fast-forward only) or Pull (rebase). The choice is remembered for every repository and also used by Pull in menus and the command palette. Until you pick one, Pull follows your git pull.rebase setting as before
The toolbar's Open and Fetch buttons are gone: Fetch all is in the Pull menu, and opening a repository is on the Home tab, the command palette and ⌘O
Rebase pulls work with uncommitted changes: they're set aside during the rebase and put back afterwards
A fast-forward-only pull on diverged branches explains what to do instead of showing git's hints
Pulling a branch with no upstream explains why instead of showing git's raw error, and offers the fix: Track origin/main and pull when the remote has a branch of the same name, or Publish this branch when it doesn't yet
Pushing a branch with no upstream picks the remote the same way (your push default, then origin), and says so when there's no remote at all
The Pull ↓ and Push ↑ counts are colored like the Home tab's: amber for behind, green for ahead
Branches and tags in the graph
Right-clicking a branch or tag in the graph opens its menu (checkout, merge, rebase, delete, …), also inside the +N list when a commit has several. Before, nothing happened
Tags can be pushed to any remote with Push to origin (one entry per remote). It never forces; if the remote has the tag on another commit, you get a clear message
Tabs
Right-click a tab for Close tab, Close other tabs and Close tabs to the right
Drag tabs to reorder them, like in a browser. Home stays first, and the order is remembered
AI
Generated commit messages fill in the description too, not just the summary (the prompt steered models away from writing one)
Set up AI leaves the toolbar once AI is set up, and comes back if you remove it. AI settings are always reachable from Settings → AI and the command palette
Smaller things
When an update has downloaded, the footer shows a Restart to update button that relaunches into the new version. It asks first if you have unsaved work, like a commit message you're writing or a rebase in progress
The changes panel has a clearer header ("N file changes on main"), a Path / Tree switch with icons, and outlined Stage all changes / Unstage all changes buttons
Removing a repository from a project folder on the Home tab removes it from the list for good, instead of hiding it behind "N hidden · show". Nothing on disk changes
Everything clickable shows the pointing-hand cursor, including the × on Home tab rows and the links in About
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.5.0
Start a repository from GitChrono
Clone… on the Home tab and in the command palette: paste a URL, pick a folder, and follow git's progress as it downloads; the new repository opens in a tab when it's done
New repository… runs git init in a folder you pick (or create), on main unless your git config names another branch
A brand-new repository with no commits yet works throughout, including unstaging files before the first commit
Home tab
Home is always the first tab and can't be closed; repositories you open from it get their own tab instead of replacing it, and + / ⌘T go back to it
Remove a repository from Recent or from a project folder's list with the × that appears on hover. Nothing on disk changes, and a folder's hidden repositories can be shown and restored again
Removing a project folder now asks first
Toolbar
Every button has an icon above its label, and disabled buttons dim their icon too
Committing
Clicking anywhere in the commit title or description box, corners included, lets you type straight away (before, a click near the edge lit up the border but keystrokes went nowhere)
Profile pictures
Authors' pictures from Gravatar are now on by default, also for existing installs. Gravatar receives a hash of each author's email; turn it off in Settings → Profile pictures
The Profile pictures switch in Settings no longer sticks out of its card
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.4.1
Pushing when the remote moved on
If your branch is behind, or someone pushed while you were working, GitChrono explains it and offers Pull and push instead of showing git's error
Pull now follows your Pull setting (merge or rebase) from Settings
Committing
After a commit, the file you had open closes along with its selection
If a commit fails, your message stays in the box instead of being cleared
Syntax colors
Edited PHP files are colored again (changes in the middle of a file showed as plain text)
Many more languages: TypeScript, TSX, JSX, Vue, Svelte, SCSS, TOML, Kotlin, Swift, Dart, Dockerfile and more
Sidebar and graph
Local, Remote, Tags, Worktrees, Submodules, Pull requests and Stashes collapse with a click, remembered per repository
Clicking the selected commit again closes its details
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.4.0
Works on computers without Git
The Windows download now includes Git (MinGit from Git for Windows). If you already have Git installed, GitChrono keeps using yours
On macOS and Linux, GitChrono shows how to install Git instead of empty tabs: one click for Apple's Command Line Tools, or the right install command for your Linux distribution. "Check again" brings your tabs back
GitChrono also finds Git installed with Homebrew when opened from Finder
About shows which Git is in use
Repository overview on the new-tab page
Every repository shows its owner, current branch, commits ahead ↑ and behind ↓ its remote, and how many files are modified, new, deleted or in conflict
Repositories that can't be read anymore get a warning
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.3.0
Updates itself
GitChrono checks GitHub for new versions, downloads the right file for your computer, verifies it against the release checksums and offers a restart
A footer with the version, update status and About & credits (contributors and the projects GitChrono is built on)
This is the first version with updates built in, so it's the last one you download by hand
A graph that reads like GitKraken's
Commits in date order, with merges and branch lines drawn as clean rounded elbows
Much narrower graphs on big repositories, and a graph column you can drag narrower, down to one dot per commit
One branch label per row with a "+N" count; hover to see them all, double-click one to switch to it
Checking out a remote branch you already have locally switches to it and brings it up to date
Commit details
The message in a scrolling card with readable paragraphs, exact dates, clickable parents and a click-to-copy commit ID
Co-authors listed under the author, with the logos of AI assistants like Claude, ChatGPT, Gemini, Copilot and Grok
"Explain commit": an AI summary of what a commit does (with your own key)
An added / modified / deleted summary, and a Path / Tree switch with folders you can collapse
Staging
Select several files (⌘/Shift-click) to stage, unstage or discard them together
Folder view, with a Stage button per folder
Settings (⌘,)
Your git name, email, default branch, pull mode and commit signing, for all repositories or just one; empty fields show what git uses anyway
Your SSH keys: copy a public key, use one for signing, create a new one, or test GitHub and GitLab
Optional profile pictures from Gravatar (off by default)
Everything else
A new app icon
Collapsible project folders on the new-tab page
Stash and Pop side by side in the toolbar, Terminal last
GitChrono is in alpha. Use at your own risk. It runs real git commands on your repositories, so keep a pushed remote or a backup of anything you can't afford to lose.
What's new in 0.2.0
Work across repositories
A tab per repository, restored on launch (⌘T, ⌘W, Ctrl+Tab)
Add a parent folder and every repository inside it shows up on the new-tab page
Worktrees: create one from any branch, open it in its own tab, remove it when done
Submodules in the sidebar: open, initialize or update
Built-in terminal
A real shell in every repository (⌥T), several per repo, with colors, completion, mouse selection and ⌘C
Find and do things faster
Command palette (⌘P / ⌘K): any action, branch checkout, tab or repository
Search history by message, author or SHA (⌘F), and filter the sidebar
Undo and redo (⌘Z / ⌘⇧Z) for commits, resets, rebases, checkouts, branches and tags, without ever overwriting uncommitted work
History editing
Interactive rebase: reorder, reword, squash, fixup or drop commits
Conflict editor: pick ours, theirs or both per conflict, then mark resolved
Select several commits (⌘/Shift-click) to cherry-pick, revert or rebase them together
Drag a branch onto another to merge or rebase
Hide or solo branches in the graph
Reading code
Syntax-highlighted diffs with a side-by-side view
File history that follows renames, and blame
Commit signature status (GPG and SSH)
Integrations and AI
GitHub pull requests in the sidebar when the GitHub CLI (gh) is installed
AI commit messages, branch names and stash messages with your own key (OpenAI, Anthropic, Mistral, Gemini, OpenRouter or a local Ollama model)