BullseyeUber
The Bullseye pack on one tab. BullseyeUber installs the five Bullseye extensions together โ FleetView,
BullseyeBacklog, DeepAgent, BullseyeSync and BullseyeNotif โ and shows every one of them on a single
Bullseye Control tab. A tab-strip across the top switches between them; the member you pick fills the tab.
What it looks like
Click any screenshot to open it full size.





The tab-strip, the tabs and their icons are rendered from BullseyeUber's shipped shell.js and shell.css in a
headless browser. Inside each frame, FleetView, BullseyeBacklog, DeepAgent and BullseyeNotif show that
extension's own listing screenshot (a render of its real panel over invented data โ no real session, folder,
host or name). BullseyeSync has no listing screenshot, so its frame is a labelled placeholder, not its real page.
What it hosts
| Member |
Tab shows |
Opened by |
| 🚁 FleetView |
the fleet roster โ every agent, its state, progress and reuse |
fleetView.focus |
| 📋 BullseyeBacklog |
the At-A-Glance board of stories |
bullseyeBacklog.open |
| 🤖 DeepAgent |
the Control Center โ keys, subscriptions and models |
deepagent.open |
| 🔄 BullseyeSync |
the sync status tab |
bullseyeSync.openStatusTab |
| 🔔 BullseyeNotif |
the notification configuration tab |
omniNotifyMcp.openConfigTab |
How the pack installs and hands over
BullseyeUber is an extension pack: installing it installs any of the five you do not have yet, and VS Code
keeps each one updating on its own from its own listing. Every member that is installed โ whether the pack
brought it or you already had it โ draws its editor panel as a tab in Bullseye Control instead of a tab of its
own. Each member's page is drawn exactly as VS Code would draw it in a tab of its own, and stays alive while
hidden, so switching away and back keeps its scroll position, filters and live updates. A member's sidebar
views stay in the sidebar. A window reload puts back the tabs whose member restores its own tab after a reload.
A member whose own standalone extension is also installed is never started twice: that extension keeps its
own tab, and the $(layout) Bullseye status item's hover says which extension runs each member.
Commands and controls
| Control |
What it does |
$(layout) Bullseye status item ยท BullseyeUber: Open Bullseye Control (bullseyeUber.open) |
opens the Bullseye Control tab |
| a member's tab in the strip |
shows that member, full size |
| โ on a tab |
closes that member's tab, as closing its own tab would |
BullseyeUber has no settings of its own; each member keeps its own.
Build
cd vscode-extension
npm install
npm run stage # compile + stage every member into build/
npm run package # compile + stage + bullseye-uber-<version>.vsix
./release.sh --dry-run # stage, then build the .vsix through the shared release chain; publishes nothing
Each member must already be built by its own build. Staging refuses a member whose sources are newer than its
build; --member=<name>=<dir> stages a member from another checkout.
Release notes
| Version |
Change |
| 0.0.3 |
One tab with a tab-strip, one full-size member per tab; listing icon, banner and screenshots |