Visualize git history as per-machine tunnels in your terminal
Project description
git-tunnel
Visualize your git history as per-machine tunnels in the terminal.
If you work across multiple machines — a MacBook, a Workstation, a Server — git
log treats them all the same. git-tunnel splits each machine into its own
colored column so you can see at a glance where every commit was made.
────────────────────────────────────────────────────────────────────────────────
TIME │ pre git-tunnel │ MacBook │ Workstation │ HASH
────────────────────────────────────────────────────────────────────────────────
2 hours ago │ · · · · · · · · · · · · · · │ WIP: invoice route │ · · · · · · · · · · · · · · │ 2c4930f
3 hours ago │ · · · · · · · · · · · · · · │ · · · · · · · · · · · · · · │ finished validation │ 6f46c9f
1 day ago │ added model │ · · · · · · · · · · · · · · │ · · · · · · · · · · · · · · │ fd7bcad
1 day ago │ initial setup │ · · · · · · · · · · · · · · │ · · · · · · · · · · · · · · │ f3bc95b
────────────────────────────────────────────────────────────────────────────────
■ pre git-tunnel ■ MacBook ■ Workstation
Commits made before git-tunnel was installed appear in a plain white
pre git-tunnel column — no history rewriting, no warnings.
Install
pip install git-tunnel
Or with uv:
uv tool install git-tunnel
Setup (once per machine)
Run the interactive setup:
git-tunnel install
This will:
- Ask for a device name (e.g.
MacBook,Workstation,Server) - Set
git config --global user.device - Install the
prepare-commit-msghook globally - Point
git config --global core.hooksPathat the hook
From this point on, every commit you make will automatically get a
[device:YourDevice] tag appended to the message — silently, without
you doing anything.
Usage
Inside any git repo:
git-tunnel
How it works
git-tunnel uses a global prepare-commit-msg hook that appends a
[device:X] tag to every commit message, where X comes from
git config --global user.device.
Your user.name is never touched — it stays clean for collaboration.
The device tag lives in the commit message body and is stripped from
the display in the tunnel view.
Multiple machines
Set a different device name on each machine:
# MacBook
git-tunnel install # enter "MacBook" when prompted
# Workstation
git-tunnel install # enter "Workstation" when prompted
# Server
git-tunnel install # enter "Server" when prompted
Since the hook is global, it applies to every repo on that machine automatically.
Zero dependencies
git-tunnel uses only the Python standard library and git itself.
No third-party packages required.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file git_tunnel-0.1.0.tar.gz.
File metadata
- Download URL: git_tunnel-0.1.0.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ada13b84c4587d944b6af464d61187eaa10d5614190a82eff41a3807230aff7
|
|
| MD5 |
807166cc925e7787dfa884f8cb2a2a91
|
|
| BLAKE2b-256 |
f3fa75d60619508dd47b47c035f477f1de54308f76dd3c83c99691052573060c
|
File details
Details for the file git_tunnel-0.1.0-py3-none-any.whl.
File metadata
- Download URL: git_tunnel-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e7e12924e672d4a15e6c4b727e2c85d3c939c3ff377c61850b724f885f4ee67
|
|
| MD5 |
e516a4c62612fd0e2684efe1fb1b0616
|
|
| BLAKE2b-256 |
7f26db5f31828ce21033d5b0ada9f826f87c2d3e944233078d9f02c55f185319
|