view-bridge

Manage editor lifecycle and multi-view attachments for Pulp plugin adapters.

13|1|Updated Apr 6, 2026
One-click install
npx skills add https://github.com/danielraffel/pulp --skill view-bridge
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: view-bridge
Source: https://github.com/danielraffel/pulp/tree/main/.agents/skills/view-bridge
Command: npx skills add https://github.com/danielraffel/pulp --skill view-bridge

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This document captures the lifecycle invariants, ownership rules, and adapter responsibilities required to correctly open, attach, resize, and close editor views for Pulp plugins so hosts and plugins avoid resource leaks, duplicated processors, and dangling pointers.

Core Features & Use Cases

  • Two-step open/attach protocol: explains why adapters must call open() then notify_attached() to guarantee balanced on_view_opened/on_view_closed calls.
  • Ownership and release semantics: details release_view() usage for handing a view to container widgets and the caller responsibilities to keep the view alive until bridge.close().
  • Secondary and remote views: describes attaching inspectors, remote views, view roles, and the Phase 4 remote-view protocol plus associated tests and examples.
  • Adapter author guidance: per-format attach points, common pitfalls, and test references for VST3, CLAP, AU v2, AU v3, and Standalone adapters.

Quick Start

Open the ViewBridge documentation and implement the open then notify_attached then resize then close protocol when overriding Processor::create_view or building a new adapter.

Frequently Asked Questions about view-bridge

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage the plugin editor lifecycle for VST3 and CLAP views without leaking resources?

To manage the plugin editor lifecycle safely, implement the open then notify_attached protocol before resizing and closing views. This two-step process guarantees balanced on_view_opened and on_view_closed calls, preventing resource leaks and duplicated processors across format adapters.

What is the two-step open and notify_attached protocol for plugin UI views?

The two-step open and notify_attached protocol requires adapters to call open() followed by notify_attached() when creating plugin UI views. This sequence ensures balanced lifecycle callbacks and safe attachment of secondary views before any resizing or closing operations occur.

How do I safely transfer ownership of a secondary view to a container widget in a Pulp plugin?

To safely transfer ownership of a secondary view, use the release_view function to hand the view to container widgets. The caller must keep the view alive until bridge.close() is invoked, preventing dangling pointers during the plugin editor lifecycle.

Does the Pulp view bridge support AU v2, AU v3, and Standalone editor attachments?

Yes, the Pulp view bridge supports AU v2, AU v3, CLAP, VST3, and Standalone format adapters. It provides per-format attach points, common pitfall guidance, and test references for implementing create_view, release_view, notify_attached, resize, and close functions.

Why does my plugin create duplicated processors when opening remote views?

Duplicated processors occur when the plugin editor lifecycle protocol is unbalanced. Adapters must follow the open then notify_attached sequence and use release_view for safe ownership transfer, ensuring remote views and inspectors attach without duplicating processor instances.

Can I attach inspectors and remote views using the Pulp view bridge lifecycle?

Yes, you can attach inspectors and remote views using the Pulp view bridge lifecycle. It describes view roles, the Phase 4 remote-view protocol, and associated tests to ensure secondary and remote views attach correctly while maintaining lifecycle invariants.