Your GitLab work, directly in the Omarchy bar.
Omarchy GitLab turns the GitLab icon in your bar into a fast, keyboard-friendly command center for everything that needs your attention—without keeping another browser tab open.
The dashboard is ordered by urgency so the most actionable work appears first:
- Unread todos — open the related thread, mark it done in place, or clear the whole list
- Review requests — see merge requests waiting on your review
- My merge requests — track the merge requests you opened and the state of their checks
- Assigned issues — keep track of open issues assigned to you
- Active GitLab Pipelines — monitor queued, pending, requested, waiting, and running pipelines
- Recent pipeline failures — jump directly to failed, timed-out, or action-required runs
- Projects — browse the projects you own, and optionally those you reach through an group, with open issue, open MR, star, and active pipeline counts
Project search, metric filters, and sorting make even large GitLab accounts manageable. Filter to projects with issues, MRs, stars, or active Pipelines, then sort by the metric that matters.
- Native Omarchy Quattro bar widget with a GitLab icon
- Compact previews that keep busy accounts readable
- Direct links to todos, merge requests, issues, pipeline runs, and projects
- One-click todo mark-as-done, confirmed by GitLab before removal
- Bulk mark-as-done behind a confirmation step, bounded to the todos on screen
- Complete paginated project and todo fetching
- Configurable Pipelines scanning with bounded concurrency
- Graceful partial results when an endpoint or project is unavailable
- Explicit logged-out, rate-limited, missing CLI, loading, and error states
- Mouse and keyboard navigation throughout
- Uses the existing GitLab CLI credential store—no token configuration or secret files
- Omarchy Quattro with shell plugin support
glabonPATHjq- A Nerd Font; Omarchy includes one by default
Authenticate GitLab CLI before installing:
glab auth login
glab auth statusFor a self-hosted instance, pass its hostname to glab and the widget. The
setting accepts either a hostname or a full HTTP(S) URL; URL subpaths are not
supported.
glab auth login --hostname gitlab.itechmedialogic.com
glab auth status --hostname gitlab.itechmedialogic.com
omarchy bar set syntaxboybe.gitlab hostname gitlab.itechmedialogic.comThis also works as https://gitlab.itechmedialogic.com/ in the widget setting.
The todos scope is required to read todos and mark todos done. The repo scope may be required for private projects, review requests, assigned issues, and Pipelines:
glab auth refresh -h gitlab.com -s todos -s repoFor gitlab.itechmedialogic.com, use the self-hosted hostname instead:
glab auth refresh -h gitlab.itechmedialogic.com -s todos -s repoOmarchy GitLab delegates authentication entirely to glab. It does not read, copy, log, or persist your GitLab token.
Install directly from GitLab and enable the widget:
omarchy plugin add https://github.com/syntaxboybe/omarchy-gitlab.git --enableThe widget defaults to the right side of the bar. To choose its position interactively:
omarchy bar move syntaxboybe.gitlabConfirm the installation:
omarchy plugin list | grep syntaxboybe.gitlabomarchy plugin update syntaxboybe.gitlabIf your Omarchy version only supports updating all third-party plugins:
omarchy plugin updateomarchy plugin remove syntaxboybe.gitlab| Input | Action |
|---|---|
| Left click GitLab icon | Open or close the dashboard |
| Right or middle click GitLab icon | Refresh |
| Click a row | Open it on GitLab |
| Check button on a todo | Mark the todo done after GitLab confirms it |
| Mark all done in the todos footer | Arm the bulk mark-as-done |
| Confirm? on the armed button | Mark every todo on screen done |
j / k or arrow keys |
Move through visible rows |
Enter / Space |
Open the highlighted row |
m |
Mark the highlighted todo done |
/ |
Focus project search |
r |
Refresh |
Escape in search |
Clear search and return to row navigation |
Escape elsewhere |
Close the panel |
Click the gear in the panel header to edit the everyday settings: open links in a browser tab or web app window, project scope, refresh interval, whether the bar icon stays unlit, and whether archived or forked projects appear.
Activity sections show five items initially and expand to a bounded list of 25. Open in GitLab takes you to the corresponding complete GitLab view where one is available.
The todos footer also carries Mark all done. The first click captures the displayed todo snapshot and changes the label to Confirm?; only the second click sends the request. The confirmation lapses after a few seconds, when the panel closes, when a refresh changes the todo list, and whenever another mark is running. Each displayed todo is marked done individually by its ID, so undisplayed or newly arrived todos are left untouched. The dashboard refreshes from GitLab after every attempt; large inboxes processed asynchronously may briefly retain todos that are already on their way out.
Every listed project includes:
- Open issue count
- Open merge request count
- Star count
- Active Pipelines count, when present
- Last-updated time
Use the filter chips to show all projects or only projects with a non-zero issue, MR, star, or active Pipelines count. Sort by update time, name, or any metric. Search always runs against the complete fetched project list, even when rendered rows are capped.
Configure the widget through Omarchy's bar widget settings. Existing installations retain the narrower project scope and bounded Pipelines scan:
| Setting | Default |
|---|---|
| Refresh interval | 900 seconds (15 minutes) |
| Open links | Web app window |
| Include archived projects | Off |
| Include forks | Off |
| Project scope | Owned |
| Include review requests and issues from archived projects | Off |
| Include review requests on drafts | Off |
| Maximum displayed projects | 25 |
| Pipelines scan | Recent projects |
| Recent project scan limit | 15 |
| Pipelines request concurrency | 6 |
| Failed Pipelines window | 7 days |
| Maximum failed Pipelines | 20 |
| Keep the bar icon unlit | Off |
Project scope controls both the project dashboard and the candidate projects for Pipelines scanning. Owned and groups is opt-in. With the default Recent projects scan, Pipelines requests remain capped to the 15 most recently updated projects in that wider scope.
All projects is also opt-in and starts six paginated Pipelines request streams per project on every refresh. Combining it with Owned and groups can consume substantial GitLab API capacity in large groups. Use Recent projects or Off for a bounded scan, and increase the refresh interval when broader monitoring is required.
Set these options from the command line after installing the plugin:
omarchy bar set syntaxboybe.gitlab repositoryScope "Owned and groups"
omarchy bar set syntaxboybe.gitlab actionScanBehavior "Recent projects"Restore the narrowest behavior with:
omarchy bar set syntaxboybe.gitlab repositoryScope "Owned"
omarchy bar set syntaxboybe.gitlab actionScanBehavior "Off"Review requests and assigned issues from archived projects are hidden by default because archived projects are read-only. Review requests on draft merge requests are also hidden by default, while teams that use drafts for early feedback can include them. Each behavior has its own setting.
From an existing checkout, validate and test the plugin:
omarchy plugin validate .
tests/helper-test.sh
tests/panel-source-test.sh
tests/service-source-test.shInstall that checkout for local iteration:
omarchy plugin add "$PWD" --enableThe shell watches local plugin files, making QML iteration fast.
Service.qml schedules an executable helper, omarchy-gitlab-fetch, which calls GitLab exclusively through glab api and processes responses with jq.
- REST retrieves todos, review requests, assigned issues, and merge requests.
- Merge request check state comes from each merge request's head pipeline status.
- Projects are fetched from the REST project list with open-issue and star counts.
- Status-specific, paginated Pipelines requests prevent busy projects from hiding active runs.
- Completed runs are server-bounded to the configured failure window.
- Independent requests allow successful sections to remain available when one endpoint fails.
Run the helper directly to inspect its JSON output:
./omarchy-gitlab-fetch --action-scan recent --action-repo-limit 15 | jqThis plugin is a port of Rob Zolkos's omarchy-github — the dashboard UI, keyboard navigation, sections, and feature set are derived from that work, adapted for GitLab's API and terminology (todos, merge requests, pipelines, projects).
MIT
