Each repository card shows icons and badges reflecting its state:
π (or [P]) β Pinned repository.β
(or *) β Starred / favorite repository.β clean (or * clean) β Clean Git repository (in sync, no changes).β dir (or o dir) β Directory exists but is not a git repository.β missing (or x missing) β Path does not exist or is not a directory.[x] / [ ] β Multi-select checkbox, shown on every card once at least one repository is selected with Space.For git repositories, the status indicator shows compact counts for any non-zero values:
| Suffix | Meaning | Colour |
|---|---|---|
N+ |
N files staged for commit | Cyan |
N! |
N files modified but not staged | Yellow |
N? |
N untracked files | Muted |
Nβ |
N conflicted files | Red / Danger |
Nβ |
N commits ahead of upstream (needs push) | Bold Green |
Nβ |
N commits behind upstream (needs pull/fetch) | Bold Yellow |
When all counts are zero, the indicator shows β clean. Press ? or h at any time to see the legend inside the app.
β PARTIAL)When a repository has both staged changes and unstaged changes (modified or untracked) coexisting simultaneously, Gitwig will display a yellow β PARTIAL warning badge next to the repository name on its card.
When a repository has an active Git operation or special state, Gitwig displays a colored status badge:
β CLEAN β No active Git state/operation.β MERGE_HEAD β Active Merge session (contains conflicts).π§ REBASING β Active Interactive/Normal Rebase.β‘ CHERRY-PICK β Active Cherry-pick operation.β‘ REVERTING β Active Revert operation.π BISECTING β Active Bisect session.π¬ APPLYING β Applying patches (mailbox).[LFS])Files tracked by Git LFS will display a blue [LFS] badge next to their names in:
The high-level dashboard stats at the top of the homepage show:
show_stale_projects), the dashboard shows <visible>/<total> repositories, indicating how many are hidden due to being stale.stale_threshold_months in settings).The four sections render as tabs and double as filters: click one, or cycle with Tab / Shift+Tab, to show only the matching repositories. The active tab is drawn as a highlighted block, and Esc returns to the unfiltered list. When a sticky label filter is active (L), the applied label is pinned as a β label βΆ chip at the left of the tab strip β click it to reopen the label picker β and all tab counts scope to that label.
Items support ~ and ~/... expansion, so ~/code/gitwig resolves to your home directory.
Gitwig automatically refreshes all repository statuses in the background every 10 seconds using non-blocking background threads, ensuring the home dashboard is always live and up-to-date. You can also press R to manually refresh the selected itemβs status immediately (e.g. after running a git command externally); the status bar briefly flashes Refreshed to confirm.
Besides the manual bulk fetch (F), Gitwig also fetches repositories automatically in the background on a schedule: every auto_fetch_interval_mins minutes (default 10, 0 disables), with an optional per-repository interval override in the Repository Settings popup (s on the Overview screen).
While a fetch round is running, each cardβs status column shows a Braille spinner and fetching.... When the fetch finishes, the outcome replaces the status for about 30 seconds:
| Indicator | Meaning |
|---|---|
β done |
The remote was reached and refs were updated. |
β auth denied |
Credentials were rejected, or the account lacks permission on this remote. |
β host key |
The remoteβs SSH host key is unknown, changed, or could not be verified. |
β not found |
The remote URL resolves, but the repository does not exist or is not visible. |
β unreachable |
DNS, routing, TLS, or proxy failure β the host could not be contacted. |
β no remote |
The repository has no remote configured, so there is nothing to fetch. Shown in warning colour rather than error colour. |
β timed out |
The remote accepted the connection but did not reply within fetch_timeout_secs. |
β local error |
Git refused the fetch locally (lock file, unwritable ref, and similar). |
β failed |
The failure did not match a known category; open the details for the raw output. |
Successful results fade after the 30-second window and the card returns to its normal status. Failures are kept so an unreachable repository does not silently look healthy again β after the window the card shows its normal status with a small trailing β.
Press E on a failed repository to open the full, sanitised git output along with the remote URL and a suggested remedy. Gitwig never lets git, ssh, or a credential helper prompt on the terminal, so a private or unreachable remote can no longer corrupt the display or hang the app.