---
title: "How to build flows and paywalls with your own AI coding agent"
description: "Describe the paywall you want and your AI agent builds it in Adapty Flow & paywall builder. That simple."
url: "https://adapty.io/blog/ai-coding-agent-paywalls/"
language: "en"
slug: "ai-coding-agent-paywalls"
category: "build-integrate"
date: "2026-08-27T19:34:11.911Z"
date_modified: "2026-09-08T19:09:10.560Z"
author: "Dalibor Vasic"
---

# How to build flows and paywalls with your own AI coding agent

## TL;DR

- Describe the paywall you want to Claude or whatever AI tool you code in. It builds it in your app.
- Point it at a screenshot and it rebuilds that screen, matching the colors off the actual pixels. Point it at a Figma frame and it reads the frame.
- A quiz that routes people to different screens, a second version to test against the first. All from asking.
- Nothing goes live without you pressing the button, and you can change the price or the headline later without shipping an update

You can now build an entire onboarding and paywall in Adapty by simply asking. And without opening the builder.

All with Adapty's `flow-generator` skill.

You instruct your own AI coding tool to read Adapty’s flow config, rewrite it, check the results, and save as a draft. That's all.

Put simply, **you prompt it what to build and it builds it directly into our** [**Flow & paywall builder**](https://adapty.io/flow-paywall-builder/). You open the dashboard just to see how it turned out.

To demonstrate, let’s think of a random app. Say, a hydration tracker. We’ll input the following prompt:

> *Build me a paywall for a water tracking app. Two plans, annual preselected with a free trial. And make it feel like water.*

Five minutes later, here’s what we found in our Adapty dashboard:

![Water paywall example](https://adapty.io/uploads/hydration-app-paywall.png)

It doesn’t stop there, though. The same prompt box will build an entire onboarding, branch it on a quiz answer, repair your navigation, or place photographs from a folder on your laptop.

## The benefits of building flows with your agent

Adapty already has an AI Editor inside the Flow Builder and it works within our guidelines.

This skill, on the other hand, runs **your model in your terminal with your context.**

Adapty becomes one more tool your agent knows how to operate, together with all your other playthings:

- **Your design tool.** Connect your AI tool to a design tool like Figma over MCP and the skill reads the frame itself. Exporting PNGs is a thing of the past.
- **Your repo.** Your product identifiers sit in your code and your brand colors sit in your theme file. An agent working in your project reads them instead of asking you for them.
- **Your tooling.** Claude Code, GitHub Copilot CLI, OpenAI Codex and Gemini CLI all load skills. Whichever one you have open is the one this runs in.
- **Your other skills.** flow-generator ships beside `paywall-breakdown`, [`adapty-integration`](https://adapty.io/docs/adapty-sdk-integration-skill) and `ads-manager`. They compose.

The consequence you will feel is scope. One prompt reaches [the whole flow](https://adapty.io/blog/paywall-builder-vs-flow-builder/), and no internal guideline decides what you are allowed to ask for.

> **Note:** When the skill designs a screen with no reference to follow, it runs the *paywall-breakdown* library over Adapty’s internal data and fixes what ranks highest before you see the result.

## What you can build with the Adapty AI coding skill

Requests tend to fall into three shapes.

You're either starting something new, extending something that already exists, or making a second version of something that already works. Let’s walk through each.

### Make something from nothing

There are multiple ways in, depending on what you're holding. A competitor's screen, a single sentence, or maybe a template you liked the shape of.

All three end in a brand new flow, so nothing you already have is at risk while you experiment.

#### Rebuild a paywall from a screenshot

If you ever wanted to build something close to a Duolingo paywall, or a competitor paywall, but didn’t have the time, or skill… Now you have both.

To test it out, we uploaded a *Kitchen Stories app* paywall and told it to try and make the closest possible version. The result:

![Copy paywall 1](https://adapty.io/uploads/copy-paywall-1.png)

A solid output for around 10 minutes of wait.

The skill sampled color off of pixels rather than naming them from memory:

![Palette agent](https://adapty.io/uploads/color-palette-agent-1.png)

What’s great is that it then builds, renders, then compares its render against your file element by element, and closes the differences it can reach.

For those it cannot, it says; In this case, the app's custom typeface, which the CLI cannot upload, and the illustration, which had no source file.

For the illustration it drew a stand-in and told us it had done so, rather than binding an invented image URL into the screen:

![Claude illustration skill](https://adapty.io/uploads/claude-illustration-skill.png)

Not a bad sketch, Mr Agent. Not bad at all.

> **Note:** **It’s better to give a file path**. Our [paywall library](https://adapty.io/paywall-library/) is a good source of reference screens if you want to try this before you have a  file of your own. You can also use MCPs of public onboarding libraries and just ask the agent to "*replicate a Duoloingo paywall*" for example. Or your favorite app. Or a competitor.

#### Build one from a sentence

No reference? No problem. You can prompt one or two sentences and the skill can pick the design and grade its own work before you see it.

It runs Adapty’s `paywall-breakdown` library over the screen it built and fixes what ranks highest, which gets you [the patterns that convert in your category](https://adapty.io/blog/how-to-design-a-paywall-for-a-mobile-app/) instead of a generic layout.

The prompt used:

> A paywall for my fitness app. Two plans, annual preselected, free trial on the annual. Show me my products first and let me pick.

The output we got:

![Paywall from sentence](https://adapty.io/uploads/paywall-from-sentence.png)
*A paywall from the simplest prompt*

Your numbers stay yours. Ratings, review counts and discount percentages never get invented: the skill asks you, or it leaves the element out and says which one it chose.

> **Note:** **Why not vibe-code the paywall outside of Adapty instead? ** Because your agent writes the screen just as fast, then it lives in your build. When you vibe code, every headline change after that is a new version and another store review. Point the same prompt at Adapty and the screen updates on users who already installed the app. [The longer argument.](https://adapty.io/blog/-vibe-code-paywalls/)

#### Start from an entire flow from template and change it

You can also upload a template or a design that you’ve built in a design tool and simply describe what it should become.

The skill fetches the config that already works and patches it, which means the navigation, the plan-card mechanics and the theme structure all come pre-solved.

We’ve uploaded the entire flow:

![Flow template](https://adapty.io/uploads/flow-template.png)
*An imported flow design, ready to become a functional flow in one prompt*

Here's what we got:

![Flow template done gif](https://adapty.io/uploads/flow-template-done-gif.gif)

The biggest upside is that you’re editing a working document instead of authoring one.

It is also the gentler first run. A flow with content in it gets treated as something to protect: the skill backs it up before the first edit and waits for your yes before it writes.

> **Got a tool like Figma connected to your agent over MCP?**
>
> Point the skill at a frame instead of a template and it reads the design directly: real color values, real spacing, real type scale. Nobody exports a PNG.

### Take a flow further

Editing a flow you already have is the safer path and the more common one.

The skill fetches the real config, backs it up, and patches the copy it fetched. That's why dropping a screen into the middle of a flow doesn't strand the screens around it.

### Build a quiz that branches

A quiz can help you tailor your paywall depending on each users’ goals and smoothen the decision. It also makes the first touch with an app feel like a personalized conversation.

But building tons of quiz screens and connecting the logic behind each can intimidate easily.

That’s why we tried this prompt on top of the fitness app paywall we built above:

> *Add a quiz screen before my paywall: "What's your main goal?" with three options, each routing to its own benefit screen, then on to the paywall.*

The agent explains the logic and connects the dots so you don't have to:

![Quiz logic](https://adapty.io/uploads/quiz-logic.png)

Selectable groups, option IDs, and the conditional actions that send each answer somewhere different.

This is the [personalization step](https://adapty.io/blog/how-to-personalize-onboarding-and-paywalls-in-your-mobile-app/) that turns an onboarding into a qualified paywall visit.

The agent built three possible answers and three simple branches:

![Quiz example 1](https://adapty.io/uploads/quiz-example-1.jpg)

And if you pick one of the other two it takes you to different outcomes:

![Quiz example 2](https://adapty.io/uploads/quiz-example-2.jpg)

### Add new screens to your existing flow

If you just drop a screen in the middle of the flow you can break the navigation around it.

But the skill repairs what broke and names any screen that’s left unreachable, which is a defect you’d otherwise meet in review.

Or, you just remembered you’d need a social proof screen before the paywall. You say:

> *Add a social proof screen between the quiz and the paywall, with a star rating and two testimonials. Ask me for the real numbers.*

And voila:

![Social proof screen](https://adapty.io/uploads/social-proof-screen.png)

Since we made up the app, we told the agent to make up some quotes, too. It did.

What we didn’t want to make up is the data you place as a value screen during onboarding..

So we found one about the benefits of exercise and prompted the agent to add it after social proof.  Here’s a screen it added after 5 minutes:

![Value add screen](https://adapty.io/uploads/value-add-screen.png)
*The agent found it, built it, quoted it.*

It also builds the chart. Not a picture of a chart: a real image, uploaded to your media library and bound into the screen, with the source line sitting on the screen as text so it survives translation.

## Iterate and test

A paywall is rarely finished.

These are the changes you make to something that already converts, where the whole point is to move one thing and leave everything else exactly where it was.

### Create another paywall for a quick A/B test

Theme, fonts, locales and products carry over from the flow that already works, so your variant differs in one place.

That is the only condition under which the test result tells you anything.

If we wanted to test our fitness app, we can say:

> *Copy my "Main paywall" into a new flow and make the weekly plan the preselected one. Leave the original alone.*

We got two almost identical screens, yet with a crucial difference.

![Ai agent ab test](https://adapty.io/uploads/ai-agent-ab-test.jpg)
*The control and the variant. Which one is more tempting?*

### A re-skin from a reference image

Imagine you can just make your screen “christmassy” before Christmas.

The skill samples the palette off your image and applies it across every screen, which beats restyling six screens by hand the week before a seasonal campaign.

Let’s take our Kitchen Stories Here’s a simple recoloring prompt pointing to a different color palette. Something that’s more in line with, say... Autumn.

> Re-theme my paywall flow to match the colors in ./design/autumn.png. Copy and layout stay as they are.

Compare the two:

![Unnamed (1)](https://adapty.io/uploads/unnamed_1.png)

Or take it and make it feel like Christmas, too:

![Kitchen christmas](https://adapty.io/uploads/kitchen-christmas.png)
*Same flow, new season.*

Pretty good for a stupid simple prompt and four minutes of wait.

### Use your own image to build a flow or a paywall

The agent does a great job in fitting your images into paywalls and flows.

It uploads each file and binds the URL it gets back into the flow, so you skip the trip to the media library.

Name a file it cannot find and it asks you, instead of substituting one that looks close.

Now, have you ever thought about this: *what if could just built a paywall for a fictional app about my dog?*

So, yours truly uploaded three most recent images, picked the one where he has a piece of paper on his ear to be the hero image, and let AI do its thing. Did it?

You bet it did:

![Unnamed (2)](https://adapty.io/uploads/unnamed_2.png)
*An app for the goodest boy.*

Yes, it would be a useless app. But the point is, you can build absolutely anything than comes to mind. And we mean anything.

> **Note:** Runs take time. The skill re-renders after every change it makes, which is what keeps a broken config off your dashboard. A small edit finishes in a few minutes. A multi-screen flow with branching takes 10 to 40. Start it and go do something else.

## Check your flow before you ship

A flow can clear every publish gate and still hurt you.

The Flow Builder's `checks and flows config` `validate` both ask whether the document is well formed. Neither asks whether a real user gets stuck, or reads something false.

The `flow-audit` skill asks that. It ships in the same plugin. Point it at a flow and it reads the config and your product catalog, then gives you a verdict instead of a list to interpret:

```bash
Flow: Nimbus onboarding  ·  publication_failed
7 screens · 3 locales · 2 products

NOT READY FOR PRODUCTION — 2 blockers: no restore action, no way off the paywall
```

It catches dead text that looks like a working control, missing restore and terms links that [fail App Store review](https://developer.apple.com/app-store/review/guidelines/), products bound to nothing, hardcoded prices where a variable belongs, and copy nobody finished.

It writes nothing. Hand the report to `flow-generator`, which owns the backup and your approval.

## What the AI agent won’t do

Publishing stays yours, because the [CLI](https://adapty.io/docs/developer-cli) has no publish command and the skill stops at a saved draft.

Overwriting a config you already have needs your explicit yes, and the request names the flow, its status and the backup file it took first.

If a teammate saved that flow while the skill was working, your write fails instead of erasing their afternoon.

## How to install Adapty’s AI agent?

You need an AI coding tool that loads skills. Claude Code, GitHub Copilot CLI, OpenAI Codex and Gemini CLI all qualify.

You don't need to install the Adapty CLI yourself: the skill checks for it on the first run, installs or updates it if it has to, then opens your browser to log in and waits for you.

**Claude Code**

```bash
claude plugin marketplace add adaptyteam/adapty-skills
claude plugin install adapty-skills@adapty
```

Then run `/reload-plugins` to activate it.

**Any other tool**

```bash
npx skills add adaptyteam/adapty-skills --all
--all installs into every agent the skills CLI can find.
```

`--all` installs into every agent the[skills CLI](https://skills.sh) can find.

For this one on its own, use `--skill flow-generator`. Copilot CLI, Codex and Gemini each have a native route too, listed in the[docs](https://adapty.io/docs/flow-generator-skill).

Then ask for it. /flow-generator in tools that map slash commands to skills, or "use the flow-generator skill" in the ones that don't.

One install gives you every skill in the plugin, so `paywall-breakdown`, `adapty-integration` and `ads-manager` arrive at the same time.

They compose with each other, which is how the fitness paywall above got graded before anyone saw it.

Install it, then say what you want in plain words.

## Stop dragging boxes, start describing screens

The skill earns its install if your paywalls stall between the idea and the build. What it produces is an ordinary flow, so the paywall your agent wrote on Tuesday is one your marketer can edit next week, and the change reaches people who already installed the app.

You don't need the terminal to start. Build the flow in the editor, then hand it to your agent when you want ten variants of it.

[**Open the Flow & Paywall Builder →**](https://adapty.io/flow-paywall-builder/)

## FAQ

### Do I need the Adapty CLI, or does the skill install everything?

You need the CLI, authenticated in the same environment your agent runs in. The skill drives the CLI rather than replacing it, so installing the plugin on its own gets you a skill that loads and then fails on its first fetch. The plugin install is two lines; CLI setup is separate and one-time.

### Does this only work with Claude Code?

No. Claude Code, GitHub Copilot CLI, OpenAI Codex and Gemini CLI all load skills, and the skill runs in whichever one you have open.

### Can the skill publish a flow to live users?

No. The CLI has no publish command, so the skill stops at a saved draft and publishing stays a dashboard action you take yourself. Reading, validating and previewing a flow write nothing at all.

### Can it edit a paywall that is already live, or only build new ones?

It edits live flows, and that is the more common use. It fetches the current config, writes a backup file, then patches the copy it fetched, and the overwrite waits for your explicit yes. If a teammate saved that flow while the skill was working, your write fails instead of overwriting their changes.

### What can't it match when rebuilding from a screenshot?

Custom typefaces and images with no source file. The CLI cannot upload fonts, so a brand typeface falls back. For a missing illustration it draws a stand-in and tells you it did, rather than binding an invented image URL into the screen.

### Why not just ask the AI to write the paywall in Swift or Kotlin?

Your agent can do that just as fast, and the cost shows up later. Code ships in a build, so changing a headline means a release and a store review, and restore and renewal handling stay yours to maintain. The same prompt aimed at Adapty produces a config that reaches live users without a release.
