The git CLI wrapper that treats you like a human, not a compiler.
Warning
gdx is a drop-in wrapper for the Git CLI. It doesn't replace Git; it just makes it less... unpleasant.
It wraps standard git commands with intelligent shorthands and adds powerful new capabilities that Git is missing like safety rails for destructive actions (undoable reset --hard), introduces new workflows for parallel editing and local analytics.
Why gdx?
- ⚡ Speed: Type less.
gdx sisstatus.gdx sta lisstash list. - 🛡️ Safety:
gdx clearwipes your directory but saves a backup patch. No more "oops" moments. - 🧠 Logic: Handles the things Git makes hard, like dropping a range of stashes (
drop 2..6) without index shifting errors. - 📊 Local-First Stats: Beautiful TrueColor graphs and stats generated from your local history.
Installation instructions coming soon!
gdx isn't just a list of static aliases. It understands partial commands and expands them smartly.
gdx s # -> git status
gdx lg # -> git log --oneline --graph --all --decorate
gdx pl -au # -> git pull --allow-unrelated-histories
gdx ps -fl # -> git push --force-with-leaseNote
This wrapper forwards unrecognized commands directly to git, so you can use it as a full git replacement.
We've all accidentally reset files we meant to keep. gdx clear is the solution.
gdx clear: Creates a timestamped patch backup in a temp folder, then effectively runsreset --hard&clean -fd.gdx clear pardon: "Wait, I didn't mean to do that." Applies the backup patch and restores your changes.
Need to work on the same branch in multiple isolated environments without checking out new branches?
# Manage forked worktrees for the current branch
gdx parallel fork # Create a new temp-backed fork
gdx parallel list # See where your forks are
gdx parallel open # Open any fork in your default editor
gdx parallel join # Merge changes from a fork back to mainGit stash is great until you need to clean it up.
gdx sta l # git stash list
gdx sta d 2..6 # Drops stashes 2 through 6.
# (Smartly drops high->low to prevent index shifting!)Tools to help you feel productive without leaving the terminal.
gdx stats: Shows fun contribution statistics and metrics for your current repo.gdx graph: Renders a GitHub-style contribution heatmap in your terminal using TrueColor.gdx nocap: Uses AI to roast your latest commit message.
| Command | Expansion / Function |
|---|---|
s, stat |
git status |
lg, lo |
git log --oneline --graph --all --decorate |
sw, swit |
git switch |
br, bra |
git branch |
cmi, com |
git commit (Try gdx cmi auto for AI messages!) |
res |
git reset (supports res ~3 expansion) |
sta, st |
git stash |
Run gdx ghelp to see the full list of expansions.
This project uses Bun for development because it's fast and the developer experience is great.
-
Clone the repo
-
Prepare the development environment:
bun prepare-dev
-
Run in dev mode:
bun start -- # your gdx commands here # for example: bun start -- s # runs `gdx s` (git status)
Since this is currently a solo "scratch your own itch" project, the roadmap is fluid, but here is what is on the horizon:
- Configurability: Allow users to define their own shorthands in a
.gdxrc.tomlfile. - Shell Integration: Auto-completion scripts for Zsh/Bash/Fish/Powershell.
- Commit with specified editor: like,
gdx commit --vimto open Vim for commit messages. - Quick commit:
add,commit, andpushin one command likegdx qc -pa(git add . && gdx commit auto && git push) - Quick linting before push:
gdx lintto run following checks before pushing:- commit message format
- commit message spelling
- env or sensitive content scanning
- conflict markers
- abnormal file sizes with an option to automatically run lint before every push
- Interactive stash list and log with fzf/tui
- Undoable stash drop
- Parallel worktree switching
gdx parallel switchJump between forks (auto-cd) (requires shell integration withgdx --init --shell)
MIT © Type-Delta