Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>BullseyeUberNew to Visual Studio Code? Get it now.
BullseyeUber

BullseyeUber

Karish911

|
4 installs
| (1) | Free
🎯 BullseyeBacklog, FleetView, DeepAgent, BullseyeSync and BullseyeNotify in one tab — the board your AI works from over the fleet running it, with a Dashboard of per-member cards and One / Stack / Side / Swap / Pair layouts. One safe reload parks every member's work; the pack carries each member ex
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

BullseyeUber — Bullseye Control

One install puts the whole Bullseye set in one tab. FleetView, BullseyeBacklog, DeepAgent, BullseyeSync and BullseyeNotify sit behind one tab-strip called Bullseye Control.

You drive all of it by talking to your AI (Claude Code, Codex or Copilot). There are no forms, no add-row button and no edit dialog: you say what you want, the AI does it through the members, and the tab is where you watch it happen.

🏆 The members, most important first

# Member What it gives you Listing
1 🎯 BullseyeBacklog The board your AI works from: every story with its priority, percent and what is left, ▶🚢 Start agents, and the questions only you can answer Marketplace
2 🚢 FleetView Every agent running on your machine at a glance: state, progress, ETA, token cost and what could be reused instead of paid for again Marketplace
3 🐳 DeepAgent Keys, subscriptions and models in one Control Center, so each agent runs on the account that has room Marketplace
4 🔄 BullseyeSync Your settings, skills and rules kept the same on every machine, with a status tab that says what is stuck Marketplace
5 🔔 BullseyeNotif Reach you when the agent finishes or needs a decision, with its configuration beside the work Marketplace

🆕 What's new since 17 Oct, biggest wins first

In Bullseye Control itself

# Win What it does for you
1 📦 The pack carries each member exactly as it was published Every Uber release names the member versions it carries; a member's lane committing or collapsing its worktree mid-release can no longer kill the release or smuggle in unreleased bytes (#2718), and one release is cut per window instead of one per member (#2703).
2 🧭 A member's page arrives, or the tab says why A page that cannot open is named with its reason instead of spinning; one member's page failing to come back no longer takes the others down; Bullseye's start is no longer held behind every standalone copy (287 ms to 79 ms measured) (#2248).
3 🎛️ A header row that never wraps Brand on the left, the five layouts on the right, "⋯ More" at the far edge; as the tab narrows the words drop first, then the lowest-priority buttons fold into More (#2159).
4 🪟 One tooltip, held by your pointer It stays open while the pointer is on either the element or its card and vanishes the instant it is on neither (#1986, #2071, #2140).
5 🧹 No status-bar item of its own Uber leaves the status bar to its members (0.0.83).

Across the members, biggest first

Member The headline since 17 Oct
🎯 BullseyeBacklog Any agent takes over any story another provider worked; every question with options offers Other on its own card, and a typed reply is your ruling.
🚢 FleetView Any live chat takes a Start press — revive or resume — and FleetView starts a session when none is live; a reload holds a Codex or Copilot lane by suspending its own process, never killing it; a finished lane is named to main, never offered as a standby.
🐳 DeepAgent One DeepAgent server per machine, the project arriving with each request; an agent's key list shows only the keys whose own "Use for fallback" box is ticked.
🔄 BullseyeSync A credential never travels, a conflict resolves by the source-of-truth rule with the replaced file set aside, and one resident syncState server answers every chat session.
🔔 BullseyeNotif The extension starts, stops and restarts the BN server itself; a reply is drawn as Markdown; an idle conversation archives itself after 15 minutes.

Each member's own listing carries the full story. Earlier wins stay in force: FleetView's editor load fell from 82–86% to a measured 24% of a core, Uber starts even with an empty .obsolete file, a reload request is always answered, and the Reload button reloads at once.

Full per-version list: Release notes and CHANGELOG.

🤝 Why all of them under one umbrella

Each member works alone; hosted together they share one tab, one reload, one dialog and each other's data. What that buys, in the code today:

  • 🎯🚢 A story and its agent on one screen. The Pair layout stacks the BullseyeBacklog board over the FleetView roster; the board's ▶🚢 Start agents press hands the stories to FleetView's queue, and a running-agent marker returns onto its board row.
  • 🛟 One safe reload for the whole set. Every member carries the same reload coordinator, so one press parks each member's live work first; afterwards FleetView revives the killed subagents into their main's inbox.
  • 🐳🚢 Keys and cost agree. FleetView's usage ledger files requests under the account that paid for them, and DeepAgent reads its subscription counts back from that ledger; an AI session can ask DeepAgent's provider_room how much room each Claude subscription has left before it picks an account.
  • ⚡ A slow member holds nobody. Each member's tab opens the moment its own extension is ready — BullseyeSync can take most of a minute and the rest are already open.
  • 🔔 One dialog. A question or alert from any member, including BullseyeNotify's, is drawn over whichever tab you are on.
  • 🔄 Sync and notifications next to the work. BullseyeSync's status and BullseyeNotify's configuration are tabs beside the board and the fleet, and the Dashboard card shows each member's version and whether it is open here.
  • 📦 One install. Installing the pack pulls in any member you are missing; each keeps its own listing and updates.

✨ At a glance

  • 🎯 The whole set in one tab — FleetView, BullseyeBacklog, DeepAgent, BullseyeSync and BullseyeNotify as member tabs of one Bullseye Control editor tab.
  • 🎛️ Dashboard — every member as a card, with its version, whether it is open here, and its web UI links.
  • 🧩 Layouts — 1️⃣ One, ↕️ Stack, ↔️ Side, 🔀 Swap and the 🎯🚢 Pair preset that puts the board over the fleet.
  • ⚡ One install pulls in what you are missing — each member keeps its own listing and updating; while Uber is enabled an installed member stands aside and runs here, never twice.
  • ⏱️ Each member's tab opens the moment its own extension is ready — a slow member (BullseyeSync can take most of a minute) no longer holds the others on "Opening its page here…"; the tab also says what is happening instead of waiting silently, and nothing opens by itself at window start.
  • 📦 Kept alive while hidden — each member's panel is drawn as its own tab would be, restyled to your theme, with scroll, filters and live updates surviving a switch.
  • 🛡️ Always the newest installed member — Bullseye Control hosts the newest release VS Code has installed for each member (never the copy frozen when the pack was built), and skips a build VS Code has marked superseded.
  • 🧱 One member failing never takes the rest down — a member that cannot start shows a ⛔ "did not start" card with the reason, and says so in the shared Bullseye dialog, never a VS Code error toast, while every other member keeps running; if Bullseye itself cannot start, the shared dialog's status item says why.
  • ⌨️ Alt+0 Dashboard · Alt+1…5 a member · Alt+\ split on/off.

What to type

Copy any sentence into your AI chat. The screenshot beside it is what the tab shows afterwards.

1. One sentence, two members

File a P1 story: the 3.2 release notes are assembled from closed rows and open questions, then put an agent on it.

The Pair layout — story #419 on the Backlog board (top) and its agent on the FleetView roster (bottom), tied by the story number

The 🎯🚢 Pair layout: the story is a row on the board above, its agent is a row on the fleet below, and the story number #419 appears in both.

2. Ask what can be reused

Which standby agent could take the 3.2 release notes instead of a fresh one?

The 1️⃣ One layout — FleetView across the whole tab, the Reuse column showing standby agents and what reuse saves

The 1️⃣ One layout: FleetView full size. The Reuse column names each standby agent and the tokens it saves.

3. Two members side by side

Switch codex to my BYOK key and test it, and show me what the fleet is costing.

The ↔️ Side layout — DeepAgent Providers on the left, the FleetView roster with its Tokens column on the right

The ↔️ Side layout: DeepAgent's per-agent mode on the left, the fleet's token cost on the right.

4. Everything at a glance

What needs my attention across the Bullseye pack?

The 🎛️ Dashboard — one card per member with its version, open state and web UI links

The 🎛️ Dashboard: a card per member with its version, whether it is open here, and its web UI links.

After the first screen

Open the tab with BullseyeUber: Open Bullseye Control, then tell your AI what you want about your repos, agents, keys, machines or notifications. The panels you are looking at are what your AI reads and writes, so the quickest way to learn them is to ask: "Show me everything open on the board", "Which agents are running and on which story?", "Is every machine in sync?".

The layout buttons only arrange what you see — they are the one thing you click rather than say:

Control What it does
member tabs one tab per member, drag to reorder
🎛️ Dashboard every member as a card, with Open / ⬆️ Top / ⬇️ Bottom
1️⃣ One · ↕️ Stack · ↔️ Side one pane, two stacked, two side by side
🔀 Swap swaps the two panes
🎯🚢 Pair the board over the fleet, two stacked panes

The screenshots are renders of the shipped shell.js and shell.css in a headless browser, over invented members and data. The member panels inside them are those extensions' own listing renders, cropped to the pane — no real session, folder, host or name.

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 Dashboard card says which extension runs each member.

Commands and controls

Control What it does
BullseyeUber: Open Bullseye Control (bullseyeUber.open) opens the Bullseye Control tab
a member's tab in the strip shows that member, full size
🎛️ Dashboard shows every member as a card, with Open / ⬆️ Top / ⬇️ Bottom
1️⃣ One · ↕️ Stack · ↔️ Side one pane, two stacked, two side by side
🔀 Swap swaps the two panes
🎯🚢 Pair the board over the fleet, two stacked panes
✕ on a page chip closes that member's page, as closing its own tab would
Alt+0 · Alt+1…5 · Alt+\ Dashboard · a member · split on/off

BullseyeUber has no settings of its own; each member keeps its own.

Build

cd vscode-extension
npm install
npm run compile    # compile BullseyeUber and re-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.140 – 0.0.146 The pack carries each member as published: members are frozen at the seal and checked against the bytes they packaged (#2718); one release per window (#2703); 0.0.141 is the first to carry DeepAgent 0.1.381 and FleetView 0.8.702
0.0.104 A member's page arrives, or the tab says why; Bullseye starts without waiting for every standalone copy (#2248)
0.0.99 The header is one row that never wraps (#2159)
0.0.96 – 0.0.98 A tooltip is held by the pointer and closes the instant it leaves (#2071, #2140)
0.0.83 The Bullseye status-bar item and its tooltip are removed
0.0.82 Starts with an empty .obsolete file (#1901)
0.0.79 – 0.0.81 Bundle the shared dialog's spinner fix (members released together); 0.0.81 published and installed with the FleetView roster fixes #1892 and #1897
0.0.74 – 0.0.78 Reload button reloads at once: the save is bounded at 1.5 s (#1858); every standalone listing points to BullseyeUber (#1865)
0.0.72 – 0.0.73 Release metadata refresh
0.0.71 Release stamp for 0.0.69's fix
0.0.69 Each member's page opens as soon as its own extension answers, instead of after the slowest member (BullseyeSync could hold DeepAgent and FleetView on "Opening its page here…" for 16–52 seconds)
0.0.57 – 0.0.68 A member tab says what is happening instead of waiting forever; one status-bar item with the extension's own mark; the Uber opens no member page at window start; a member's card is drawn on whichever Bullseye tab is on screen; a member that did not start says so in the shared Bullseye dialog, not a VS Code error toast; staging a member release no longer freezes the host, an incomplete member set is refused by name, and a member checkout behind its origin or behind the newest installed release is refused; the Uber records what it staged and restages when a member release changes it; member versions compare part by part (0.1.9 is older than 0.2.0); members whose views live in VS Code's own containers start; the commit box's ✨ is DeepAgent's on this machine; the Uber activates on a fresh extensions folder with no registry yet
0.0.56 Listing refreshed: newest-installed hosting, per-member failure isolation and release notes since 0.0.37
0.0.55 Staged members carry their light and dark command icons; members are staged from clean origin/main trees
0.0.49 The tab rows and the rail carry no hover tooltips or member hover card; the Dashboard cards keep theirs
0.0.48 Hosts the newest of the registry, the beside-folder and the installer's staged copy; re-reads VS Code's own JSON while it is being rewritten, so a reload mid-write no longer drops a member; the status item survives a failed start
0.0.41 Each member is hosted in isolation: a failed member is refused with its reason while the others start
0.0.37 The listing opens with the AI-prompt usage model: you talk to your AI, no forms or CRUD; four example prompts each beside a real render
0.0.26 The listing set covers every shipped feature — the 🎛️ Dashboard, names-only member tabs with the layout controls on the first row, the 🎯🚢 Pair preset, the rail at a narrow width and the stage member check — and the description names them
0.0.3 One tab with a tab-strip, one full-size member per tab; listing icon, banner and screenshots
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft