Skip to main content
skill CX Codex

superwall-editor — Claude Code skill: edit Superwall paywalls

A skill that lets a terminal agent build and edit Superwall paywalls, onboarding and web2app flows. Useful when the browser editor is open and you would rather stay in the agent.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add superwall/skills --skill superwall-editor -a claude-code
Open on GitHub

What superwall-editor does

Superwall paywalls are built in a browser editor that exposes its tools over an authenticated relay. This skill drives the same surface as the MCP gateway, so every call lands in the live browser session the user has open.

You start by attaching. With SUPERWALL_API_KEY, an application id and a paywall id, run scripts/sw-editor.sh expose --application-id <id> --paywall-id <id> --agent-name <agent> --open --wait and let the user finish browser authorization. Otherwise ask for the pairing code from the editor UI and run scripts/sw-editor.sh attach <pairing-code> --agent-name <agent>. Once attached, list what is available with tools and invoke it with call.

The skill does not memorise tool names or signatures. The tool set lives in the browser bundle and shifts between releases, so run tools before calling anything you have not used this session. Pairing codes expire after roughly 10 minutes and rotate on detach, which means a stale one has to be requested again. A second client on the same session hits session_locked until the previous attachment is released. When the work is done, free the session with release.

What it helps with

  • build a paywall in the Superwall editor without leaving the terminal
  • tweak copy and styles on an existing screen
  • review an onboarding or web2app flow before launch
  • take over an editor session from a pairing code
  • find out which tools the current editor release exposes

Example prompts for the agent

  • Attach to the Superwall editor with this pairing code and list the tools you can run right now.
  • Build the paywall for application <id> and paywall <id> via expose, then grab a screenshot after the edits.
  • Update the copy and styles on the current screen, then release the session.

How to install superwall-editor

1Skills CLI (Vercel)

npx skills add superwall/skills --skill superwall-editor -a claude-code

2Manually: put the files in place

~/.claude/skills/superwall-editor/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/superwall-editor/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about superwall-editor

How do I install superwall-editor in Claude?

Run npx skills add superwall/skills --skill superwall-editor -a claude-code. The skill lands in ~/.claude/skills/superwall-editor/SKILL.md.

What does superwall-editor do?

It gives the agent access to the Superwall browser editor tools for building and editing paywalls, onboarding and web2app flows. Everything runs inside the editor session you keep open.

Why does my pairing code stop working?

Codes expire after about 10 minutes and rotate on detach. If you get attach_failed, ask for the current code and attach again.

Source text

SKILL.md · MIT
---
name: superwall-editor
description: Build, edit, or review Superwall paywall, onboarding, and web2app flows from a local coding agent with terminal access. Launch a browser editor session through the local CLI or attach to one with a pairing code, then discover its current tools. Covers native sw-* elements, design standards, and the attach/call/release lifecycle.
---

# Superwall Paywall 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.

## When to use

- The user wants to build, edit, or review a Superwall paywall, onboarding, or web2app flow.
- The user pastes a pairing code and asks you to take over editing.
- The user asks "what tools can you run right now?" Discover them via the browser, not from memory.

## Start here: attach, then discover

Never assume a tool name or signature from memory. The browser is the source of truth and its tool set changes across releases.

For `--agent-name`, use your agent's recognized slug, such as `codex`, `claude`,
or `cursor`. Use `other` for Grok Build, Muse Code, or any agent not listed in
the [CLI reference](references/cli.md#agent-identity).

Preferred API launch flow:

1. Create an auto-expose URL: `scripts/sw-editor.sh expose --application-id <id> --paywall-id <id> --agent-name <agent> --open --wait`
2. Ask the user to complete browser authorization if prompted. The editor auto-exposes; do not ask them to click the expose button.
3. Discover what is available right now: `scripts/sw-editor.sh tools`
4. Invoke tools: `scripts/sw-editor.sh call <tool-name> --args '<json>'`

Fallback manual flow:

1. Ask the user for the **pairing code** shown in the editor UI.
2. Attach: `scripts/sw-editor.sh attach <pairing-code> --agent-name <agent>`
3. Continue with `tools` and `call`.

Full CLI reference: [references/cli.md](references/cli.md).

## How to build and edit

- Workflow, build order, and when to use which tool: [references/workflow.md](references/workflow.md)
- Native `sw-*` elements (multiple-choice, indicator, drawer, picker, lottie, navigation): [references/native-elements.md](references/native-elements.md)
- Design standards, review checkpoints, typography, and conversion principles: [references/design.md](references/design.md)

## Orchestration rules

- Always establish an attachment before editing. Use `expose --open --wait` when possible, otherwise use `attach <pairing-code> --agent-name <agent>`. `tools`, `call`, `status`, `release` all require an attached session.
- Prefer `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.
- Before calling a tool you have not used this session, run `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.
- Use `get_screenshot` (if present in the tool list) every two or three modifications to verify. Don't fly blind.
- Prefer semantic tools (`update_styles`, `set_text_content`, `set_dynamic_value`, `move_nodes`) over re-running `write_html` on existing structure. See `references/workflow.md`.
- Prefer native `sw-*` elements over hand-rolled `<div>` recreations whenever the UI represents a semantic control. See `references/native-elements.md`.
- When parsing CLI output, use `jq`, not Python. Example: `sw-editor.sh call get_subtree --args '...' | jq -r '.content[0].text'`
- Release when the user is done: `scripts/sw-editor.sh release`.

## When things go wrong

- `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.

© superwall · MIT · superwall/skills

Similar skills

Everything for Frontend and UI →

From the same set3

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor