{{ message }}
Repository navigation
Enable CDPDownloadInterceptor for remote browser connections - #4921
Merged
wintonzheng merged 1 commit intoFeb 28, 2026
Merged
Conversation
Synced from cloud PR: Skyvern-AI/skyvern-cloud#9042 Author: @wintonzheng ## Summary - Enables file download capture via CDP Fetch domain for remote browser connections (`browser_address`) - Downloads are streamed over WebSocket to the Skyvern worker disk, eliminating the need for a separate file server - Adds `browser serve` CLI command for easy local Chrome + ngrok setup ## Changes 1. **cloud/webeye/special_browsers.py**: Add CDPDownloadInterceptor to `create_persistent_cdp_browser` - this is the function called for remote browser connections with `browser_address` 2. **skyvern/cli/commands/browser.py**: Add `browser serve` command that launches: - Local Chrome with CDP enabled - Unified server that proxies CDP WebSocket and optionally serves files 3. **skyvern/forge/sdk/artifact/storage/s3.py & azure.py**: Update `save_downloaded_files` to use local directory. The `browser_address` and `browser_api_key` parameters are kept for backward compatibility but are no longer used since CDPDownloadInterceptor handles downloads. 4. **skyvern/forge/agent.py**: Add explanatory comments about CDPDownloadInterceptor handling remote browser downloads 5. **skyvern/webeye/browser_factory.py**: Add CDPDownloadInterceptor support with `enable_cdp_download_interceptor` parameter ## Test plan - [x] End-to-end test with local Skyvern + browser serve + ngrok - [x] Verified CDPDownloadInterceptor is enabled on remote browser pages - [x] Workflow completes successfully with remote browser connection - [x] Compile checks pass - [x] Pre-commit hooks pass 🤖 Generated with [Claude Code](https://claude.ai/code)
wintonzheng
deleted the
repo-sync/shu/cdp-download-interceptor-remote-browser
branch
February 28, 2026 01:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Synced from cloud PR: https://github.com/Skyvern-AI/skyvern-cloud/pull/9042
Author: @wintonzheng
Summary
browser_address)browser serveCLI command for easy local Chrome + ngrok setupChanges
cloud/webeye/special_browsers.py: Add CDPDownloadInterceptor to
create_persistent_cdp_browser- this is the function called for remote browser connections withbrowser_addressskyvern/cli/commands/browser.py: Add
browser servecommand that launches:skyvern/forge/sdk/artifact/storage/s3.py & azure.py: Update
save_downloaded_filesto use local directory. Thebrowser_addressandbrowser_api_keyparameters are kept for backward compatibility but are no longer used since CDPDownloadInterceptor handles downloads.skyvern/forge/agent.py: Add explanatory comments about CDPDownloadInterceptor handling remote browser downloads
skyvern/webeye/browser_factory.py: Add CDPDownloadInterceptor support with
enable_cdp_download_interceptorparameterTest plan
🤖 Generated with Claude Code