A multi-repo manager that lets you jump between projects, pin favorites, and clean stale branches all from one CLI
  • Rust 95.8%
  • Shell 4.2%
Find a file
2026-04-13 01:27:13 +00:00
.forgejo/workflows Add Cargo.toml sync 2026-04-12 19:23:46 -06:00
scripts Rust re-write 2026-04-12 17:11:20 -06:00
shell Add Cargo.toml sync 2026-04-12 19:23:46 -06:00
src PR Pipelines Passing (#1) 2026-04-13 00:30:58 +00:00
.envrc opt into shellops 2026-04-12 17:23:10 -06:00
.gitignore opt into shellops 2026-04-12 17:23:10 -06:00
.gitmodules opt into shellops 2026-04-12 17:23:10 -06:00
.version chore: bump to v0.1.2 [skip ci] 2026-04-13 01:27:13 +00:00
Cargo.lock chore: bump to v0.1.2 [skip ci] 2026-04-13 01:27:13 +00:00
Cargo.toml chore: bump to v0.1.2 [skip ci] 2026-04-13 01:27:13 +00:00
lefthook.yml PR Pipelines Passing (#1) 2026-04-13 00:30:58 +00:00
LICENSE-APACHE Rust re-write 2026-04-12 17:11:20 -06:00
LICENSE-MIT Rust re-write 2026-04-12 17:11:20 -06:00
manifest.json chore: bump to v0.1.2 [skip ci] 2026-04-13 01:27:13 +00:00
ops.lock PR Pipelines Passing (#1) 2026-04-13 00:30:58 +00:00
README.md Add crate publishing to release workflow (#2) 2026-04-13 01:04:42 +00:00
rustfmt.toml PR Pipelines Passing (#1) 2026-04-13 00:30:58 +00:00

Gimme

A multi-repo manager for developers who work across many projects. Jump between repositories, pin your favorites, clean up stale branches, and set up aliases — all from one CLI.

Installation

From crates.io

cargo install gimmetool

First-time setup

After installing, run the setup wizard to configure your shell integration and search folders:

gimme setup

This will:

  • Install a shell function (bash/zsh) so gimme can cd into repositories
  • Walk you through choosing which folders to scan for git repos
  • Write your config to ~/.config/gimme/config.yaml

Usage

Jumping between repos

gimme myproject        # Jump to the best match
gimme to myproject     # Same thing, explicit subcommand

Gimme scans your configured search folders, finds matching repositories, and cds you into the best match. Pinned repos get priority.

Listing repositories

gimme list             # Show all discovered repos, grouped by search folder
gimme ls frontend      # Filter by name

Branch operations

gimme list -b          # List branches in the current repo
gimme list -b --merged # Show only merged branches
gimme clean -b         # Delete merged branches
gimme clean -b --all   # Delete all non-protected, non-pinned branches
gimme clean -b --dry-run  # Preview what would be deleted

Pinning

Pin repositories to give them priority in search results, or pin branches to protect them from cleanup:

gimme pin              # Pin the current repo
gimme pin -b feature   # Pin a branch in the current repo
gimme unpin            # Unpin the current repo

Aliases

Create shortcuts for repos you jump to often:

gimme config add alias k kernelle
gimme k                # Jumps to kernelle

Configuration

gimme config ls                      # Show all config
gimme config add group ~/work        # Add a search folder
gimme config add protected develop   # Protect a branch globally
gimme config delete group ~/old      # Remove a search folder

Config file

Gimme stores its configuration at $XDG_CONFIG_HOME/gimme/config.yaml (defaults to ~/.config/gimme/config.yaml). It also supports the legacy path ~/.gimme.config.yaml for backward compatibility.

License

Licensed under either of Apache License, Version 2.0 or MIT License at your option.