Gitswitch is a modern, AI-powered Git client designed for developers who manage multiple accounts and repositories. Built with Electron and React, it offers a seamless experience or switching identities, managing diffs, and generating semantic commit messages using Google Gemini AI.
- Multi-Account Management: Easily switch between GitHub/GitLab accounts (Personal, Work, etc.).
- AI Commit Generation: Automatically generate semantic commit titles and detailed descriptions using the latest Gemini 3 models.
- Smart Diff Viewer: View staged and unstaged changes with syntax highlighting and large-diff protection.
- Security Hardened: Enforced timeouts, input sanitization, and secure OS-keychain storage for all secrets.
- Drag & Drop: Add repositories by simply dragging folders.
- Privacy First: API keys are redacted from logs and wiped from memory immediately after use.
- Dark Mode: Sleek, modern URL-inspired interface with Cyberpunk aesthetics.
- Core: Electron, TypeScript
- Frontend: React 19, Vite, TailwindCSS
- State Management: Zustand
- AI: Google Generative AI SDK
- Git: Simple-Git
-
Clone the repository:
git clone https://github.com/raoof/gitswitch.git cd gitswitch -
Install dependencies:
npm install
-
Start the development app:
npm run dev
To create a production-ready installer for your current OS:
npm run distAlternatively, build specifically for a target platform:
# macOS (.dmg)
npm run build:mac
# Windows (.exe)
npm run build:win
# Linux (.AppImage, .deb)
npm run build:linuxAll build commands automatically run type-checking and linting to ensure production quality. Built artifacts are located in the dist/ directory.
For a high-level overview of the application's structure, security model, and data flow, please read our Architecture Guide.
- Get a generic API Key from Google AI Studio.
- Open Settings in Gitswitch.
- Select Cloud (Gemini) provider.
- Enter your API Key.
- (Optional) Customize the "Persona" to adjust the tone of commit messages.
We welcome contributions! Please see CONTRIBUTING.md for details on how to submit Pull Requests and report issues.
This project is licensed under the MIT License - see the LICENSE file for details.