Claude Code cannot interact with native OS file dialogs — bridge gap between Chrome MCP and Computer Use API

Resolved 💬 2 comments Opened Feb 8, 2026 by VivekKarmarkar Closed Mar 8, 2026

Problem

Claude Code with the Chrome MCP extension (claude-in-chrome) can interact with anything inside the browser — clicking buttons, typing in fields, navigating pages, reading the DOM. But the moment a native OS file dialog appears (upload/download prompts), Claude is completely stuck. The user must manually intervene.

This came up during an end-to-end content creation workflow where Claude Code:

  1. Wrote a LaTeX document in OpenAI's Prism editor (browser)
  2. Verified the math with Python (terminal)
  3. Recorded the screen and edited a demo video with ffmpeg (terminal)
  4. Uploaded a thumbnail to YouTube (browser — but needed human help for the file picker)
  5. Uploaded an image to a Medium article (browser — but needed human help for the file picker)

Steps 4 and 5 broke the autonomous flow because file upload dialogs are native OS windows, not browser DOM elements.

The Gap

The pieces exist separately but aren't connected:

| Capability | Scope | Status |
|-----------|-------|--------|
| Chrome MCP (claude-in-chrome) | Browser DOM only | ✅ Works in Claude Code |
| Computer Use API | Full desktop (screenshot + mouse/keyboard on any app) | ❌ API-only, requires Docker + virtual display, not available in Claude Code |
| PyAutoGUI MCP servers (community) | Native desktop via xdotool/PyAutoGUI | ⚠️ Third-party, not official |

Claude Code has terminal control (Bash) and browser control (Chrome MCP), but no native desktop control for the OS layer in between — where file dialogs, system prompts, and notification popups live.

Proposed Solutions (any of these would work)

  1. Official "Desktop Use" MCP server — An Anthropic-maintained MCP server that wraps Computer Use capabilities (screenshot + mouse/keyboard) for the native desktop, configurable in ~/.claude/settings.json like any other MCP server.
  1. Chrome MCP file dialog bridge — Extend claude-in-chrome to detect when a file dialog opens and either:
  • Auto-select a file path provided by Claude (e.g., upload_file(path="/home/user/image.png"))
  • Use Chrome's --use-file-for-fake-file-dialog flag or DevTools Protocol to bypass the native dialog
  1. Computer Use as a Claude Code native tool — Integrate the Computer Use tool directly into Claude Code (similar to how Bash and Read/Write are native tools), so Claude can screenshot and click on native OS elements when needed.

Environment

  • OS: Ubuntu Linux (Pop!_OS 22.04)
  • Claude Code model: Opus 4.6
  • Chrome MCP: Claude-in-Chrome extension
  • Workflow: LaTeX writing → Python verification → ffmpeg video editing → YouTube/Medium publishing

Workaround

Currently, the user must manually handle any file upload/download dialogs. This breaks the autonomous flow and requires the user to stay present for what should be a hands-off pipeline.

Community PyAutoGUI MCP servers exist (mcp-pyautogui, mcp-pyautogui-server) but an official solution would be more reliable and better integrated.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗