Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mauriciorossdev/git-x

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

Git X πŸš€

License: MIT TypeScript React Electron Tailwind CSS Vite

Git Account Manager with complete GitHub CLI integration, SSH key management, and repository browser

Git X is a modern Electron desktop application for managing multiple Git accounts, SSH keys, GitHub CLI authentication, and browsing both local and remote repositories β€” all from a single interface.

✨ Features

πŸ” Git Account Management

  • Multiple accounts β€” Manage several Git accounts simultaneously
  • Quick switching β€” Activate/deactivate accounts with a single click
  • Automatic configuration β€” Git configures automatically when switching accounts
  • Export β€” Export your accounts in JSON format

πŸ”‘ SSH Key Management

  • Automatic generation β€” Create 4096-bit RSA SSH keys
  • Multiple keys β€” Manage different keys for different services
  • Secure export β€” Export public keys to add to GitHub/GitLab
  • Validation β€” Verify that keys are valid

πŸš€ GitHub CLI Integration

  • Automatic login β€” Web authentication with one-time codes
  • Automatic configuration β€” Git configures with your account automatically
  • Multiple account handling β€” Switch between different GitHub accounts easily
  • Intuitive interface β€” Step-by-step process with visual indicators

πŸ“‚ Repository Browser

  • Local repo scanning β€” Automatically discovers Git repositories in common directories (Desktop, Documents, Projects, Developer)
  • Custom search paths β€” Add your own folders to expand repo discovery
  • Remote repos β€” Lists your GitHub repositories via gh CLI
  • Commit history β€” Browse commits with author, date, and full message
  • Uncommitted changes β€” View modified/added/deleted files with status indicators
  • Inline diffs β€” Color-coded diff viewer for each file (additions in green, deletions in red)
  • Quick commit & push β€” Stage, commit, and push changes directly from the app
  • Open in editor β€” Launch repos in VS Code, Cursor, or Claude editor
  • Caching β€” Repository lists are cached in localStorage for fast startup

🎬 Splash Screen

  • Matrix-style animated startup screen with GSAP animations

🎯 Use Cases

  • Developers β€” Switch between personal and work accounts
  • Teams β€” Manage multiple projects with different configurations
  • Students β€” Manage academic and personal projects

πŸš€ Quick Start

Prerequisites

  • Node.js (v18+)
  • GitHub CLI (gh) β€” required for GitHub authentication and remote repo listing

Installation

# Clone the repository
git clone https://github.com/mauriciorossdev/git-x.git
cd git-x
# Install dependencies
npm install
# Run in development mode
npm start

First Account

  1. Click "πŸ” Login with GitHub CLI" for automatic authentication
  2. Or use "βž• Add New Account" for manual configuration
  3. Complete your Git account information
  4. Done! Your account is configured

Generate SSH Keys

  1. Go to the "SSH Keys" tab
  2. Click "πŸ”‘ Generate New Key"
  3. Choose the key type (4096-bit RSA recommended)
  4. Export the public key and add it to GitHub/GitLab

Browse Repositories

  1. Switch to the "Repos" tab
  2. Local repositories are auto-discovered; click "Add Folder" to add custom paths
  3. Remote GitHub repositories are fetched via gh CLI
  4. Select any repo to view commits, changes, and diffs

πŸ› οΈ Available Commands

# Development
npm start # Run in development mode (Electron Forge + Vite)
# Linting
npm run lint # Run ESLint
npm run lint:fix # Auto-fix linting errors
# Build
npm run package # Package application (no installer)
npm run make # Build distributable for current platform
npm run make:mac # Build for macOS (DMG + ZIP)
npm run make:win # Build for Windows (Squirrel + ZIP)
npm run make:linux # Build for Linux (deb + rpm)
# Release
npm run release # Build and publish to GitHub Releases
npm run release:beta # Build and publish as pre-release

πŸ—οΈ Architecture

src/
β”œβ”€β”€ main.ts # Electron main process (IPC handlers, shell access)
β”œβ”€β”€ preload.ts # Context bridge (window.electronAPI)
β”œβ”€β”€ renderer.ts # React entry point
β”œβ”€β”€ App.tsx # Root component (tabs: Account Manager / Repos)
β”œβ”€β”€ components/
β”‚ β”œβ”€β”€ GitAccountManager.tsx # Account & SSH key management
β”‚ β”œβ”€β”€ GitAccountList.tsx # Account list UI
β”‚ β”œβ”€β”€ GitStatus.tsx # Current Git config status
β”‚ β”œβ”€β”€ RepoView.tsx # Repository browser orchestrator
β”‚ β”œβ”€β”€ RepoSidebar.tsx # Local/remote repo navigation sidebar
β”‚ β”œβ”€β”€ RepoDetail.tsx # Commit history, diffs, changes viewer
β”‚ └── SplashScreen.tsx # Animated startup screen
β”œβ”€β”€ services/
β”‚ β”œβ”€β”€ GitConfigService.ts # Git config read/write
β”‚ β”œβ”€β”€ GitHubCLIService.ts # GitHub CLI wrapper (auth, user info)
β”‚ └── RepoService.ts # Repo scanning, commits, diffs, push
β”œβ”€β”€ contexts/
β”‚ └── ThemeContext.tsx # Dark/light theme
└── types/
 β”œβ”€β”€ electron.d.ts # IPC API type definitions
 └── repo.ts # Repository data interfaces

All system commands (git, gh, ssh-keygen) flow through: React β†’ Service β†’ window.electronAPI.executeCommand() β†’ IPC β†’ main.ts execAsync()

πŸ”§ Tech Stack

Layer Technology
Frontend React 19 + TypeScript
Styling Tailwind CSS v4
Animation GSAP
Desktop Electron 37
Bundler Vite 5
Packaging Electron Forge
CI/CD GitHub Actions (macOS, Windows, Ubuntu)

πŸ“¦ Releases

Git X builds cross-platform installers via GitHub Actions:

Platform Format
macOS .dmg, .zip
Windows .exe (Squirrel), .zip
Linux .deb, .rpm

Releases are triggered automatically when a version tag is pushed (e.g., v1.0.0).

πŸ” GitHub CLI Setup

To use automatic login and remote repo features, install GitHub CLI:

# macOS
brew install gh
# Windows
winget install GitHub.cli
# Linux (Debian/Ubuntu)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update && sudo apt install gh

🚨 Troubleshooting

GitHub CLI not installed

gh --version # Check installation

Permission error on macOS

Go to System Preferences > Security & Privacy > Accessibility and add Terminal and/or Git X.

SSH key issues

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_*
ssh-add -l # Check SSH agent

🀝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“š Documentation

πŸ“„ License

This project is under the MIT License. See LICENSE for details.

πŸ”— Links

GitHub stars GitHub forks GitHub issues GitHub pull requests


Developed with ❀️ for the developer community

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /