-
Notifications
You must be signed in to change notification settings - Fork 162
Implement Comfy URI Protocol (comfy://) for one-click custom node installation with comprehensive testing #1229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Co-authored-by: snomiao <[email protected]>
Co-authored-by: snomiao <[email protected]>
Co-authored-by: snomiao <[email protected]>
|
@copilot add integration test Launch ComfyUI Desktop with a custom node installing URL comfy://install-custom-node/ComfyUI-AnimateDiff-Evolved And check if installing function is called |
…ff-Evolved Co-authored-by: snomiao <[email protected]>
Added comprehensive integration test in commit 8a2a4f1. The test launches ComfyUI Desktop with
The test suite includes:
The unit tests use spies to verify that Warning Firewall rules blocked me from connecting to one or more addressesI tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
Resolved merge conflicts between protocol handling feature and install stage tracking. Both features are now integrated: - Added PROTOCOL_ACTION IPC channel alongside install stage channels - Integrated protocol action processing into app startup flow - Updated IpcChannels type to include new protocol action handler - Maintained install stage error handling and venv reinstall logic 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>


This PR implements the
comfy://protocol handler for ComfyUI Desktop, enabling seamless one-click installation of custom nodes and workflows directly from web browsers.Features
Protocol Actions
comfy://install-custom-node/<nodeId>- Install custom nodes via ComfyUI Managercomfy://import/<resourceId>- Import workflows and resourcesExample Usage
Implementation
Core Components
src/protocol/protocolParser.ts) - Robust parsing with comprehensive validationsrc/services/comfyManagerService.ts) - HTTP API client for custom node operationssrc/main.ts) - System-level protocol handler using Electron'sapp.setAsDefaultProtocolClient()src/desktopApp.ts) - Handles protocol URLs received before ComfyUI is readyUser Experience Flow
comfy://link in browserTechnical Highlights
second-instanceevent for protocol URLs when app is already runningTesting
Comprehensive Test Suite
Integration Tests
The integration tests launch ComfyUI Desktop with actual protocol URLs and verify:
Unit Test Coverage
comfy://install-custom-node/ComfyUI-AnimateDiff-EvolvedSecurity & Safety
install-custom-node,import)Bundle Impact
This enables the seamless browser-to-desktop workflow requested in the issue, allowing websites like the ComfyUI Registry to provide one-click installation buttons that launch ComfyUI Desktop and automatically install the selected custom nodes.
Fixes #1228.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.