[FEATURE] Add setting to control Activity Bar vs Secondary Sidebar placement
Preflight Checklist
- [X] I have searched existing requests and this feature hasn't been requested yet
- [X] This is a single feature request (not multiple features)
Problem Statement
The Claude Code VS Code extension conditionally hides its Activity Bar icon based on whether the host editor supports the secondary sidebar (claude-code:doesNotSupportSecondarySidebar). On any modern VS Code version that supports the secondary sidebar, the icon is removed from the primary Activity Bar and placed exclusively in the secondary sidebar.
This is a problem for users who:
- Don't use the secondary sidebar — the icon simply disappears with no indication of where it went
- Prefer primary sidebar access — muscle memory, screen layout, or workflow reasons
- Use VS Code Remote-SSH — the secondary sidebar is less discoverable in remote sessions
There are multiple open and closed bug reports about this exact symptom (#25280, #14317, #14193, #8391, #21790, #17124, #15552, #20510, #18301), all describing the icon vanishing after updates. The root cause is the same: the when conditions in package.json gate the Activity Bar icon behind secondary sidebar non-support.
Proposed Solution
Add a user-facing setting to control placement:
"claudeCode.sidebarLocation": "auto" | "primary" | "secondary"
| Value | Behaviour |
|-------|-----------|
| auto | Current behaviour — secondary sidebar if supported, otherwise primary (default) |
| primary | Always show in the primary Activity Bar, never register in secondary sidebar |
| secondary | Always show in secondary sidebar only |
This replaces the compile-time when condition with a runtime user preference, resolving all the linked bug reports without changing the default experience.
Alternative Solutions
Current workaround: Manually edit the extension's package.json after every update to remove the when conditions from viewsContainers.activitybar[0] and views.claude-sidebar[0], and set when: "false" on the secondary sidebar entries. This works but is fragile — it's overwritten on every extension auto-update.
Other alternatives considered:
- Disabling extension auto-updates — loses security and feature updates
- Using Command Palette to open Claude — works but slower than a single click
- VS Code's built-in "Drag to Activity Bar" — not available for conditionally hidden containers
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
- User installs Claude Code extension on VS Code 1.109+ (supports secondary sidebar)
- Activity Bar icon does not appear — user has no visual indicator the extension is installed
- User searches Command Palette, finds "Open in Side Bar", uses it — but no persistent icon
- User sets
"claudeCode.sidebarLocation": "primary"in settings - Activity Bar icon appears permanently, survives extension updates
- User clicks the icon to open/close Claude Code like any other extension
Additional Context
Technical detail: Four when conditions in the extension's contributes section control this:
viewsContainers.activitybar[0].when— gates Activity Bar iconviewsContainers.secondarySidebar[0].when— gates secondary sidebar iconviews.claude-sidebar[0].when— gates sidebar view registrationviews.claude-sidebar-secondary[0].when— gates secondary sidebar view
The proposed setting would dynamically evaluate these conditions based on the user's preference rather than editor capability.
Related issues: #25280, #14317, #14193, #8391, #21790, #17124, #15552, #20510, #18301
For comparison: The OpenAI Codex VS Code extension registers its Activity Bar icon unconditionally — no when condition — so it always appears regardless of secondary sidebar support.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗