Send email campaigns on Listmonk from Windsurf
Windsurf can send campaigns on Listmonk through ClipSpeed. Add the ClipSpeed server with one config block, sign in, and then ask Windsurf to send campaigns, pick the time, and apply Listmonk's settings, without leaving the Windsurf editor's Cascade agent. Listmonk is on the roadmap on ClipSpeed's rail; this page describes how it works and says so.
Keep a human in the loop: Windsurf shows the plan and asks before anything is public. Posting today: YouTube, TikTok, Instagram, X (Twitter) and LinkedIn.
Also try
How to send email campaigns Listmonk from Windsurf
Windsurf reads MCP servers from one JSON file. Add the block, refresh the MCP list in Cascade's settings, sign in, and the tools appear. Connect Listmonk in ClipSpeed, then describe the post. Setup takes about a minute.
# One-time setup: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"clipspeed": { "serverUrl": "https://api.clipspeed.ai/mcp" }
}
}
# Then ask Windsurf:
> Send the newsletter to the Weekly list Friday 10am
Windsurf: Preview — nothing booked yet. Listmonk — title. Book it?Windsurf lists each server's tools in the MCP panel once connected. An empty list means the connection or sign-in did not complete. ClipSpeed has not yet seen a real Windsurf session connect; the setup is Windsurf's documented MCP route and the URL is the same as every verified client.
- Open ~/.codeium/windsurf/mcp_config.json (Windsurf Settings → Cascade → MCP → view raw config) and add the block shown.
- Refresh the MCP servers in Cascade. clipspeed appears; authenticate and approve the ClipSpeed sign-in.
- Ask Cascade to list your channels.
- Connect Listmonk in the ClipSpeed app, or ask Windsurf for a connect link: it is private, valid for ten minutes, and Listmonk signs you in itself.
Developer reference: the Windsurf MCP page.
What can Windsurf do on Listmonk?
On Listmonk, Windsurf can create and schedule email campaigns to a list on your Listmonk. Every booking runs through the same rules as the ClipSpeed app.
Text and Image posts
Listmonk takes text and image through ClipSpeed. Image: images by URL inside the email.
Limits checked at booking
the title is the email subject. Titles are required and cap at 200.
Exact time or refused
Name the minute and Windsurf books it, or you are told why not and offered the next open slot. A booked Listmonk post is never moved behind your back.
Preview before anything posts
preview: true runs the whole booking and writes nothing. Windsurf shows the plan, with each slot and the day's remaining cap, and books only on your yes.
Clips cut in the same chat
Submit a video or stream link, get captioned 9:16 clips with a viral score, and post the best moment's hook on Listmonk with a link to the clip. No download, no re-upload.
Pacing and numbers
Planned: Text posts on Listmonk are at least 240 minutes apart, up to 2 a day. After a post goes out, Windsurf can read back views and engagement where Listmonk provides them.
How does Windsurf post to Listmonk through ClipSpeed?
You describe what you want in plain language and Windsurf makes the ClipSpeed calls. A typical conversation has three beats.
Find your Listmonk channel
Ask Windsurf whether Listmonk is connected. It calls list_channels and reads platform_settings, so it also knows what Listmonk accepts and the limits before you write a word.
Compose within the rules
Describe the post. Windsurf drafts within Listmonk's limits; mention a clip or a file and it attaches it.
Schedule or publish
Name a time, or say now. The slot is booked exactly or refused with the next open one, and the reply carries the id you can cancel or edit by.
Listmonk settings reference
These are the schedule_post fields that apply to Listmonk. Mention any of them in plain language and Windsurf sets them; the server checks them at booking. Fields marked planned land with the Listmonk release.
| Field | Type | Required | What it does on Listmonk |
|---|---|---|---|
platforms | string[] | Yes | Include "listmonk". Up to ten platforms per call; each books its own slot. |
title | string | Yes | The subject line. |
text | string | Yes | The email body in HTML or Markdown. |
list | string | Planned | The Listmonk list to send to. |
scheduled_at | ISO 8601 | No | The send time; exact or refused. |
preview | boolean | No | Plan only. |
Common Listmonk configurations
Ask Windsurf for any of these and it applies the matching settings.
Weekly newsletter
Launch broadcast
Test to yourself
Preview
Example prompts for Listmonk in Windsurf
Type these into the Windsurf editor's Cascade agent. Windsurf calls ClipSpeed and confirms before publishing.
Send email campaigns Listmonk with a scheduled time
Send the newsletter to the Weekly list Friday 10am. Preview first.
Cut the clips, then post the hook
Clip this link, keep the top moment by viral score, and write a Listmonk post from the best moment's transcript, scheduled for tomorrow 9am. Show me the plan before booking.
Check and adjust the Listmonk calendar
What is scheduled on Listmonk this week? Cancel tomorrow's post and tell me the next open Listmonk slot on Friday.
Listmonk limits and gotchas to know
Listmonk enforces a few rules that Windsurf and ClipSpeed respect automatically, but knowing them helps you phrase requests.
- Email is unforgiving: a sent campaign cannot be recalled. Use preview and a test list.
- Listmonk is self-hosted; you connect your own instance with an API user.
- Listmonk is on ClipSpeed's roadmap, not the next rail. Bookings are refused plainly until it posts.
- Pacing is deliberately tight: two campaigns a day four hours apart.
- Templates and personalisation fields are planned.
| Rule | Listmonk |
|---|---|
| Accepts | Text, Image |
| Text limit | the title is the email subject |
| Title | 200 characters, required |
| Links in the caption | Kept |
| Pacing | Planned: Text posts on Listmonk are at least 240 minutes apart, up to 2 a day. |
| Formats | Image: images by URL inside the email. Aspect: any |
| Status | On the roadmap; described here, not yet bookable |
What Postiz-style schedulers cannot do
Cut the clips first
Windsurf does not need finished video to start. Hand it a YouTube link, a podcast, a stream VOD or a local export. ClipSpeed finds the moments, cuts them to 9:16 with word-by-word captions, scores each one 0 to 100 for shareability, and returns them in the same conversation. Windsurf picks by score, writes the post from the transcript, and books the best moments as links on Listmonk. Three tool calls, one approval, no download and no re-upload.
- Clips arrive with a title written from the hook, a transcript and a viral score, so the agent can choose and caption without watching the footage.
- Live streams can be clipped while they are still on air; the agent books the highlights for the next morning before the stream ends.
- Every clip is already hosted, so
schedule_posttakes its id directly. Nothing moves through your laptop.
submit_to_clipspeedPaste the link. ClipSpeed starts the job and returns a project id.check_clipsPoll with the project id. Back come the finished 9:16 clips with titles, transcripts, viral scores and preview links.schedule_postPass the clip id, the platforms, a caption and a time. Windsurf shows the plan with preview: true, you say yes, it books.generate_image or generate_videoDescribe the shot. ClipSpeed runs it on the model that fits (Seedance, Kling, Veo, Nano Banana Pro, GPT Image and others) and quotes the credits first.wait_for_generationReturns the hosted result link and a preview the agent can show you.schedule_post with media_urlThe result link goes straight into the booking on Listmonk. The caption, the time and the file are approved together.The other half nobody else has
Generate the image, then post it
A product shot for Instagram, a 16:9 announcement graphic for X, a six-second opener before a clip: Windsurf can make an image with ClipSpeed's image and video models and book the result in the same reply. There is no separate design tool, no export, no upload page. The generated file is hosted, so media_url is the only thing the booking needs.
- The price in credits is quoted before anything renders, within the per-generation and daily caps you set in Settings.
- Results are previewed in the conversation, so you approve the picture and the post at once.
- Images post as JPG, PNG or WebP up to 25 MB; links are kept clickable.
What is Windsurf?
Windsurf is an AI code editor whose agent, Cascade, runs multi-step tasks in your project and calls MCP tools. With ClipSpeed in Windsurf's MCP configuration, Cascade can clip a video, generate images and video, and schedule posts to your connected platforms from inside the editor.
How ClipSpeed works with Windsurf
- Windsurf connects to the ClipSpeed server from mcp_config.json; sign in in the MCP panel
- Cascade reads
platform_settingsbefore composing schedule_postis exact or refused with the next open slotpreview: truefor a dry run- OAuth, or an API key header where there is no browser
Windsurf vs Cursor vs Claude Code: Windsurf (windsurf editor), Cursor (cursor editor), Claude Code (terminal). This page is about Windsurf; the Windsurf guide compares them.
{
"mcpServers": {
"clipspeed": {
"serverUrl": "https://api.clipspeed.ai/mcp"
// no browser? add:
// "headers": { "Authorization": "Bearer csai_live_..." }
}
}
}# What the agent reads at connect time (tool descriptions, abridged)
list_channels Connected platforms, what each accepts, limits, your time zone
connect_channel A private 10-minute link to connect one platform
platform_settings Limits, title rules, link handling, pacing per platform
schedule_post clip_id | text | media_url → platforms[], scheduled_at, preview
list_scheduled_posts Scheduled, sending, posted, failed — with post links
update_scheduled_post Edit copy while still scheduled (the time never moves)
cancel_scheduled_post Cancel; undoable 72 h in the app
post_analytics Views, likes, comments, shares where the platform gives them
submit_to_clipspeed Start clipping a video or stream link → projectId
check_clips Finished 9:16 clips with titles, transcripts, viral scores
generate_image / generate_video / wait_for_generation
# Listmonk: text/image · text n/a · title 200 requiredSend email campaigns on Listmonk and other platforms from Windsurf
One request can book the same content to Listmonk and other channels, each keeping its own settings and its own slot. Every platform below has its own Windsurf guide.
Also works with
Listmonk and Windsurf: frequently asked questions
How do I send email campaigns to Listmonk from Windsurf?
Open ~/.codeium/windsurf/mcp_config.json (Windsurf Settings → Cascade → MCP → view raw config) and add the block shown. Refresh the MCP servers in Cascade. clipspeed appears; authenticate and approve the ClipSpeed sign-in. Connect Listmonk in ClipSpeed (or ask Windsurf for a connect link; it is private and valid for ten minutes), then describe the post in plain language. Windsurf reads the Listmonk rules, drafts within them, shows the plan and books on your yes. Listmonk is on the roadmap; until the badge changes, the booking is refused with a plain message.
What can Windsurf post to Listmonk through ClipSpeed?
Create and schedule email campaigns to a list on your Listmonk. Listmonk takes text and image posts. A title is required and is capped at 200 characters.
Which Listmonk settings can Windsurf control?
The fields in the settings reference above: title, text, list, scheduled_at, preview. Mention any of them in plain language ("unlisted", "tomorrow at 9", "preview first") and Windsurf sets the matching field before it books.
Do I need a Listmonk API key or developer account?
No. You connect Listmonk to ClipSpeed once through Listmonk's own sign-in, and Windsurf talks to ClipSpeed over OAuth. No Listmonk developer key, bearer token or password is pasted anywhere.
How many Listmonk posts a day can Windsurf schedule?
Planned: Text posts on Listmonk are at least 240 minutes apart, up to 2 a day. When a time is taken, the booking is refused with the next open slot rather than moved. Ask for preview to see a day's plan and the remaining cap before anything is booked.
Can posts go out to Listmonk while I am away?
Yes. Once booked, ClipSpeed publishes at the scheduled minute whether or not Windsurf is open. For unattended runs that decide what to post, use a headless agent such as Claude Code or Codex with the same account.
Is posting to Listmonk from Windsurf different from Cursor?
The booking is identical: the same rules, the same calendar, the same refusals. What differs is where you work. Windsurf: the windsurf editor. Cursor: cursor editor, agent panel; cursor-agent cli.