Git Identity Manager (gitid)
A terminal-based tool that helps developers manage multiple Git identities easily through an interactive interface.

Features
- π Switch between multiple Git identities with ease
- π·οΈ Optional nicknames for quick identity identification
- β Add new identities interactively
- ποΈ Delete unwanted identities
- π» Terminal-based UI with keyboard navigation
- π Uses Git's built-in configuration system
- π Smart identity matching by nickname, name, or email
Installation
From Binary
Download the appropriate binary for your platform from the releases page.
From Package (Linux)
Debian/Ubuntu:
sudo dpkg -i gitid_*.deb
RedHat/Fedora:
sudo rpm -i gitid_*.rpm
Building from Source
Prerequisites
- Go 1.21 or later
- Make
- NFPM (for package generation)
Build Commands
# Build for your current platform
make build
# Build static binary (Linux only)
make build-static
# Create releases for all platforms and packages
make release
# Clean build artifacts
make clean
Usage
Run gitid to start the interactive interface.
Keyboard Controls
β/β or j/k - Navigate through identities
Enter - Select identity or confirm action
D - Delete selected identity
E - Edit nickname for selected identity
β/β - Navigate confirmation dialog
Esc - Cancel current action
q - Quit application
Managing Identities
- Switch Identity: Select an identity from the list and press Enter
- Add Identity: Select "Add new identity" and follow the prompts
- Name and email are required
- Nickname is optional but helps with quick identification
- Edit Nickname: Select "Edit nickname" for existing identities
- Delete Identity: Navigate to an identity and press D, then confirm
Shell Completions
GitID supports shell completions for Bash, Zsh, and Fish to provide tab-completion for commands and arguments.
Installation
# Install for your current shell (auto-detected)
gitid completion bash # For Bash
gitid completion zsh # For Zsh
gitid completion fish # For Fish
Removal
# Remove completions
gitid completion bash -r # Remove Bash completions
gitid completion zsh -r # Remove Zsh completions
gitid completion fish -r # Remove Fish completions
After installation, restart your shell or source your configuration file (e.g., source ~/.bashrc or source ~/.zshrc).
Nicknames
Nicknames are optional short identifiers that make it easier to distinguish between identities:
- Display: Identities with nicknames show as
nickname (Name <email>)
- Without nicknames: Shows as
Name <email> (backwards compatible)
- Adding nicknames: Available when creating new identities or editing existing ones
- Smart matching: Future CLI will support switching by nickname, name, or email
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.