npx skills add ...
npx skills add superwall/skills --skill superwall-editor
Build and edit live Superwall paywalls from the CLI. Attach to a running browser editor session using a pairing code, list the tools the browser exposes right now, and invoke them. Covers native sw-* elements, editing workflow, design standards, and the attach/call/release lifecycle. Use whenever the user wants to design, build, modify, or review a Superwall paywall, onboarding, or web2app flow.
npx skills add superwall/skills --skill superwall-editor
Paywalls are built in a browser editor that exposes its tools over an authenticated relay. This skill drives the same surface used by the MCP gateway, so every tool runs inside the live browser session the user has open.
Never assume a tool name or signature from memory. The browser is the source of truth and its tool set changes across releases.
Preferred API launch flow:
scripts/sw-editor.sh expose --application-id <id> --paywall-id <id> --agent-name <agent> --open --waitscripts/sw-editor.sh toolsscripts/sw-editor.sh call <tool-name> --args '<json>'Fallback manual flow:
scripts/sw-editor.sh attach <pairing-code>tools and call.Full CLI reference: references/cli.md.
sw-* elements (multiple-choice, indicator, drawer, picker, lottie, navigation): references/native-elements.mdexpose --open --wait when possible, otherwise use attach <pairing-code>. tools, call, status, release all require an attached session.expose --open --wait when you have SUPERWALL_API_KEY, an application id, and a paywall id. It uses the same relay as manual pairing but removes the human pairing-code step.tools to confirm it exists and to read the current parameter schema. Tools are defined in the browser bundle, so an updated editor can ship new or renamed tools without changing this skill.get_screenshot (if present in the tool list) every two or three modifications to verify. Don't fly blind.update_styles, set_text_content, set_dynamic_value, move_nodes) over re-running write_html on existing structure. See references/workflow.md.sw-* elements over hand-rolled <div> recreations whenever the UI represents a semantic control. See references/native-elements.md.jq, not Python. Example: sw-editor.sh call get_subtree --args '...' | jq -r '.content[0].text'scripts/sw-editor.sh release.session_not_ready: the browser disconnected or reloaded. Ask the user to bring the editor tab back, then re-attach. The pairing code rotates, so they must provide the new one.session_locked: another client is already attached. The user either attached from another MCP client, or a previous CLI attachment wasn't released. They can detach from the editor UI and you can retry.unauthorized: the controller token is stale. Re-attach with a fresh pairing code.attach_failed: provide a valid current pairingCode: pairing codes expire after ~10 minutes and rotate on detach. Ask the user to show you the current one.