{"id":51095657,"url":"https://github.com/gufranco/tmux-git-revamped","last_synced_at":"2026-06-24T06:02:36.348Z","repository":{"id":366243527,"uuid":"1275577683","full_name":"gufranco/tmux-git-revamped","owner":"gufranco","description":"Per-pane git status for tmux: branch, changes, ahead/behind, stash, and provider PR/issue counts. Non-blocking, no temp files, 95%+ tested","archived":false,"fork":false,"pushed_at":"2026-06-20T22:24:37.000Z","size":30,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T00:13:34.467Z","etag":null,"topics":["bash","branch","dotfiles","git","git-status","shell","status-bar","statusline","terminal","tmux","tmux-plugin","tpm","vcs"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gufranco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-20T22:00:04.000Z","updated_at":"2026-06-20T22:24:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gufranco/tmux-git-revamped","commit_stats":null,"previous_names":["gufranco/tmux-git-revamped"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/gufranco/tmux-git-revamped","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-git-revamped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-git-revamped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-git-revamped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-git-revamped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gufranco","download_url":"https://codeload.github.com/gufranco/tmux-git-revamped/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gufranco%2Ftmux-git-revamped/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34719307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","branch","dotfiles","git","git-status","shell","status-bar","statusline","terminal","tmux","tmux-plugin","tpm","vcs"],"created_at":"2026-06-24T06:02:35.282Z","updated_at":"2026-06-24T06:02:36.332Z","avatar_url":"https://github.com/gufranco.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1\u003etmux-git-revamped\u003c/h1\u003e\n\n**Git repository status in your tmux status bar, without ever blocking the render.**\n\n[![Tests](https://github.com/gufranco/tmux-git-revamped/actions/workflows/tests.yml/badge.svg)](https://github.com/gufranco/tmux-git-revamped/actions/workflows/tests.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n\u003c/div\u003e\n\n**2** placeholders · **2** platforms · **77** tests · **95%+** coverage\n\nThe active pane's repository at a glance: branch, changed files, inserted and deleted lines, and untracked files, with optional stash, ahead and behind counts, last-commit age, and provider pull-request and issue counts. The full status can run slow work, so it is cached per directory and refreshed by a detached worker. The status line reads the cached value and returns instantly. No temp files are touched.\n\nBuilt from [tmux-plugin-template](https://github.com/gufranco/tmux-plugin-template).\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eNon-blocking\u003c/strong\u003e\u003cbr\u003eThe status renders instantly from a cached tmux user-option while a background worker runs git.\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eNo temp files\u003c/strong\u003e\u003cbr\u003eThe per-directory cache lives in tmux server options, nothing on disk.\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003ePer pane\u003c/strong\u003e\u003cbr\u003eEach entry follows the active pane's path, so split panes track different repositories.\u003c/td\u003e\n\u003ctd\u003e\u003cstrong\u003eTested\u003c/strong\u003e\u003cbr\u003e95%+ line coverage enforced in CI.\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n## Placeholders\n\nAdd either of these to `status-left` or `status-right`:\n\n| Placeholder | Output |\n|-------------|--------|\n| `#{git}` | the full status, for example `main ~ 2 + 7 - 1 ? 3` |\n| `#{git_branch}` | the current branch only |\n\nBoth resolve against the active pane's path and render nothing outside a repository.\n\n## Install\n\nWith [TPM](https://github.com/tmux-plugins/tpm), add to `~/.tmux.conf`:\n\n```tmux\nset -g @plugin 'gufranco/tmux-git-revamped'\nset -g status-right '#{git}'\n```\n\nThen press `prefix + I` to install.\n\nManual install:\n\n```bash\ngit clone https://github.com/gufranco/tmux-git-revamped ~/.tmux/plugins/tmux-git-revamped\nrun-shell ~/.tmux/plugins/tmux-git-revamped/git-revamped.tmux\n```\n\n## Configuration\n\nEach segment has a `_color` and an `_icon` option, so the icons below are defaults\nyou can replace with Nerd Font glyphs.\n\n| Option | Default | Meaning |\n|--------|---------|---------|\n| `@git_revamped_interval` | `5` | seconds a cached status stays fresh |\n| `@git_revamped_max_branch` | `25` | branch length before it is shortened |\n| `@git_revamped_untracked` | `1` | set to `0` to hide the untracked count |\n| `@git_revamped_staged` | `0` | set to `1` to show the staged (indexed) count |\n| `@git_revamped_conflict` | `1` | set to `0` to hide the conflict count |\n| `@git_revamped_state` | `1` | set to `0` to hide the in-progress operation label (rebase, merge, cherry-pick, revert, bisect, am) |\n| `@git_revamped_stash` | `0` | set to `1` to show the stash count |\n| `@git_revamped_ahead_behind` | `0` | set to `1` to show commits ahead and behind |\n| `@git_revamped_autofetch` | `0` | set to `1` to fetch in the background so ahead/behind stays current; no crontab or shell-rc edits |\n| `@git_revamped_autofetch_interval` | `5` | minutes between background fetches |\n| `@git_revamped_last_commit` | `0` | set to `1` to show the last-commit age |\n| `@git_revamped_web` | `0` | set to `1` to show provider counts: PR, review, and issue on GitHub and GitLab, plus a bug count on GitHub |\n| `@git_revamped_branch_{color,icon}` | empty | branch styling |\n| `@git_revamped_changed_{color,icon}` | yellow, `~` | modified-file styling |\n| `@git_revamped_insertions_{color,icon}` | green, `+` | inserted-lines styling |\n| `@git_revamped_deletions_{color,icon}` | red, `-` | deleted-lines styling |\n| `@git_revamped_untracked_{color,icon}` | blue, `?` | untracked-file styling |\n| `@git_revamped_staged_{color,icon}` | green, `S` | staged-file styling |\n| `@git_revamped_conflict_{color,icon}` | red, `!` | conflict styling |\n| `@git_revamped_state_{color,icon}` | yellow, none | in-progress operation label styling |\n| `@git_revamped_stash_{color,icon}` | magenta, `$` | stash styling |\n| `@git_revamped_ahead_{color,icon}` | green, `^` | ahead styling |\n| `@git_revamped_behind_{color,icon}` | yellow, `v` | behind styling |\n| `@git_revamped_commit_{color,icon}` | blue, `@` | last-commit styling |\n| `@git_revamped_{pr,review,issue,bug}_{color,icon}` | see defaults | provider segment styling |\n\n\u003e [!IMPORTANT]\n\u003e The `@git_revamped_web` segment calls the GitHub or GitLab API on every refresh\n\u003e and needs `gh` plus `jq`, or `glab`, installed and authenticated. It is off by\n\u003e default. Leave it off unless you accept the API calls and their rate limits.\n\u003e On GitHub, issues labeled `bug` count toward the bug segment and are excluded\n\u003e from the issue segment, so the two never double-count the same issue.\n\n## Theme color suggestions\n\nThe defaults use the 16 ANSI color names, which the active terminal theme remaps,\nso the segments match any theme out of the box. For exact hex values, copy one\nblock below into `~/.tmux.conf`.\n\n### Catppuccin Mocha\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#a6e3a1]'\nset -g @git_revamped_ahead_color '#[fg=#a6e3a1]'\nset -g @git_revamped_changed_color '#[fg=#f9e2af]'\nset -g @git_revamped_behind_color '#[fg=#f9e2af]'\nset -g @git_revamped_deletions_color '#[fg=#f38ba8]'\nset -g @git_revamped_bug_color '#[fg=#f38ba8]'\nset -g @git_revamped_untracked_color '#[fg=#89b4fa]'\nset -g @git_revamped_commit_color '#[fg=#89b4fa]'\nset -g @git_revamped_issue_color '#[fg=#89b4fa]'\nset -g @git_revamped_pr_color '#[fg=#94e2d5]'\nset -g @git_revamped_stash_color '#[fg=#cba6f7]'\nset -g @git_revamped_review_color '#[fg=#cba6f7]'\n```\n\n### Dracula\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#50fa7b]'\nset -g @git_revamped_ahead_color '#[fg=#50fa7b]'\nset -g @git_revamped_changed_color '#[fg=#f1fa8c]'\nset -g @git_revamped_behind_color '#[fg=#f1fa8c]'\nset -g @git_revamped_deletions_color '#[fg=#ff5555]'\nset -g @git_revamped_bug_color '#[fg=#ff5555]'\nset -g @git_revamped_untracked_color '#[fg=#bd93f9]'\nset -g @git_revamped_commit_color '#[fg=#bd93f9]'\nset -g @git_revamped_issue_color '#[fg=#bd93f9]'\nset -g @git_revamped_pr_color '#[fg=#8be9fd]'\nset -g @git_revamped_stash_color '#[fg=#ff79c6]'\nset -g @git_revamped_review_color '#[fg=#ff79c6]'\n```\n\n### Nord\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#a3be8c]'\nset -g @git_revamped_ahead_color '#[fg=#a3be8c]'\nset -g @git_revamped_changed_color '#[fg=#ebcb8b]'\nset -g @git_revamped_behind_color '#[fg=#ebcb8b]'\nset -g @git_revamped_deletions_color '#[fg=#bf616a]'\nset -g @git_revamped_bug_color '#[fg=#bf616a]'\nset -g @git_revamped_untracked_color '#[fg=#81a1c1]'\nset -g @git_revamped_commit_color '#[fg=#81a1c1]'\nset -g @git_revamped_issue_color '#[fg=#81a1c1]'\nset -g @git_revamped_pr_color '#[fg=#88c0d0]'\nset -g @git_revamped_stash_color '#[fg=#b48ead]'\nset -g @git_revamped_review_color '#[fg=#b48ead]'\n```\n\n### Gruvbox Dark\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#b8bb26]'\nset -g @git_revamped_ahead_color '#[fg=#b8bb26]'\nset -g @git_revamped_changed_color '#[fg=#fabd2f]'\nset -g @git_revamped_behind_color '#[fg=#fabd2f]'\nset -g @git_revamped_deletions_color '#[fg=#fb4934]'\nset -g @git_revamped_bug_color '#[fg=#fb4934]'\nset -g @git_revamped_untracked_color '#[fg=#83a598]'\nset -g @git_revamped_commit_color '#[fg=#83a598]'\nset -g @git_revamped_issue_color '#[fg=#83a598]'\nset -g @git_revamped_pr_color '#[fg=#8ec07c]'\nset -g @git_revamped_stash_color '#[fg=#d3869b]'\nset -g @git_revamped_review_color '#[fg=#d3869b]'\n```\n\n### Tokyo Night\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#9ece6a]'\nset -g @git_revamped_ahead_color '#[fg=#9ece6a]'\nset -g @git_revamped_changed_color '#[fg=#e0af68]'\nset -g @git_revamped_behind_color '#[fg=#e0af68]'\nset -g @git_revamped_deletions_color '#[fg=#f7768e]'\nset -g @git_revamped_bug_color '#[fg=#f7768e]'\nset -g @git_revamped_untracked_color '#[fg=#7aa2f7]'\nset -g @git_revamped_commit_color '#[fg=#7aa2f7]'\nset -g @git_revamped_issue_color '#[fg=#7aa2f7]'\nset -g @git_revamped_pr_color '#[fg=#7dcfff]'\nset -g @git_revamped_stash_color '#[fg=#bb9af7]'\nset -g @git_revamped_review_color '#[fg=#bb9af7]'\n```\n\n### Solarized Dark\n\n```tmux\nset -g @git_revamped_insertions_color '#[fg=#859900]'\nset -g @git_revamped_ahead_color '#[fg=#859900]'\nset -g @git_revamped_changed_color '#[fg=#b58900]'\nset -g @git_revamped_behind_color '#[fg=#b58900]'\nset -g @git_revamped_deletions_color '#[fg=#dc322f]'\nset -g @git_revamped_bug_color '#[fg=#dc322f]'\nset -g @git_revamped_untracked_color '#[fg=#268bd2]'\nset -g @git_revamped_commit_color '#[fg=#268bd2]'\nset -g @git_revamped_issue_color '#[fg=#268bd2]'\nset -g @git_revamped_pr_color '#[fg=#2aa198]'\nset -g @git_revamped_stash_color '#[fg=#d33682]'\nset -g @git_revamped_review_color '#[fg=#d33682]'\n```\n\n## Support by platform and architecture\n\nWorks on every supported platform and architecture with built-in tools. The status\nreads through `git`, which is required, on Linux (x86_64 and arm64) and macOS\n(Intel and Apple Silicon). The optional provider segment additionally needs `gh`\nand `jq` for GitHub, or `glab` for GitLab; without them that segment stays empty.\n\n## Development\n\n```bash\nmake test    # bats suite\nmake lint    # shellcheck\nmake coverage  # kcov line coverage on Linux\n```\n\n## License\n\n[MIT](LICENSE), copyright Gustavo Franco.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgufranco%2Ftmux-git-revamped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgufranco%2Ftmux-git-revamped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgufranco%2Ftmux-git-revamped/lists"}