Repository navigation
What's New
- Add interactive HTML output as the default, with a Before / After slider and a play button, opened in the git-sim web viewer (repo data stays in the link's
#fragmentand is never sent to the server) - Add Share menu: copy a link, an image, or an embed, make a short public link, download a PNG, SVG, or HTML page, or post to X, Bluesky, LinkedIn, Reddit, Hacker News, or email
- Add Copy embed for putting an interactive graph in any web page, with no file to host
- Add
livesubcommand to watch a repo animate in real time as Git commands run, record each session, and replay, save, or record it as a video - Add
preflightsubcommand to report how risky a Git command is before it runs, what it would lose, and how to undo it (--jsonand--markdownoutput) - Add
wire-agentsandunwire-agentssubcommands to set up a pre-flight hook and MCP server in Claude Code, Codex CLI, Cursor, GitHub Copilot CLI, Gemini CLI, VS Code, Windsurf, Cline, Roo Code, Amazon Q, and Claude Desktop - Add
bisect,blame,check-ignore,describe,diff,grep,ls-remote,reflog,shortlog,show,submodule, andworktreesubcommands - Add
--continueand--abortflags tomerge,rebase, andcherry-picksubcommands, and--skiptorebaseandcherry-pick - Add
--allow-unrelated-historiesand--ff-onlyflags tomergesubcommand - Add folder paths and
-Atoaddsubcommand - Add
-ushort flag topushsubcommand - Add
--globaland--systemflags toconfigsubcommand - Add VS Code extension (also for Cursor, Windsurf, and VSCodium) showing simulations, pre-flight reports, and the live graph in the editor
- Add Jupyter magic:
%load_ext git_sim.jupyter, then%gitsim <command>or%gitsim live - Add GitHub Action that comments on each pull request with what merging it would do, whether it's safe, and how to undo it, including pull requests with conflicts
- Add
gh gitsimGitHub CLI extension to simulate a pull request from the terminal - Add
aliasessubcommand forgit preflightandgit liveGit aliases - Add global options
--img-format svgand--compact - Add link in the page header to an explanation of the simulated command on Initial Commit (only the command and its flags are sent)
Changed defaults
- Default output is the interactive HTML page instead of a JPG (use
--img-format jpgorgit_sim_img_format=jpgfor images) - Graphs are drawn light by default (
--dark-modefor dark) - Newest commit is drawn on the left (
--no-reversefor the old layout) - Output is saved in the user cache folder instead of the current folder (
git-sim media-dirprints where,--media-dirorgit_sim_media_dirchanges it) - Manim is now optional and only needed for
--animatevideos:pip install "git-sim[extras]"
Bug fixes
- Fix
mergeandrebasewith remote-tracking branches likeorigin/main - Fix
resetandswitchin a detached HEAD - Fix
commit --amenddrawing the amended commit as a child of the old HEAD - Fix
switch --detachto a commit with no labels rendering a blank image - Fix
tag <name> <commit>title - Fix
mvaccepting untracked or missing files - Fix
stash popcrash - Fix
config --listcrash on newer typer versions, and config listings overflowing their box - Fix repositories with only one or two commits
- Fix
logtaking minutes on large histories with merges - Fix doubled backslashes in Windows remote paths in
pull,fetch, andpush
Technical
- Render static images with skia instead of Manim, in well under a second
- Require Python 3.10 to 3.14, tested on Linux, macOS, and Windows
- Check every command and option against what Git actually does across many repo shapes, and on six real open-source repos up to git/git
- Save Docker image output in the mounted repo
- Name any graphics library missing on minimal Linux systems (servers, Docker, CI, WSL)
Full Changelog: v0.3.5...v0.4.0