Linux port of the macOS menu bar app to monitor Vercel deployments.
Inspired by the macOS project: vercel-deployment-menu-bar (https://github.com/andrewk17/vercel-deployment-menu-bar).
- Real-time deployment status (building, ready, error)
- Tray icon with a menu of recent deployments (one click opens the deployment URL)
- Preferences dialog: Vercel API Token, optional Team ID (slug), refresh interval, max items
- Desktop notifications on overall status changes
- Native notifications for production deployment events (enabled by default; can be disabled in Preferences)
- Python 3.8+
- GTK 3, libnotify and AppIndicator (Ayatana) bindings:
python3-gi,gir1.2-gtk-3.0,gir1.2-notify-0.7gir1.2-ayatanaappindicator3-0.1(orgir1.2-appindicator3-0.1)libayatana-appindicator3-1(orlibappindicator3-1)
python3-requests(installed by the .deb or via pip in dev)
This app uses AppIndicator/StatusNotifierItem (Ayatana). It works on desktops that support it:
- KDE Plasma: works out of the box (shows in the system tray)
- GNOME: needs AppIndicator support. On Ubuntu it's enabled; on vanilla GNOME:
sudo apt install -y gnome-shell-extension-appindicator libayatana-appindicator3-1 gir1.2-ayatanaappindicator3-0.1 # Restart the GNOME shell or log out/in (Alt+F2, r on Xorg) - elementary OS (Pantheon):
sudo apt install -y wingpanel-indicator-ayatana libayatana-appindicator3-1
- Cinnamon / MATE / Xfce / LXQt: usually tray-ready; ensure Ayatana libs are installed:
sudo apt install -y libayatana-appindicator3-1 gir1.2-ayatanaappindicator3-0.1
- Go to Releases
- Download the latest
vercel-deployments_*.debfile - Install:
sudo dpkg -i vercel-deployments_*.deb || sudo apt -f install -y- Install build tools:
sudo apt update
sudo apt install -y build-essential debhelper dh-python python3-all pybuild-plugin-pyproject- Build the package:
dpkg-buildpackage -us -uc -b- Install the resulting .deb (path may vary):
sudo dpkg -i ../vercel-deployments_1.0.0-1_all.deb || sudo apt -f install -y- Launch from your desktop menu: "Vercel Deployments" (or run
vercel-deployments).
- Go to Vercel Account Settings → Tokens
- Click "Create Token"
- Give your token a name (e.g., "Menu Bar App")
- Choose the scope:
- Personal Account: Select your personal account scope
- Team Account: Select the specific team you want to monitor
- Set an expiration date (optional but recommended)
- Click "Create Token"
- Important: Copy the token immediately — you won't be able to see it again!
- Launch the app from your desktop menu (or run
vercel-deployments) - Click the tray icon
- Select "Preferences"
- Enter your API token in the "Token" field
If you created a token scoped to a specific team, you must also enter your Team ID (team slug):
- In the Preferences window, locate the "Team ID" field
- To find your Team ID:
- Go to your Vercel Dashboard
- Select your team from the dropdown
- Look at the URL — it will be:
https://vercel.com/[TEAM_ID]/~ - The
[TEAM_ID]is what you need (e.g., if the URL ishttps://vercel.com/acme-corp/~, your Team ID isacme-corp) - Alternatively, go to Team Settings → General and find your Team Slug
- Enter the Team ID in the preferences
- Click "Save"
Note: If you used a personal account token, you can leave the Team ID field empty.
Rebuild and reinstall quickly during development:
# Option 1: Use the build script
./scripts/build-release.sh
# Option 2: Manual build
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../vercel-deployments_*_all.deb || sudo apt -f install -y
# Restart the app
# Prefer using the tray menu: Quit → launch again from the desktop menu
# If needed after icon changes:
sudo gtk-update-icon-cache -f /usr/share/icons/hicolorOpen Preferences and enter your Vercel API Token. If your token is scoped to a team, also fill in your Team ID (team slug). Save.
Configuration file location:
~/.config/vercel-deployments/config.json
Create a virtual environment and install in editable mode:
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip build ruff
pip install -e .Run locally:
vercel-deployments- Without just:
ruff check --fix .
ruff format .- With just (optional):
sudo apt install -y just
just lint-sync- Polls the Vercel API periodically to fetch recent deployments
- Overall icon reflects the most relevant state among recent deployments:
- building/queued → building icon
- error/canceled → error icon
- otherwise → ready icon
- Click any menu item to expand details, then click "🔗 Preview" to open the deployment in your browser
- No tray icon: ensure Ayatana AppIndicator packages are installed and restart your session/shell
- Unauthorized (401): check your API token and team scope/slug
- No deployments: confirm the token has access to the account/team and projects
- macOS inspiration: vercel-deployment-menu-bar (
https://github.com/andrewk17/vercel-deployment-menu-bar) - Linux port by: @danihenrique
