A local Git dashboard for people juggling agents and too many repos.
TypeScript
0
260 commits
updated Oct 3, 2026
A local Git dashboard for people juggling agents and too many repos.
Watch agents work live, follow every repo’s git graph, and catch what changed across your workspace — all from one place, without opening a dozen editors.
127.0.0.1 by default.git-juggler is published on PyPI. The recommended way to install it is with
pipx, which puts the git-juggler command on your
PATH in its own isolated environment, without touching your system Python:
pipx install git-juggler
git-juggler [path-to-scan] [--host HOST] [--port PORT] [--no-open]
<path-to-scan> is optional and defaults to the current directory. It is used
to seed the initial search path; after that, search paths are managed in the app
from the welcome wizard or Settings.
--host HOST changes the bind host from the default 127.0.0.1.--port PORT changes the backend port from the default 8788.--no-open disables opening the app in your browser automatically.If you don't have pipx yet:
macOS
brew install pipx
pipx ensurepath
Linux
sudo apt install pipx # Debian/Ubuntu
sudo dnf install pipx # Fedora
pipx ensurepath
Many recent distros (like macOS with Homebrew) block a plain global
pip install outside a virtual environment (PEP 668); pipx is the
supported way around that.
Windows
py -m pip install --user pipx
py -m pipx ensurepath
Restart your terminal after ensurepath so the updated PATH takes effect.
To upgrade later: pipx upgrade git-juggler.
Use the dev script to start both the backend and frontend dev servers:
./scripts/dev.sh [path-to-scan] [--port PORT] [--no-open]
path-to-scan is optional. On first run, it seeds the folder whose immediate children are scanned for Git repos.--port PORT is optional. It changes the backend port from the default 8788; the dev script passes the selected port to Vite automatically.--no-open disables opening the app in your browser automatically.Or run them manually in two terminals:
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/git-juggler <path-to-scan> --reload [--no-open]
cd src/frontend
npm install
npm run dev # http://localhost:5173 (proxies /api and /ws to :8788)
Open http://localhost:5173.
By default, ./scripts/dev.sh opens http://localhost:5173 in your browser.
cd src/frontend && npm install && npm run build
cd ../.. && .venv/bin/git-juggler <path-to-scan> [--no-open]
The backend serves the built frontend in this mode, so only port 8788 is needed. By default, it opens the app in your browser.
The Python wheel includes the built frontend assets. The generated assets are
not committed; scripts/build-package.sh builds them and copies them into the
backend package before creating the distributions.
python3 -m venv .venv
.venv/bin/pip install build
./scripts/build-package.sh
The wheel and source distribution are written to dist/.
Install the wheel locally with:
pipx install dist/git_juggler-*.whl --force
git-juggler <path-to-scan> [--no-open]
Versions are derived from Git tags. GitHub Actions runs the same build, uploads the distributions as artifacts, and publishes tagged releases to PyPI.
TypeScript
54.0%
Python
40.1%
CSS
5.5%
A local Git dashboard for people juggling agents and too many repos.
TypeScript
0
260 commits
updated Oct 3, 2026
A local Git dashboard for people juggling agents and too many repos.
Watch agents work live, follow every repo’s git graph, and catch what changed across your workspace — all from one place, without opening a dozen editors.
127.0.0.1 by default.git-juggler is published on PyPI. The recommended way to install it is with
pipx, which puts the git-juggler command on your
PATH in its own isolated environment, without touching your system Python:
pipx install git-juggler
git-juggler [path-to-scan] [--host HOST] [--port PORT] [--no-open]
<path-to-scan> is optional and defaults to the current directory. It is used
to seed the initial search path; after that, search paths are managed in the app
from the welcome wizard or Settings.
--host HOST changes the bind host from the default 127.0.0.1.--port PORT changes the backend port from the default 8788.--no-open disables opening the app in your browser automatically.If you don't have pipx yet:
macOS
brew install pipx
pipx ensurepath
Linux
sudo apt install pipx # Debian/Ubuntu
sudo dnf install pipx # Fedora
pipx ensurepath
Many recent distros (like macOS with Homebrew) block a plain global
pip install outside a virtual environment (PEP 668); pipx is the
supported way around that.
Windows
py -m pip install --user pipx
py -m pipx ensurepath
Restart your terminal after ensurepath so the updated PATH takes effect.
To upgrade later: pipx upgrade git-juggler.
Use the dev script to start both the backend and frontend dev servers:
./scripts/dev.sh [path-to-scan] [--port PORT] [--no-open]
path-to-scan is optional. On first run, it seeds the folder whose immediate children are scanned for Git repos.--port PORT is optional. It changes the backend port from the default 8788; the dev script passes the selected port to Vite automatically.--no-open disables opening the app in your browser automatically.Or run them manually in two terminals:
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/git-juggler <path-to-scan> --reload [--no-open]
cd src/frontend
npm install
npm run dev # http://localhost:5173 (proxies /api and /ws to :8788)
Open http://localhost:5173.
By default, ./scripts/dev.sh opens http://localhost:5173 in your browser.
cd src/frontend && npm install && npm run build
cd ../.. && .venv/bin/git-juggler <path-to-scan> [--no-open]
The backend serves the built frontend in this mode, so only port 8788 is needed. By default, it opens the app in your browser.
The Python wheel includes the built frontend assets. The generated assets are
not committed; scripts/build-package.sh builds them and copies them into the
backend package before creating the distributions.
python3 -m venv .venv
.venv/bin/pip install build
./scripts/build-package.sh
The wheel and source distribution are written to dist/.
Install the wheel locally with:
pipx install dist/git_juggler-*.whl --force
git-juggler <path-to-scan> [--no-open]
Versions are derived from Git tags. GitHub Actions runs the same build, uploads the distributions as artifacts, and publishes tagged releases to PyPI.
TypeScript
54.0%
Python
40.1%
CSS
5.5%