Menu bar icon is created off-screen on external display, cannot be repositioned, and app bundle mutates after launch
Hi, I am seeing a repeatable issue where VibeProxy is running and functional, but its menu bar icon is not visible in the menu bar. The app is not crashing. The backend is healthy. The problem appears to be the status item placement.
This started as "VibeProxy will not launch from Spotlight or Applications", but after digging in, the app was launching correctly as a menu-bar-only app. It just was not visible.
Summary
VibeProxy creates an NSStatusItem, but macOS reports the status item at the far-right edge of the main display, effectively clipped or off-screen:
AXPosition=3165,-1
AXSize=36,24
AXRole=AXMenuBarItem
AXSubrole=AXMenuExtra
AXRoleDescription=status menu
The display is a 6400x3600 external monitor scaled to 3200x1800 logical points, so x=3165 is basically the far-right edge. There is plenty of empty menu bar space on the display. This is not normal overflow from too many menu bar items.
The app is otherwise running:
/Applications/VibeProxy.app/Contents/MacOS/CLIProxyMenuBar
/Applications/VibeProxy.app/Contents/Resources/cli-proxy-api-plus -config /Applications/VibeProxy.app/Contents/Resources/config.yaml
The API is healthy:
$ curl http://127.0.0.1:8318/
{"endpoints":["POST /v1/chat/completions","POST /v1/completions","GET /v1/models"],"message":"CLI Proxy API Server"}
The thinking proxy is also listening on 8317.
Environment
VibeProxy version:
CLIProxyAPIPlus version from bundled binary:
CLIProxyAPI Version: 6.9.28-0-plus
Commit: 0c48ef58
BuiltAt: 2026-04-16T17:45:03Z
macOS:
Display setup:
Resolution: 6400 x 3600
UI Looks like: 3200 x 1800 @ 165.00Hz
Main Display: Yes
Resolution: 2160 x 3840
UI Looks like: 1080 x 1920 @ 100.00Hz
Online: Yes
Installed app path:
/Applications/VibeProxy.app
Bundle identifier:
Expected behavior
When VibeProxy is running, I expect its menu bar icon to be visible somewhere in the menu bar and movable with the normal Command-drag gesture, like other status items.
Actual behavior
VibeProxy is running, but the visible menu bar icon is missing. Accessibility shows that the status item exists, but it is positioned at the far-right edge of the logical display:
menu bar 2 item count=1
item 1 title= desc=status menu pos=3165-1 size=3624 enabled=true
AppleScript/Accessibility attribute dump:
AXEnabled=true
AXFrame=3165-1320123
AXSize=3624
AXFocused=false
AXRole=AXMenuBarItem
AXTopLevelUIElement=missing value
AXHelp=missing value
AXPosition=3165-1
AXTitle=
AXWindow=missing value
AXRoleDescription=status menu
AXSelected=false
AXSubrole=AXMenuExtra
The item is still clickable through Accessibility, and the VibeProxy menu opens. So the app is alive and the status item exists. It just is not visibly placed in the menu bar.
Menu contents when clicked through Accessibility:
Server: Running (port 8317)
Open Settings
Stop Server
Copy Server URL
Open Dashboard
Check for Updates...
Quit
Things I tried
1. Checked whether an update was available
The app says it is current. The appcast also shows 1.8.138 as latest:
https://raw.githubusercontent.com/automazeio/vibeproxy/main/appcast.xml
Latest item:
Version 1.8.138
pubDate: Fri, 17 Apr 2026 00:22:31 +0000
2. Restarted SystemUIServer and VibeProxy
I quit VibeProxy, restarted SystemUIServer, relaunched VibeProxy, then checked the status item again.
The app relaunched cleanly, but the status item stayed at the same coordinate:
3. Tried normal menu bar repositioning
I tried Command-dragging the status item left using a controlled synthetic drag from the reported hitbox. I tried it twice, including a version that sent separate Command key down/up events. The status item did not move.
After the drag attempt:
4. Tried setting the AX position directly
I tried setting the position through Accessibility. The call did not error, but macOS ignored the requested position:
set position succeeded: before=3165,-1 after=3165,-1
5. Clean-reinstalled VibeProxy 1.8.138
I downloaded the latest release from the appcast URL:
https://github.com/automazeio/vibeproxy/releases/download/v1.8.138/VibeProxy-arm64.zip
SHA256 of downloaded zip:
f05b269248eb25f5fcad7b7b8018e9953382f618bf226bb47ba8ab488a3d1b5a
I quit the running app, moved the existing app aside as a backup, installed the fresh app into /Applications, and verified it before launch.
Fresh app before launch:
/Applications/VibeProxy.app: valid on disk
/Applications/VibeProxy.app: satisfies its Designated Requirement
/Applications/VibeProxy.app: accepted
source=Notarized Developer ID
After relaunch, VibeProxy ran successfully, but the status item placement bug persisted:
menu bar 2 item count=1
item 1 title= desc=status menu pos=3165-1 size=3624 enabled=true
Separate suspicious observation: app bundle changes after launch
After the clean reinstall, the app bundle verified as valid before launch. After launching VibeProxy and letting the backend start, codesign began reporting that the app bundle had been modified:
/Applications/VibeProxy.app: a sealed resource is missing or invalid
file added: /Applications/VibeProxy.app/Contents/Resources/static/management.html
That file was not present as a signed resource immediately after install, or at least the freshly installed bundle verified cleanly before launch. After launch, it appears that something is adding:
/Applications/VibeProxy.app/Contents/Resources/static/management.html
This may be unrelated to the menu bar placement bug, but it seems worth mentioning because it invalidates the app signature after launch.
Why I think this is a VibeProxy issue, not normal macOS menu bar overflow
There is plenty of empty space in the menu bar on the main external display; I have a 32" monitor and most of the menu bar is empty. The icon is not merely hidden because of crowding.
Also, the app is clearly creating a status item, and the item can be clicked through Accessibility. It is just being placed at the far-right edge with y=-1, and it resists the normal Command-drag repositioning flow.
The visible two-toggle icon near the clock is macOS Control Center, not VibeProxy. I confirmed VibeProxy's bundled inactive icon is the gray/white "A/rocket" shape from:
/Applications/VibeProxy.app/Contents/Resources/icon-inactive.png
That icon is not visible in the menu bar.
What would help
A few things that might make this easier to debug or fix:
- Give the status item a stable autosave name if it does not already have one, so macOS can persist and reset placement more reliably.
- Add a "reset menu bar icon position" command or fallback path.
- Avoid writing generated assets into
VibeProxy.app/Contents/Resources after install, since that invalidates the app signature.
- If the status item is using a variable or unusual length, check whether it is interacting badly with scaled external displays or multi-display menu bars.
Happy to provide more logs or run a debug build if useful.
Menu bar icon is created off-screen on external display, cannot be repositioned, and app bundle mutates after launch
Hi, I am seeing a repeatable issue where VibeProxy is running and functional, but its menu bar icon is not visible in the menu bar. The app is not crashing. The backend is healthy. The problem appears to be the status item placement.
This started as "VibeProxy will not launch from Spotlight or Applications", but after digging in, the app was launching correctly as a menu-bar-only app. It just was not visible.
Summary
VibeProxy creates an
NSStatusItem, but macOS reports the status item at the far-right edge of the main display, effectively clipped or off-screen:The display is a 6400x3600 external monitor scaled to 3200x1800 logical points, so
x=3165is basically the far-right edge. There is plenty of empty menu bar space on the display. This is not normal overflow from too many menu bar items.The app is otherwise running:
The API is healthy:
The thinking proxy is also listening on
8317.Environment
VibeProxy version:
CLIProxyAPIPlus version from bundled binary:
macOS:
Display setup:
Installed app path:
Bundle identifier:
Expected behavior
When VibeProxy is running, I expect its menu bar icon to be visible somewhere in the menu bar and movable with the normal Command-drag gesture, like other status items.
Actual behavior
VibeProxy is running, but the visible menu bar icon is missing. Accessibility shows that the status item exists, but it is positioned at the far-right edge of the logical display:
AppleScript/Accessibility attribute dump:
The item is still clickable through Accessibility, and the VibeProxy menu opens. So the app is alive and the status item exists. It just is not visibly placed in the menu bar.
Menu contents when clicked through Accessibility:
Things I tried
1. Checked whether an update was available
The app says it is current. The appcast also shows 1.8.138 as latest:
2. Restarted SystemUIServer and VibeProxy
I quit VibeProxy, restarted
SystemUIServer, relaunched VibeProxy, then checked the status item again.The app relaunched cleanly, but the status item stayed at the same coordinate:
3. Tried normal menu bar repositioning
I tried Command-dragging the status item left using a controlled synthetic drag from the reported hitbox. I tried it twice, including a version that sent separate Command key down/up events. The status item did not move.
After the drag attempt:
4. Tried setting the AX position directly
I tried setting the position through Accessibility. The call did not error, but macOS ignored the requested position:
5. Clean-reinstalled VibeProxy 1.8.138
I downloaded the latest release from the appcast URL:
SHA256 of downloaded zip:
I quit the running app, moved the existing app aside as a backup, installed the fresh app into
/Applications, and verified it before launch.Fresh app before launch:
After relaunch, VibeProxy ran successfully, but the status item placement bug persisted:
Separate suspicious observation: app bundle changes after launch
After the clean reinstall, the app bundle verified as valid before launch. After launching VibeProxy and letting the backend start,
codesignbegan reporting that the app bundle had been modified:That file was not present as a signed resource immediately after install, or at least the freshly installed bundle verified cleanly before launch. After launch, it appears that something is adding:
This may be unrelated to the menu bar placement bug, but it seems worth mentioning because it invalidates the app signature after launch.
Why I think this is a VibeProxy issue, not normal macOS menu bar overflow
There is plenty of empty space in the menu bar on the main external display; I have a 32" monitor and most of the menu bar is empty. The icon is not merely hidden because of crowding.
Also, the app is clearly creating a status item, and the item can be clicked through Accessibility. It is just being placed at the far-right edge with
y=-1, and it resists the normal Command-drag repositioning flow.The visible two-toggle icon near the clock is macOS Control Center, not VibeProxy. I confirmed VibeProxy's bundled inactive icon is the gray/white "A/rocket" shape from:
That icon is not visible in the menu bar.
What would help
A few things that might make this easier to debug or fix:
VibeProxy.app/Contents/Resourcesafter install, since that invalidates the app signature.Happy to provide more logs or run a debug build if useful.