extension-development

Guide bootc Podman Desktop extension development across Svelte frontend, RPC contracts, and Node.js backend.

477|33|Updated Dec 19, 2023
One-click install
npx skills add https://github.com/podman-desktop/extension-bootc --skill extension-development-podman-desktop
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: extension-development
Source: https://github.com/podman-desktop/extension-bootc/tree/main/.agents/skills/extension-development
Command: npx skills add https://github.com/podman-desktop/extension-bootc --skill extension-development-podman-desktop

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Developers need a reliable, end-to-end map for adding new capabilities to the bootc Podman Desktop extension without getting lost in lifecycle, architecture, or the RPC wiring between frontend and backend.

Core Features & Use Cases

  • Extension lifecycle understanding: Clarifies how activation/deactivation works and where to inspect the current initialization sequence.
  • Architecture and data flow guidance: Explains how the frontend (Svelte webview), shared contract (typed API), and backend (Node extension host) connect through a message proxy.
  • End-to-end feature implementation steps: Provides a checklist for defining API contracts, implementing backend logic, wiring frontend calls and routes, and extending shared models.

Quick Start

Ask the AI to guide you through adding a new end-to-end feature by starting with a new method in the shared API contract and then updating the backend implementation and frontend route.

Frequently Asked Questions about extension-development

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

FAQPage Schema
How do I add a new feature to a Podman Desktop extension across backend and UI?

Adding a feature requires defining a new method in the shared BootcAPI contract, implementing the backend logic in BootcApiImpl, wiring the typed rpcBrowser proxy, and updating the frontend Svelte webview routing. This ensures consistent end-to-end behavior across packages.

How does the Svelte webview communicate with the Node.js extension host?

The Svelte webview and Node.js extension host communicate through a typed message proxy. The shared contract defines the API, while a typed rpcBrowser proxy handles the frontend calls to execute corresponding backend implementation logic.

What is the best way to understand Podman Desktop extension lifecycle and architecture?

Extension architecture clarifies activation and deactivation sequences and maps data flow between the Svelte frontend, shared typed API contract, and Node.js backend host. Inspecting the current initialization sequence shows where to hook new capabilities.

Do I need to use a typed API contract when developing bootc Podman Desktop extensions?

Using a typed API contract like BootcAPI is required for mapping frontend calls to backend implementations. It ensures type safety across the rpcBrowser proxy and synchronizes shared models between the Svelte webview and extension host.

Why does my new Podman Desktop extension UI route fail to trigger backend logic?

A missing frontend route fails to trigger backend logic when the rpcBrowser proxy is not wired to the updated BootcAPI contract. You must update App routing and ensure the BootcApiImpl backend implementation matches the shared API method.