Note: This is an experimental project for personal use. If it helps someone else, great! No guarantees are provided regarding stability or maintenance. The application may change at any time without backward compatibility.
A macOS menu bar application for tracking GitLab merge requests, pipelines, and releases at a glance.
GitLabBar lives in your macOS menu bar with a color-coded icon that reflects your current status:
| Icon Color | Meaning |
|---|---|
| Red | At least one pipeline has failed |
| Orange | Pipelines are currently running |
| Green | Everything is fine, MRs or pipelines are present |
| Gray | No data or no active account |
The icon status only considers visible items. If you dismiss a failed pipeline, the icon will update accordingly.
Track all your merge requests organized by category:
- To review: MRs where you are assigned as a reviewer
- Assigned: MRs assigned to you
- Created by me: MRs you authored
- No reviewer: MRs from watched projects that have no reviewer assigned (optional)
Each MR displays:
- Author avatar, name and username
- Project path and MR number
- Source branch → Target branch with visual distinction
- Draft badge for work-in-progress MRs
- Conflicts badge when merge conflicts exist
- Assignees avatars
- Reviewers avatars
- Time since creation
Monitor your CI/CD pipelines in real-time:
- Running/Pending: Active pipelines with current stage information
- Failed: Recent failed pipelines (configurable time window)
Each pipeline shows:
- Project path and branch name (with git icon)
- Current status (Running, Failed, Success, Pending, Canceled)
- Pipeline source (Push, Web, API, MR, Schedule, Trigger...)
- Triggered by: Avatar and name of who triggered the pipeline
- Individual job statuses grouped by stage
Track releases from your watched projects:
- Release tag and name
- Release date
- Deployment status (if configured)
- Environment information
You can dismiss any item (MR, pipeline, or release) to hide it temporarily:
- Click the × button on any item to dismiss it
- The item will be hidden from the list
- A counter shows how many items are hidden (e.g., "2 hidden")
- Click Show all to restore all dismissed items
Important: Dismissed items are excluded from the tray icon status calculation. For example, if you dismiss all failed pipelines, the icon will no longer be red.
The popup window can be resized by dragging its edges. Your preferred size is automatically saved and restored on next launch.
Connect multiple GitLab accounts from different instances:
- GitLab.com
- Self-hosted GitLab instances
- Enable/disable accounts individually
Select specific projects to monitor for:
- Pipelines (including failed ones)
- Releases and deployments
- Unassigned merge requests
Receive native macOS notifications for:
- New MR assigned to you
- Mentioned in an MR
- Pipeline started
- Pipeline failed
- Pipeline succeeded
All notification types can be individually enabled/disabled.
- Refresh interval: 30 seconds to 10 minutes
- Failed pipeline age limit: Only show failures from the last X hours
- Launch at startup: Start GitLabBar when you log in
- Dark mode: Automatically adapts to your macOS appearance
Fresh install:
curl -sL "$(curl -s https://api.github.com/repos/yoanbernabeu/GitLabBar/releases/latest | grep browser_download_url | grep '\.zip' | cut -d '"' -f 4)" -o /tmp/GitLabBar.zip && unzip -qo /tmp/GitLabBar.zip -d /Applications && xattr -cr /Applications/GitLabBar.app && rm /tmp/GitLabBar.zip && echo "GitLabBar installed!"Upgrade (replace an existing version):
osascript -e 'quit app "GitLabBar"' 2>/dev/null; rm -rf /Applications/GitLabBar.app && curl -sL "$(curl -s https://api.github.com/repos/yoanbernabeu/GitLabBar/releases/latest | grep browser_download_url | grep '\.zip' | cut -d '"' -f 4)" -o /tmp/GitLabBar.zip && unzip -qo /tmp/GitLabBar.zip -d /Applications && xattr -cr /Applications/GitLabBar.app && rm /tmp/GitLabBar.zip && echo "GitLabBar upgraded!"Your configuration (accounts, watched projects, settings) is preserved across upgrades.
- Download the latest
.dmgfile from the Releases page - Open the
.dmgfile - Drag GitLabBar to your Applications folder
- Launch GitLabBar from Applications
Since GitLabBar is not signed with an Apple Developer certificate, macOS will block the app on first launch. The one-liner commands above handle this automatically via xattr -cr. If you installed manually, here's how to allow it:
- Right-click (or Control-click) on GitLabBar in your Applications folder
- Select Open from the context menu
- Click Open in the dialog that appears
- GitLabBar will now be allowed to run
- Try to open GitLabBar normally (it will be blocked)
- Go to System Preferences → Security & Privacy → General
- You'll see a message about GitLabBar being blocked
- Click Open Anyway
- Click Open in the confirmation dialog
Remove the quarantine attribute from the app:
xattr -cr /Applications/GitLabBar.appThen open GitLabBar normally.
- Clone the repository:
git clone https://github.com/yoanbernabeu/GitLabBar.git
cd GitLabBar- Install dependencies:
npm install- Run in development mode:
npm start- Build the application:
npm run makeThe built application will be available in the out/make directory.
- Click the GitLabBar icon in your menu bar
- Click Preferences at the bottom of the popup
- Go to the Accounts tab
- Click Add account
- Enter your GitLab instance URL (e.g.,
https://gitlab.comor your self-hosted URL) - Enter your Personal Access Token
- Click Validate token to verify the connection
- Give your account a name and click Add account
- Go to your GitLab instance → Settings → Access Tokens
- Create a new token with the following scopes:
read_api- Read access to the APIread_user- Read access to your user profile
- Copy the token and paste it in GitLabBar
- Go to Preferences → Projects
- Search for projects by name
- Check the projects you want to monitor
- These projects will be used for:
- Tracking failed pipelines
- Showing releases
- Displaying unassigned MRs (if enabled)
- Electron - Cross-platform desktop app framework
- React - UI library
- TypeScript - Type-safe JavaScript
- Vite - Fast build tool
- Electron Forge - Electron tooling
This project is licensed under the MIT License - see the LICENSE file for details.
Yoan Bernabeu - GitHub