Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitFx (gix)

A modern, friendly Git CLI — interactive flows, colored graphs and guided safety rails on top of the real git binary, so SSH, GPG signing, hooks and your existing git config all keep working exactly as before.

gix log          gix status         gix sync
◆ history — all branches · newest first
* (HEAD -> main) 3d876eb feat: ship it      (2 minutes ago · you)
| * (origin/dev) 1a2b3c4 fix: rounding      (5 minutes ago · team)
|/
* c094edc feat: first pass

Why you'll stay

Git's CLI is intimidating: scary errors, destructive commands, and no visual context. gix wraps the sharp edges:

  • Guided, not opaque — every destructive move shows you exactly what will happen and asks. Nothing is ever applied silently.
  • Safety nets everywhere — gix undo backs up your work before touching anything; gix sync never runs a blind pull; drops need a double confirm.
  • One interaction model — arrows and vim keys (j/k), enter to select, esc/ctrl+c cancels the entire command at any step. Muscle memory works across every command.
  • Beautiful and script-safe — rounded panels, commit graphs, progress bars in the terminal; clean plain text when piped.
  • Zero magic — no AI, no cloud, no daemon. Everything is real git.

Install

brew install iamdmix/gitfx/gitfx   # once the tap is live

Or install with Go:

go install github.com/iamdmix/gitfx@latest
# binary is installed as `gitfx`; alias it:
alias gix=gitfx

Or build from source:

git clone https://github.com/iamdmix/gitfx
cd gitfx
go build -o gix .

First run

gix setup

A powerlevel10k-style guided wizard that takes over the screen and walks through everything once:

  1. Environment — verifies git (and installs it for you via Homebrew if missing), checks identity, SSH/GPG state
  2. Identity — name + email, and the scope: global, per-directory (local) or system
  3. Login — your choice of SSH key (generate → clipboard → GitHub hint), GPG signing (pick or generate a key, enables verified commits), or both
  4. Alias — keep both gix and git, make gix the default for git, or pick a custom alias name
  5. Finish — a summary card and the docs: https://gitfx.dharmimkshinde.tech/docs

Bare gix greets you with a spinning wordmark (any key skips it) and shows a first-run hint until setup is complete.

Commands

Everyday workflow

  • gix status — a live card: branch, upstream, ahead/behind, staged / modified / untracked / conflicts, stashes — ending with the one best next step for your state.
  • gix add — checkbox picker over every change: space toggles, a toggles all, enter stages.
  • gix commit — guided conventional commits (feat/fix/chore…, scope, subject, body) with preview and confirmation. -m skips prompts, -a stages tracked changes first.
  • gix sync — fetch → inspect → decide: fast-forward pull, guided rebase-or-merge on divergence, or push -u to publish. Live progress bars (counting/writing/resolving) parsed from git's own stream.
  • gix stash — visual stash manager: pick a stash, see its stat, then apply / pop / drop with confirmations.

History & changes

  • gix log — history as a colored commit graph; -a for all branches, -n to limit. HEAD/branch/tag decorations highlighted, parallel branches color-coded.
  • gix diff — --stat summary in a panel up top, colored diff below, -s for staged.

Branches

  • gix branch — a readable git branch -vv table: ● current, → upstream, ↑↓ tracking, last commit.
  • gix switch — fuzzy-searchable picker over local and remote branches; -c creates one.

Rescue & maintenance

  • gix undo — pick any recent state from your reflog and jump back. Always creates a backup stash first (including untracked files).
  • gix conflict — walks you through every conflicted file: open in editor, keep ours, keep theirs, or skip. Resolutions get staged.
  • gix doctor — health check card: identity, in-progress operations, conflicts, divergence, remotes — each with the exact fix-it command.

Setup & tools

  • gix setup — the full first-run wizard (environment, identity, login methods, aliases, docs).
  • gix config — set your Git identity interactively with a scope picker.
  • gix keys — SSH setup wizard: detect → generate (ed25519) → copy public key to clipboard → test against GitHub.
  • gix open — open the repo's GitHub/GitLab page in your browser (gix open <branch> opens that branch).

Releasing & Homebrew (maintainers)

Releases are automated end-to-end and validated locally:

  • .goreleaser.yaml — builds gix for darwin/linux/windows (amd64 + arm64), publishes a GitHub release, and pushes a generated Homebrew cask to iamdmix/homebrew-gitfx on every tag (casks are the current goreleaser v2 path — brews: formulas are deprecated). The cask installs the prebuilt binary and auto-generates shell completions from cobra.
  • .github/workflows/release.yml — triggers on push: tags v*, release: published (tags created via the GitHub UI), and manual workflow_dispatch.
  • Secrets: TAP_GITHUB_TOKEN (fine-grained PAT, Contents R/W on both repos) in Settings → Secrets and variables → Actions.

Validate locally before tagging:

goreleaser check
goreleaser release --snapshot --clean --skip=publish,announce

Ship a release:

git push origin main
git tag -a vX.Y.Z -m "Release vX.Y.Z" && git push origin vX.Y.Z

Users install with brew install iamdmix/gitfx/gitfx.

Full docs: https://gitfx.dharmimkshinde.tech/docs

Non-interactive mode

Every command degrades to plain, color-free output when piped or run without a terminal (gix log | cat, CI scripts, cron). Interactive commands print a plain listing plus the exact non-interactive alternative instead of failing inside a prompt.

Design standards

One visual language across the CLI: semantic color tokens (blue = identity, green = safe, amber = attention, red = destructive), fixed icon meanings (◆ identity, ✓ ok, ⚠ attention, ✗ conflict, → hint), rounded panels for report cards, and every next step as a single hint line. Built with Cobra + Bubbletea + Lipgloss; all git operations shell out to the real git binary.

Roadmap

  • gix add -p — hunk-level interactive staging
  • gix bisect — guided binary search for the bug
  • gix release — tag + changelog helper

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages