Redirecting to PayPal

Design CLI > Design Outreach Automation

Automate Design Outreach

Automate personalized design outreach with the Design CLI. Instantly redesign prospect websites, preview locally, and send polished outreach emails with redesign links via Resend.

Step by step guide

Features

Personalized redesign outreach without manual handoffs.

Generate redesigns, review every prospect locally, and send polished email outreach from one automation flow.

Run from the command line:

$ npm run redesigns
$ npm run preview
$ npm run send-emails

Setup

Set up the automation, step by step.

This setup assumes you already have Shuffle's Design CLI installed.

1

Copy the example

Move the Design Outreach Automation Example to the directory where you want to run and customize it.

From installed CLI package

$ cp -R ./node_modules/@shuffle-dev/cli/examples/redesign-offer-automation ./redesign-offer-automation

From GitHub

$ git clone https://github.com/shuffle-dev/cli
$ cp -R ./cli/examples/redesign-offer-automation ./redesign-offer-automation
2

Install dependencies

Run this inside the directory where you copied redesign-offer-automation.

$ npm install
3

Authenticate Shuffle

On the same user account that will run the automation.

$ npx @shuffle-dev/cli auth
4

Create .env

Copy the example file, then fill in your tokens. See all available environment variables.

$ cp .env.example .env

Model — set one:

SHUFFLE_MODEL=claude-opus-4-7
or
SHUFFLE_ALL_MODELS=true

Email sending:

RESEND_API_KEY=re_...
EMAIL_FROM=Offers <offers@example.com>
EMAIL_SUBJECT=Redesign proposal for your website
5

Create your prospects file

Start from the example. The file is gitignored so prospect data stays local.

$ cp prospects.json.example prospects.json

prospects.json

[
  {
    "email": "name@example.com",
    "url": "https://example.com",
    "redesign": "",
    "email_sent": ""
  }
]

Leave redesign empty when the prospect needs a new redesign. Leave email_sent empty when the email still needs to be sent.

6

Customize outreach

Edit email-template.html to change the HTML email content and styling.

Edit REDESIGN_PROMPT in src/shuffle.js to change the default redesign prompt used by npm run redesigns.

For a one-off prompt override, run:

$ npm run redesigns -- --prompt "Your redesign instructions here"

Commands

Run the automation.

Generate redesigns

Creates missing redesigns for prospects and stores output file paths in the redesign column.

$ npm run redesigns

Preview redesigns

Starts a local preview server for all generated redesigns.

$ npm run preview

Send emails

Sends emails to prospects who have a redesign file but an empty email_sent.

$ npm run send-emails

Email template parameters

The email command renders email-template.html and passes these parameters:

  • subject — escaped email subject
  • email — escaped recipient email
  • websiteUrl — escaped prospect website URL
  • modelsHtml — generated HTML for all model responses with screenshot images

Shuffle Account

You need a Shuffle account to use the automation.

The tool uses your Shuffle account via Shuffle CLI to create redesigns. Authenticate on the same user account that runs the automation.

Design generations consume AI tokens. To verify your token balance, visit the dashboard. If you run out of tokens, you can purchase more.

Authenticated CLI

Run npx @shuffle-dev/cli auth on the machine that runs the automation.

Token balance

Each design generation consumes AI tokens. Monitor usage in your Shuffle dashboard.

All top AI models

Set SHUFFLE_MODEL to any supported model, or use SHUFFLE_ALL_MODELS=true to run all redesign-capable models.

Configuration

Environment variables.

SHUFFLE_CLI

CLI command to run. Defaults to npx @shuffle-dev/cli.

SHUFFLE_MODEL

Model ID to use. Use either SHUFFLE_MODEL or SHUFFLE_ALL_MODELS=true — not both.

SHUFFLE_ALL_MODELS

Set to true to run all active redesign-capable models.

SHUFFLE_SCREENSHOT

Set to false to skip screenshot generation.

SHUFFLE_TIMEOUT_MS

CLI timeout in milliseconds. Defaults to 900000.

RESEND_API_KEY

Resend API key for sending emails.

EMAIL_FROM

Verified sender used by Resend. Example: Offers <offers@example.com>.

EMAIL_SUBJECT

Email subject line. This is not templated — used exactly as written.

EMAIL_REPLY_TO

Optional reply-to address.

PREVIEW_HOST

Local preview server host. Defaults to 127.0.0.1.

PREVIEW_PORT

Local preview server port. Defaults to 3333.

© 2026 Shuffle. All rights reserved.