New: Grove 0.1.0 for Windows, macOS & Linux

Grove Every repository, one view.

Grove finds every git repository on your machine and shows, in one live list, what is uncommitted, what needs pushing or pulling, which pull requests are waiting, and which branches are merged or stale. Then it pulls, pushes and cleans up all of them at once, safely.

  • Windows, macOS & Linux
  • Uses your own git
  • No account needed
  • Command line included
Grove showing twelve repositories with their branch, uncommitted changes, commits ahead and behind, and merged or stale branches, under summary cards and bulk Fetch, Pull, Push and Clean up buttons
Git calls per repository
5
Repositories in one list
All
Force pushes
0
Accounts needed
0

Twenty repositories, one you

Git tells you about one repository at a time.

Real work spans many: services, libraries, the app, the docs, the side project. Grove is for knowing where all of them stand, without opening each one.

Work you forgot to commit

A fix from last Tuesday, still sitting uncommitted in a repository you haven't opened since.

01

Pushed? Pulled? Not sure.

Commits that never left your laptop, and a teammate's changes you are about to conflict with.

02

Branches nobody deletes

Dozens of merged and abandoned branches per repository, and squash merges mean git can't tell which are safe.

03

Ten terminals to find out

cd, git status, git fetch, git branch, repeated for every repository, every morning.

04

One dashboard for all of them

From "what's going on?" to done, in one window.

See every repository's state, act on many at once, and dig into any one of them.

At a glance

Everything about a repository, one click away.

Each row answers the questions you would otherwise ask git one repository at a time. Expand it for the detail: open pull requests with their CI and review status, every branch and what has happened to it.

  • Staged, modified, untracked and conflicted files, stashes, and any merge or rebase in progress
  • Commits to push and to pull, plus branches with no upstream or a deleted one
  • Open pull requests with checks passing, failing or running, and approved or changes requested
  • Merged and stale branches, counted per repository
A repository expanded in Grove: its remote, tags, two open pull requests with review status, and a table of branches marked merged, squash-merged and stale

Branch cleanup

Delete merged branches across every repository. Safely.

Grove checks each branch against the default branch, including squash and rebase merges that git branch --merged misses, and lists only the ones whose changes are already there.

  • Squash-merged and rebase-merged branches recognised, not just plain merges
  • Branches whose remote is gone but still hold unmerged work are listed apart, and never ticked for you
  • The current branch, the default branch and long-lived names like main and develop are never touched
  • Changed your mind? Undo brings every deleted branch back exactly where it was
The Clean up branches dialog listing merged and squash-merged branches from several repositories, with unmerged branches in a separate section

Always current

It keeps itself up to date. You don't press Refresh.

Commit in your terminal, switch branches in your IDE, pull somewhere else: the row changes within a second. Grove also fetches in the background, so "to pull" is true when you look.

  • Watches each repository, so changes made anywhere show up straight away
  • Background fetch on a schedule you choose, gently, a few repositories at a time
  • A notification when new commits are waiting to be pulled
  • A tray icon (the menu bar on macOS) with what needs attention, and Grove can keep running there
Grove in dark mode: summary cards for uncommitted, to push, to pull, merged and stale branches above the list of repositories

History & worktrees

Recent commits, stashes and worktrees, without leaving the list.

See what landed on a branch, which stashes you forgot about, and every worktree a repository has. Then jump straight to your editor or a terminal in that folder.

  • The latest commits with author, time, branches and tags
  • Every stash, with its message and age
  • Linked worktrees, including ones whose folder has gone missing
  • Open in VS Code, Cursor, Zed, Sublime, JetBrains IDEs or any command, or a terminal right there
A repository in Grove showing its Commits tab: ten recent commits with authors, times, a release branch and a version tag

Git configuration

See which git settings apply. Change them in place.

Every setting that affects a repository, from the repository itself, your user and the system, with what overrides what. Edit the repository's and your own; the rest is shown read-only.

  • A different name or email for one repository, and back to your global one in a click
  • Quick fields for default branch, how git pull behaves, pruning, first-push upstream and line endings
  • Overridden values struck through, so it's obvious which one git actually uses
  • Everything goes through git config itself, includes and all
A repository's Config tab: name and email fields, then settings from the repository, the user and the system, grouped by file
The global Git configuration dialog in dark mode, with quick fields for name, email, default branch, pull behavior and line endings

New machine

Set up a new computer in minutes, not an afternoon.

Export a list of your repositories and where they live, then clone them all from it on the next machine. Or clone every repository of a GitHub user or organization in one go.

  • Keeps your folder structure: work/api goes back to work/api
  • Private repositories included, through the GitHub CLI and the account you already signed in with
  • Folders that already exist are skipped, never overwritten
  • A few clones at a time, so the remote isn't hammered
The Clone from GitHub dialog listing an organization's twelve repositories, all selected, ready to clone into the code folder

Safe by default

Bulk actions you can trust with real work.

Acting on twenty repositories at once is only useful if nothing surprising happens in any of them. Every action in Grove is the conservative one.

  1. 01

    Pull only fast-forwards

    Grove never merges or rebases for you. A branch that has diverged is reported, and left alone.

  2. 02

    Push never forces

    Only branches that are ahead and not behind are pushed, and a branch without an upstream is never published for you.

  3. 03

    Cleanup is checked, and undoable

    A branch is deleted only if its changes are in the default branch right now, and Undo restores it.

  4. 04

    Never stuck on a password prompt

    Grove uses your own git, credentials and hooks, and a repository that needs a login reports it instead of hanging.

For terminals and servers

The same engine, in your shell.

The grove command does what the dashboard does: a status table of every repository, bulk fetch, pull and push, cleanup with a dry run first, and a portable list to clone from on another machine.

  • status: one line per repository, or JSON for scripts, with --attention for only what needs you.
  • cleanup: lists what it would delete; --yes deletes it and prints how to restore each branch.
  • export & clone: move your whole setup to a new machine or a fresh server.
terminal
# Where does everything stand?
$ grove status ~/code --attention

# Start the day up to date
$ grove pull ~/code

# See what's safe to delete, then delete it
$ grove cleanup ~/code
$ grove cleanup ~/code --yes

# New laptop
$ grove export ~/code > repos.json
$ grove clone repos.json ~/code

Everything else you'd expect

Small things, done properly.

  1. 01

    Pins, tags & hiding

    Pin the repositories you live in, tag them by team or client, and hide the ones you only keep for reference.

  2. 02

    Filters that count

    One click shows just what is uncommitted, to push, to pull, merged or stale.

  3. 03

    Fast with hundreds

    Five git calls per repository and results as they arrive, so a big folder of projects stays quick.

  4. 04

    Native everywhere

    Windows, macOS (Apple silicon and Intel) and Linux. Your own git, found even from the Dock or a launcher.

  5. 05

    Light & dark

    Themes that follow your system.

  6. 06

    Keyboard friendly

    Refresh, search and select all from the keyboard.

  7. 07

    A command line too

    Everything the dashboard does, in scripts and on servers.

  8. 08

    No account

    Nothing to sign up for. Point it at a folder and go.

Private by design

Your code stays where it is.

  • Runs on your computerGrove reads your repositories where they are. Nothing is uploaded and there is no account.
  • Only git goes onlineNetwork access is git itself (fetch, pull, push) and, if you use it, the GitHub CLI for pull requests.
  • No trackingNo analytics, no telemetry.

Grove vs doing it by hand

The chores, without the chores.

TaskBy handGrove
See every repository's state cd and git status, one by one One live list
Know what's waiting to be pulled Remember to fetch each one Fetched in the background, with a notification
Pull or push many repositories A shell loop, and hope One click, fast-forward only, never forced
Find branches safe to delete git branch --merged misses squash merges Merged, squash- and rebase-merged, all recognised
Delete them git branch -D, carefully Protected branches skipped; undo if you need it
Pull requests and CI Open the browser per repository Next to the branch they belong to
Per-repository git settings git config --show-origin, then edit by hand Shown by source, edited in place
A new machine Clone one at a time from memory Export a list, clone them all

Get Grove 0.1.0

Every repository in view, in a minute.

Pick the file for your system. We'll email you a one-time code, and the download starts as soon as you enter it.

First launch & command line

Windows

If Windows shows "Windows protected your PC", choose More info, then Run anyway. On Windows 10, the installer adds Microsoft's WebView2 if it's missing.

macOS

Drag Grove into Applications. The first time, open System Settings, then Privacy & Security, and click Open Anyway. (On macOS 14 and earlier, right-click the app and choose Open.)

Linux

Install the .deb with apt or the .rpm with dnf, like any other package. The AppImage needs no install: make it executable (chmod +x) and run it.

Command line

Unpack the archive and put grove on your PATH. It needs git, like the app.

The first-launch warning appears because Grove is new and not yet widely downloaded; it only shows once. Verify your download (optional): each file's SHA-256 checksum is in SHA256SUMS.txt.

Download Grove

Where should we send your code?

We'll email you a one-time code to start . No account, no spam.

FAQ

Questions, answered.

Something else? Ideas or partnership enquiries? Email jamal@unravelers.tech.

What do I need installed?

Just git. Grove uses the git you already have, with your settings and credentials. Pull requests and cloning from GitHub also use the GitHub CLI (gh) if you install it.

Will Grove ever change my code or lose work?

Pulls only fast-forward, pushes never force, and branches are deleted only when their changes are already in the default branch. The current, default and long-lived branches are never deleted, and a cleanup can be undone.

How does it know a squash-merged branch is safe to delete?

It compares the branch's changes with the commits on the default branch. If the whole branch landed as one squashed commit, or every commit was copied over by a rebase merge, the branch is marked squash-merged. When it isn't sure, the branch stays in the unmerged list.

Does it work with private repositories?

Yes. Git uses your own credentials, and pull requests come through the GitHub CLI and the account you signed in with.

How many repositories can it handle?

Hundreds. Each repository takes five quick git calls, results appear as they arrive, and a folder search skips heavy folders like node_modules.

Is there a command-line version?

Yes: grove status, fetch, pull, push, cleanup, export and clone, for scripts and servers.

Why does Windows or macOS show a warning the first time?

Both systems double-check apps that aren't yet widely downloaded. It only happens on the first launch; the steps are in the download section above.

Which systems are supported?

Windows 10 and 11 (64-bit), macOS 11 or later on Apple silicon and Intel, and 64-bit Linux (Ubuntu, Debian, Fedora, openSUSE and others).

Every repository, one view

Know where all your code stands. Every morning.

Get Grove for Windows, macOS or Linux, or tell us what it should do next.