27 min read

Install git-sim and Share Live Graphs with Localtonet

Install git-sim with pipx or uv, verify its live Git graph locally, then share its local HTTP service securely through Localtonet.

Developer Tools and Git Visualization ยท git-sim ยท Localtonet ยท 2026

Visualize Git workflows locally, then make a live graph available to remote collaborators

git-sim can simulate Git commands, visualize repository history, and record Git operations as a live interactive sequence. This guide installs git-sim with pipx or uv, verifies it in a real Git repository, starts live mode, and identifies the local HTTP endpoint reported by the installed version. We then connect that verified endpoint to a Localtonet HTTP tunnel so an authorized collaborator can reach it without inbound router port forwarding, firewall changes, a public IP address, or VPN setup. The tutorial also explains installation paths, security boundaries, runtime dependencies, troubleshooting, and when git-sim's own sharing options are more appropriate than a tunnel.

๐Ÿ”’ Local verification before exposure ๐ŸŒ Public HTTPS access through Localtonet โšก Self-contained pipx and uv setup paths
A local git-sim graph shared through a tunnel to a remote browser
git-sim runs against the local repository, while Localtonet provides temporary remote reachability to the verified HTTP endpoint.

How git-sim and Localtonet fit together

git-sim is a free and open-source Git visualization tool. It can simulate individual Git commands, record repository activity in live mode, and present the result as an interactive graph. A normal simulation shows what a Git operation would do without executing the corresponding real Git command, so the simulation itself does not modify the repository.

The basic simulation pattern is to use git-sim in place of git. For example, git-sim merge dev visualizes the expected effect of merging a branch named dev. The real command git merge dev is not run. This makes simulation useful for learning, reviewing a potentially risky operation, explaining branch topology, and examining the likely result before deciding whether to perform the real operation.

Live mode addresses a different question. Instead of asking what one command would do, git-sim live records Git operations performed by a person or an automated agent and presents them as a visual command sequence. The sequence can be inspected, replayed, saved, and shared. The project's current overview and installation guidance are available on the official git-sim product page.

Localtonet does not create or analyze the graph. Our role begins after git-sim is installed and its live interface works locally. The Localtonet client establishes an outbound connection from the device to one of our relay servers. An HTTP tunnel then routes the assigned public HTTPS address to the local HTTP endpoint that git-sim is already serving.

This arrangement does not require inbound router port forwarding, firewall changes, a public IP address, or VPN setup. It also does not bypass application authorization or organizational network policy. The person operating the repository remains responsible for deciding whether the displayed metadata is suitable to expose and for applying appropriate access controls.

๐Ÿ”Ž Command simulation Prefix an applicable Git command with git-sim to visualize its expected effect without executing the real operation.
๐Ÿ“ˆ Live repository sequence Live mode records Git operations as an interactive sequence that can be reviewed, replayed, saved, and shared.
โœ… Verified local target The tunnel is configured only after the exact local URL reported by the installed git-sim version works in a browser.
๐ŸŒ Outbound HTTP tunnel Our client connects outward to a Localtonet relay and routes the public address to the selected local IP address and port.
๐Ÿ”— Built-in sharing alternatives git-sim also supports links and output formats for sharing completed visualizations without providing access to a running local service.
โน๏ธ Temporary availability Remote access requires the git-sim service, the selected Localtonet client, and the tunnel itself to remain running.

When a tunnel is useful

A Localtonet HTTP tunnel is useful when a remote collaborator needs to open the currently running live interface. Examples include demonstrating a branching workflow during a call, reviewing Git operations performed by an automated process, or observing repository activity from a device that cannot reach the development computer directly.

A tunnel is not required for every git-sim result. By default, a regular simulation creates an interactive visualization that opens in a browser. The project documents that its graph data is compressed into the URL fragment, which is the part after #. Browsers do not send that fragment to the web server. The generated page is also saved locally, and the documented --open-in local option can open that local file instead of invoking the hosted viewer.

git-sim also offers an explicit public-link workflow. Creating a public link stores the graph data on the project's servers and provides a deletion link. If a recipient only needs a finished visualization, a link, HTML page, PNG, SVG, or other supported output can be simpler than maintaining a live process and tunnel.

A live tunnel and a saved visualization solve different problems

Use a saved or built-in git-sim sharing format for a completed artifact. Use a Localtonet HTTP tunnel when the recipient specifically needs the live interface being served from your device. Do not keep a live service exposed when a static artifact would satisfy the collaboration requirement.

Prepare Python, Git, and a repository

Install git-sim on the computer that contains the Git repository you want to visualize. The project currently documents support for Windows, macOS, and Linux, with Python 3.10 through 3.14 and Git installed. Version support can change, so check the current git-sim repository before installing into a long-lived environment.

Requirement Required state Verification
Operating system Windows, macOS, or Linux Use a terminal appropriate for the installed system.
Python Python 3.10 through 3.14 python --version, python3 --version, or py --version
Git A working Git installation git --version
Package tool pipx or uv for the isolated installation paths below pipx --version or uv --version
Repository An existing local Git repository Run git status from its working directory.
Localtonet client Needed only for public remote access Confirm that the intended device is connected before creating the tunnel.

Check Python and Git

Start by checking Python and Git in the same terminal and user account that will run git-sim:

python --version
git --version

Python command names vary. On many Linux and macOS installations the command is python3. The Windows Python launcher commonly uses py. If python is not recognized, try the command appropriate for your installation:

python3 --version

On Windows:

py --version

Continue only after confirming that the interpreter is in git-sim's supported range. A successful git --version response confirms that Git is available through the shell, but it does not prove that the current directory is a repository.

Confirm the repository

Change into the intended repository and run:

git status

Review the current branch and working-tree state. A git-sim simulation does not execute the corresponding Git operation, but actual Git commands performed while live mode is running retain their normal behavior. Knowing whether there are staged files, uncommitted changes, or an unexpected active branch remains important.

Account for minimal Linux installations

Minimal Linux systems, including some servers, containers, CI runners, and WSL environments, may lack libraries needed by git-sim. The project specifically identifies libEGL, libGL, and fontconfig. Install them only when the applicable environment needs them.

For Debian, Ubuntu, and WSL environments based on them:

sudo apt install libegl1 libgl1 libfontconfig1

For Fedora and RHEL environments:

sudo dnf install mesa-libEGL mesa-libGL fontconfig
Review privileged package operations

These commands use sudo and modify system packages. Confirm the distribution family and review the package operation before approving it. They address the libraries identified by git-sim's documentation, but they are not a universal solution for unrelated installation errors.

Install pipx or uv and verify the command path

The git-sim project documents pip, pipx, and uv installation commands. This tutorial focuses on pipx and uv because both provide dedicated workflows for installing Python command-line applications. You need only one of them.

Two isolated installation paths for git-sim using pipx or uv
Select either pipx or uv, verify that tool, and then use it consistently for the git-sim installation.

Option A: install pipx

Use the maintained official pipx installation instructions when choosing a platform-specific method. If Python and pip are already available, pipx documents installation through the Python module interface.

On Linux or macOS with a Python installation that permits user-level pip packages:

python3 -m pip install --user pipx
python3 -m pipx ensurepath

On Windows with the Python launcher:

py -m pip install --user pipx
py -m pipx ensurepath

The ensurepath operation adds pipx's executable location to the applicable user path when necessary. Close all terminal windows and open a new one after it completes, then verify:

pipx --version

Package-management rules differ among operating systems and Python distributions. Some managed Python installations discourage or block direct pip changes. If the commands above are rejected by the platform, do not override that protection blindly. Use the operating-system method listed in the current pipx documentation instead.

Option B: install uv

uv publishes maintained installation methods in its official installation guide. Its standalone installer can be used on macOS and Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

The documented PowerShell installer for Windows is:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Inspect downloaded installation scripts when required by your security policy

Piping a remote script directly into a shell is convenient, but it may not be appropriate in every organization. Review the official uv installation page, inspect the script, validate the source, or use another documented installation method if your environment requires package approval.

Open a new terminal after installation and verify:

uv --version

Resolve PATH issues before installing git-sim

A package can install successfully while its executable directory remains absent from the shell's PATH. If pipx or uv is not recognized, first close and reopen the terminal. Then use the package tool's official installation guidance to add the displayed executable directory to the user path.

On macOS or Linux, you can inspect the current path with:

printf '%s\n' "$PATH"

On Windows PowerShell:

$env:Path -split ';'

Do not guess a directory or repeatedly reinstall the same package. Confirm where the selected tool placed its executables, update the path through the documented method, start a new terminal, and run its version check again.

Install git-sim with one package tool

Once pipx or uv works, install git-sim with that tool. Avoid installing the same application through several Python environments unless you intentionally need separate versions. Multiple installations can make it difficult to determine which executable the shell is running.

1

Open a terminal as the intended user

Use the account that will run git-sim. Recheck Python, Git, and the selected package tool before continuing.

2

Install git-sim with pipx or uv

Run the command for the one package tool you selected. There is no need to complete both installation paths.

3

Open a new terminal if needed

A new shell session reloads user path changes made while installing pipx, uv, or the application executable.

4

Verify the git-sim executable

Run git-sim -h. The command should display current help from the installed version.

Install with pipx

pipx install git-sim
git-sim -h

Install with uv

uv tool install git-sim
git-sim -h

Direct pip alternative

The project also documents:

pip install git-sim

Use direct pip only when you intentionally manage the relevant Python environment. For a standalone command-line program, pipx or uv usually makes the application boundary clearer.

Animated video output is a separate requirement

git-sim's --animate functionality requires Manim. That dependency is not required merely to install git-sim, create its normal web-first simulation, or begin the live-mode workflow covered here.

Test git-sim with a non-destructive simulation

Enter the repository you intend to visualize and run git status first. Then choose a branch or reference that actually exists in that repository. For example:

git-sim merge dev

This visualizes the expected effect of merging the repository's dev branch. It does not execute git merge dev. Replace dev with a real branch in your repository if necessary.

Other examples documented by the project include:

git-sim reset --hard HEAD^
git-sim rebase main

These are simulation examples. They are not recommendations to run the corresponding real Git operations. Simulation can improve understanding, but it does not replace backups, branch protection, code review, or knowledge of the real command.

Use local output for a normal simulation when appropriate

For normal simulations, git-sim documents --open-in local as a way to open the generated local file without invoking the hosted viewer. Check git-sim -h and the applicable subcommand help for the current placement of global options in your installed release.

Do not assume that an option documented for ordinary simulation output also changes live mode. The primary material supplied for this revision confirms git-sim live, but it does not establish that --open-in local is a supported live-mode option. The remote-access procedure therefore does not depend on combining those arguments.

Create a disposable repository for demonstrations

git-sim includes a git-dummy utility that can generate a sample repository structure. Its documented sample scenario is:

git-dummy --scenario orders

Run repository-generating tools only in a directory where creating a sample repository is appropriate. A disposable repository is the safest choice for training sessions that will include real Git operations.

Start live mode and identify its actual local endpoint

From inside the intended repository, begin with the command confirmed by the current git-sim project documentation:

git-sim live

Keep the terminal open and read the startup output from your installed version. Record the complete local URL it reports or opens, including the hostname and port. Use that runtime output rather than relying on an old article's assumed bind address, assumed default port, or unsupported option combination.

If you want to control the port, inspect the installed version's live-mode help before selecting one:

git-sim live -h

If that help lists an explicit port option, select an unused port and use the exact syntax shown by your installed version. Choosing a fixed port can make the Localtonet target easier to manage, but this guide does not claim a default port or invent an option not established by the installed CLI.

Use the endpoint printed by git-sim

The authoritative target for this workflow is the local URL reported by the running process. Extract its hostname and port for Localtonet only after the page works locally. If the installed version reports 127.0.0.1, run our client on the same device because that address refers only to the current host.

Verify the interface locally

Terminal and browser confirming that a git-sim live graph loads from its local URL
Confirm the exact local endpoint and live behavior before adding any public tunnel.
1

Keep git-sim live running

Leave the terminal open and check it for startup errors, missing dependencies, or an immediate process exit.

2

Open the reported local URL

Use the complete URL printed or opened by git-sim. Do not substitute a hostname or port from an older installation.

3

Confirm the correct interface appears

Verify that the browser displays the git-sim live page rather than a connection error, directory listing, or unrelated service.

4

Observe an intentional repository operation

In a separate terminal, perform an operation appropriate for the same repository and confirm that the local live interface records it. Prefer a disposable repository for experiments.

Do not assume undocumented real-time transport behavior

A live browser interface may use polling, server-sent events, WebSockets, or another mechanism to receive updates. The primary git-sim evidence supplied for this revision confirms real-time recording and an interactive live graph, but it does not specify the transport, origin policy, or browser-specific requirements used by the current implementation.

For that reason, this guide does not tell you to add invented WebSocket headers, rewrite an origin, disable browser security, or change an undocumented git-sim setting. Local verification proves that the application works on its own. Later, remote verification must prove both that the page loads and that updates arrive through the public URL.

Live visualization does not make real Git operations safe

Actual Git commands performed while live mode is active retain their normal effects. Use a disposable repository for demonstrations, preserve important work, review risky commands, and follow your normal backup and branch-protection practices.

Configure the Localtonet HTTP tunnel

Remote browser traffic reaching a local git-sim service through a Localtonet HTTP tunnel
The Localtonet client carries requests from the public address to the exact local git-sim endpoint you verified.

Continue only after the live page works through its local URL. The configuration sequence below follows the Localtonet HTTP tunnel lifecycle: install and run the client, open the HTTP tunnel configuration, select a Process Type, select the device token and relay, enter the local target, start the tunnel, verify the public address, and stop or delete the tunnel when finished.

See the official Localtonet HTTP tunnel documentation alongside this tutorial for the current dashboard workflow. Dashboard labels and available relay choices can change over time.

Localtonet client installation detail

Install the Localtonet client using the current platform-specific download or installation path presented by the Localtonet dashboard and official documentation. The verified evidence supplied for this article does not establish current Windows, macOS, or Linux installation commands, so we do not invent commands or package URLs. After installation, run the client on the device that can reach the local git-sim endpoint.

1

Install and run the Localtonet client

Use the supported installation path currently provided for your operating system. Run the client on the git-sim host when the target uses a loopback hostname or IP address.

2

Open the HTTP tunnel configuration

In the Localtonet dashboard, begin an HTTP tunnel configuration for the browser-based git-sim service.

3

Select the Process Type

Choose Random Sub Domain, Custom Sub Domain, or Custom Domain as available for your current configuration. Each process type serves the target through a public HTTPS address. Custom-domain DNS requirements must be checked against the current documentation before use.

4

Select the device authentication token

Select the device-specific token for the client that can reach git-sim. Never guess, publish, record, or paste the token into repository files or article examples.

5

Select a current relay server

Choose from the server or region values currently offered by the dashboard. Do not copy a hardcoded server code from an old guide because availability can vary.

6

Enter the local IP address and port

Split the verified git-sim local URL into its host and port. Enter those exact values as the HTTP tunnel target. If git-sim reports 127.0.0.1, the selected Localtonet client must run on that same computer.

7

Start the tunnel

Creating the configuration does not make it active. Use the Start control and wait for the tunnel to run. Localtonet then provides the public address associated with that tunnel.

8

Verify the public live interface

Open the assigned public URL from a separate browser session or remote network. Confirm that the page loads, then perform an appropriate test operation in the watched repository and confirm that the remote page receives the update.

9

Stop the session cleanly

When collaboration is complete, stop or delete the Localtonet tunnel and stop git-sim live. Confirm that the public URL no longer provides access.

Running the client on the same device is mandatory when git-sim reports a loopback target such as 127.0.0.1 or localhost. Loopback always means the device on which the connecting process runs. A client on another computer would try to reach its own loopback interface rather than the git-sim host.

The public page has three runtime dependencies

The endpoint remains available only while git-sim live is serving the local page, the selected Localtonet client is connected, and the tunnel is started. A failure or shutdown at any layer interrupts remote access.

Verify the complete traffic path

  1. Open the exact local URL on the git-sim computer.
  2. Confirm that the local live page records an appropriate repository operation.
  3. Confirm that the selected Localtonet device is connected.
  4. Confirm that the tunnel uses the same local hostname or IP address and port.
  5. Confirm that the tunnel is started rather than merely saved.
  6. Open the public URL from a separate session.
  7. Confirm that a new live update appears remotely, not merely that the initial HTML loads.

The last check is important. A successfully loaded page proves basic HTTP routing, but a live application can have a separate update channel. If the page loads and subsequent updates do not arrive, preserve the working target and diagnose the browser and application behavior before making speculative tunnel changes.

Secure the shared Git visualization

A Git graph can reveal branch names, tags, commit relationships, workflow timing, command history, and other project metadata. Even if the interface does not expose source files, its repository information may still be confidential.

A public URL is reachable from the internet. Do not treat an obscure address as authorization. Review the page as an external viewer would see it, limit the audience and duration, and use a sanitized repository when real project metadata is unnecessary.

๐Ÿ‘ฅ Limit the audience Share the URL only with intended collaborators and apply suitable application or access controls when the repository information is sensitive.
โฑ๏ธ Limit the duration Start the tunnel for the collaboration window and stop or delete it immediately afterward.
๐Ÿงช Prefer disposable repositories Use a sample or sanitized repository when collaborators do not need to inspect genuine project history.
๐Ÿ”‘ Protect device tokens Keep Localtonet device tokens out of repositories, recordings, screenshots, shared terminals, and browser content.
HTTPS is not the same as viewer authorization

Localtonet HTTP process types serve content at a public HTTPS address, but encrypted delivery does not by itself decide who is permitted to view the application. This guide does not claim that git-sim live provides user authentication or that every Localtonet access-control option is available in every plan. Confirm and apply the controls available in your current setup before exposing sensitive content.

Keep credentials outside the repository

The Localtonet device token is not part of git-sim configuration. Never store it in a Git-tracked file, graph title, shell script committed to the repository, or terminal recording. If a secret is exposed, follow the appropriate credential-rotation procedure rather than relying on deletion of the visible copy.

Use a shutdown checklist

  • Stop or delete the Localtonet tunnel.
  • Stop the git-sim live process.
  • Confirm that the public URL no longer loads the application.
  • Close unnecessary terminals and browser sessions.
  • Review whether any shared link, screenshot, or recording contains sensitive metadata.

Troubleshoot installation, live mode, and remote access

Python is not recognized

Try the interpreter command appropriate for the platform, such as python3 on Linux or macOS or py on Windows. Confirm that the version is within the range currently supported by git-sim. Do not assume that an unsupported older or newer interpreter will work.

pipx or uv is installed, but the command is unavailable

Close all terminal windows and open a new one. Run the package tool's version command again. If it still fails, inspect the current PATH and follow the official pipx or uv path instructions. Do not install repeated copies into different environments before resolving command discovery.

git-sim is installed, but git-sim is not recognized

Confirm that the same user account performed the installation. Open a new terminal and run git-sim -h. Use the selected package manager's environment information to find the application executable, then correct the user path through its documented procedure.

git-sim reports missing graphics or font libraries

On applicable Debian, Ubuntu, or WSL environments:

sudo apt install libegl1 libgl1 libfontconfig1

On Fedora or RHEL:

sudo dnf install mesa-libEGL mesa-libGL fontconfig

If the error names a different dependency, investigate that exact error rather than assuming these packages solve every startup failure.

The current directory is not a Git repository

Run git status. If Git reports the same problem, change into the intended repository before running a simulation or starting live mode. Also confirm that the live process and the terminal performing operations refer to the same repository.

The local live page does not open

Inspect the git-sim terminal for an error or process exit. Use the complete local URL reported by the running version. Do not substitute an assumed default port. If the process reports a conflict, consult git-sim live -h for the current supported way to choose another port.

The local page works, but the public URL does not

Confirm that the Localtonet client is connected on a device that can reach the target. If the target is loopback, the client must run on the git-sim host. Recheck the Process Type, selected device token, current relay, local IP address, local port, and tunnel status. A saved tunnel is not active until it is started.

The public URL shows a different application

The configured port may belong to another local process. Open the exact target locally and verify its identity. Then compare the browser URL with the Localtonet IP and port fields. Correct the mismatch and restart the tunnel if required.

The remote page loads but does not update

First confirm that the local browser receives the same update. Verify that the operation occurred in the repository watched by git-sim. Then test the public URL in a fresh browser session and inspect browser developer tools and the git-sim terminal for connection errors.

Do not assume that a WebSocket, origin, or browser configuration change is required without an error that supports that conclusion. The supplied primary evidence does not document a mandatory manual setting for the real-time transport. Record the installed git-sim version, browser, public and local behavior, and any console error before consulting current project guidance.

The public URL worked and then stopped

Check the three runtime dependencies independently. The git-sim process may have stopped, the Localtonet device may have disconnected, or the tunnel may have been stopped. Laptop sleep, terminal closure, process interruption, and network changes can affect a temporary session even when its saved configuration remains intact.

Frequently asked questions

What operating systems and Python versions does git-sim support?

The current project documentation lists Windows, macOS, and Linux, with Python 3.10 through 3.14 and Git. Minimal Linux environments may also require EGL, OpenGL, and font configuration libraries.

Should I install git-sim with pipx or uv?

Either is documented by the git-sim project. Use pipx install git-sim if pipx fits your workflow, or uv tool install git-sim if you use uv. You need only one. Direct installation with pip install git-sim is also documented for intentionally managed Python environments.

Does a git-sim simulation change my repository?

No. A simulation visualizes the expected result without running the corresponding real Git command. Actual Git commands performed while live mode is running still have their normal effects.

Which port should I use for git-sim live?

Use the local URL reported by your installed version. If you want a specific port, run git-sim live -h and use the exact supported option shown there. This guide does not rely on an assumed default port.

Can I use --open-in local with live mode?

The project documents --open-in local for opening a normal generated simulation locally. The primary evidence supplied for this guide does not establish that the option can be combined with live mode, so the tunnel workflow does not depend on that combination. Check the help from your installed release before using an option with git-sim live.

Does the Localtonet client have to run on the same computer?

It must run on the same computer when git-sim reports a loopback target such as 127.0.0.1 or localhost. For any other target, the client must run on a device that can reach the reported local IP address and port.

Do I need Localtonet to share every git-sim graph?

No. git-sim supports shareable links and output formats including HTML, PNG, SVG, and MP4, as well as local output. A Localtonet tunnel is relevant when a remote viewer needs to reach the currently running live HTTP interface.

Does creating a Localtonet tunnel start it automatically?

No. Creating or saving the configuration does not mean the tunnel is running. Use the Start control. You can later stop or delete it when remote access is no longer required.

Why can the page load remotely while live updates still fail?

Loading the initial page proves that basic HTTP routing works, but a live application may use a separate update channel. Confirm local updates first, then inspect the browser and git-sim process for specific errors. Do not add speculative WebSocket or origin settings without evidence from the running version.

Share a verified git-sim live graph with Localtonet

Install git-sim with one supported package tool, validate it in a safe repository, start live mode, and record the exact local endpoint reported by the running process. Once that endpoint works locally, create and start a Localtonet HTTP tunnel to the same IP address and port, verify live updates remotely, and shut the session down when collaboration is complete.

Get Started Free โ†’

Corrections & updates

Substantive changes approved by the Localtonet editorial team are listed transparently below.

Remove the outer article wrapper; move the hero to the beginning and keep the clickable guide card immediately after it; preserve the useful existing diagrams in appropriate sections; add primary links for git-sim, pipx, uv, and Localtonet HTTP tunnels; make the pipx and uv prerequisites self-contained with supported installation and PATH guidance; verify the current git-sim live bind address, port behavior, live-mode options, and any real-time transport requirements; replace the evidence-limitation wording about the default port with

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.

support