claude-code - 💡(How to fix) Fix Agent Teams: Permission requests should show as native UI popups in VS Code extension, not as chat messages [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46821Fetched 2026-04-12 13:32:12
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Participants
Timeline (top)
labeled ×5

When using experimental Agent Teams (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) in the VS Code extension, permission requests from sub-agents surface as raw teammate-message JSON cards in the chat window rather than as native interactive permission popup dialogs.

Root Cause

When using experimental Agent Teams (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) in the VS Code extension, permission requests from sub-agents surface as raw teammate-message JSON cards in the chat window rather than as native interactive permission popup dialogs.

Code Example

{
  "type": "permission_request",
  "request_id": "perm-1775954961402-3gzh0gb",
  "agent_id": "gitops",
  "tool_name": "Bash",
  "description": "Check branch status in databridge repo",
  "input": { "command": "cd /path/to/repo && git branch 2>&1" }
}
RAW_BUFFERClick to expand / collapse

Summary

When using experimental Agent Teams (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1) in the VS Code extension, permission requests from sub-agents surface as raw teammate-message JSON cards in the chat window rather than as native interactive permission popup dialogs.

Expected Behavior

Sub-agent permission requests should render as the same interactive popup UI that the main Claude Code instance uses — with clear approve/deny buttons — consistent with the native tool permission UX.

Actual Behavior

Permission requests from agents appear as JSON blobs embedded in teammate-message chat cards, for example:

{
  "type": "permission_request",
  "request_id": "perm-1775954961402-3gzh0gb",
  "agent_id": "gitops",
  "tool_name": "Bash",
  "description": "Check branch status in databridge repo",
  "input": { "command": "cd /path/to/repo && git branch 2>&1" }
}

Users must type "approve" or "deny" in chat to relay approval back — there is no direct interactive UI element.

Environment

  • Claude Code VS Code Extension
  • Platform: macOS (Darwin 25.4.0)
  • Agent Teams: experimental (CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1)
  • Model: claude-sonnet-4-6

Impact

  • Poor UX for multi-agent workflows — users must parse raw JSON to understand what they are approving
  • No visual distinction between informational agent messages and actionable permission requests
  • Breaks the mental model of the permission system that users are accustomed to from single-agent sessions

Suggested Fix

Render agent team permission requests using the same native popup/dialog component used for main session tool approvals. The permission_request message type from teammate agents should be intercepted by the VS Code extension and displayed as a proper interactive UI element rather than passed through as raw chat content.

🤖 Filed via Claude Code

extent analysis

TL;DR

Modify the VS Code extension to intercept permission_request messages from teammate agents and render them as native interactive popup dialogs instead of raw JSON chat cards.

Guidance

  • Identify the code path in the VS Code extension responsible for handling teammate-message JSON cards and modify it to check for permission_request message types.
  • Intercept permission_request messages and extract relevant information (e.g., agent_id, tool_name, description) to display in a native popup dialog.
  • Implement a UI component that matches the existing permission popup used in single-agent sessions, including approve/deny buttons.
  • Ensure the new UI component is properly styled and accessible to maintain a consistent user experience.

Example

// Example permission_request message
{
  "type": "permission_request",
  "request_id": "perm-1775954961402-3gzh0gb",
  "agent_id": "gitops",
  "tool_name": "Bash",
  "description": "Check branch status in databridge repo",
  "input": { "command": "cd /path/to/repo && git branch 2>&1" }
}

This JSON object would be used to populate the fields of the native popup dialog, providing a clear and interactive way for users to approve or deny permission requests.

Notes

The implementation details may vary depending on the specific architecture and technologies used in the VS Code extension. Additionally, ensuring proper error handling and edge case coverage will be crucial to providing a robust and reliable solution.

Recommendation

Apply a workaround by modifying the VS Code extension to render agent team permission requests as native popup dialogs, as this will provide a more intuitive and user-friendly experience for multi-agent workflows.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING