Skip to main content
This is the whole thing end to end: connect Goose to Claude, then ask it to make three ads for your brand. Setup and generation time depend on your account, brand research, and chosen settings. You need a GooseWorks account (sign up free) and either Claude Code or the Claude app. CLI installation also requires Node 18 or newer with npx.
1

Connect Goose

Paste this into your agent — Claude Code, Cursor, Codex, or a chat app like Claude or ChatGPT:
Your agent reads that page and follows it. It asks you before it installs anything, then runs the GooseWorks CLI with --all (it sets up every coding agent on your machine at once), opens a browser for Google sign-in, checks the install, and carries on in the same chat: it sets up your brand there (it asks for your website and a couple of quick questions), then gets back to what you asked for. You don’t need to reopen your agent; the GooseWorks tools also show up in its next session. If your agent is a chat app like claude.ai, the Claude desktop app’s chat or ChatGPT, it gives you the MCP connector address instead.The page only ever runs npx gooseworks@latest …. It writes your agent’s skills folder, your agent’s MCP config (for Cursor that is the global Cursor MCP config, plus the project’s .cursor/mcp.json if the folder has one), and ~/.gooseworks/credentials.json. The MCP config entries contain your sign-in token. It writes no other files. Installing is free; some skills spend credits when they run. The check at the end also reports whether ffmpeg and a browser are present; those only matter for rendering video ads on your machine and do not block the install.A browser opens for Google sign-in. Use the same account as your GooseWorks login. Claude Code keeps going in the same chat: it checks the connection and sets up your brand there. You don’t need to restart it.
Then open a new Claude Code session, verify the connection with account_whoami, and ask GooseWorks for a real task. If your brand isn’t set up yet, Claude Code sets it up in the chat first.
2

Check it's really connected

Type this into Claude:
You: Use GooseWorks to tell me which account I’m signed in as.
Claude calls account_whoami and answers with something like:
Claude: You’re signed in to GooseWorks as you@yourcompany.com.
If Claude says it has no GooseWorks tools, check that gooseworks is enabled in Claude Code’s MCP settings or connected in the Claude app’s connector settings. Restart or reconnect the client, then try account_whoami again.
3

Give Goose your brand

Goose makes ads for a brand, so the first thing it needs is your website. It reads the site, works out what you sell and how you talk, and saves that as a reusable brand.
You: Use GooseWorks to set up a brand for yourcompany.com.
Claude checks company setup with brand_onboarding, uses brand_read to find an existing brand, and creates one with brand_create only if needed. It reads the research state with brand_read (passing the brand’s id) before generating:
Claude: I’ve created the brand Your Company and researched the site. Research is complete and a brand kit is ready — logo, colours, and a set of messaging angles. Want to see the angles before I make anything?
Research can take a few minutes. Later requests reuse the saved brand context.
Already have brands in GooseWorks? Skip this. Say “use my existing Acme brand” and Claude will find it with brand_read.
4

Ask for three ads

Now the actual request:
You: Make three square ad creatives for that brand, one image per concept. Different angles — one problem-first, one product-hero, one social-proof. Show me the credit cost before you spend anything.
Claude finds and inspects sources with ads_template_read, then calls ads_generate with dry_run: true, one variant per template, and ratios: ["1:1"] for each item. It shows the returned quote before generating:
Claude: I picked three templates that fit your brand. Here is the current credit quote for three square images and your available balance. Shall I generate them?
You: Yes, go.
Claude submits the same request through ads_generate with dry_run: false and mode: "generate", then polls job_get(kind: "ads_batch") until the images finish:
Claude: All three are done. Here they are:
  1. “Still doing this the hard way?” — problem-first, square
  2. “One tool. Every channel.” — product hero, square
  3. “Why teams switch” — social proof, square
Each one is linked above and saved to your GooseWorks account.
Ask for the quote before generation. ads_generate with dry_run: true returns it without starting the images. Omitting ratios can produce three sizes per variant, so keep them explicit. Ask “how many credits do I have?” any time — the agent checks account_whoami.
5

Change one and re-roll it

The point of driving this from a chat is that editing is a sentence, not a UI trip.
You: The second one’s headline is too long. Shorten it to four words and make the background darker.
Claude uses ads_creative_edit on that creative and returns the new version. Edits can use additional credits; agree on the work before starting it.

What just happened

  1. brand_onboarding and brand_read establish the account and brand.
  2. ads_template_read identifies the source images.
  3. ads_generate(dry_run: true) quotes the exact requested outputs.
  4. After approval, ads_generate starts the cloud job and job_get checks progress.
  5. ads_creative_edit handles paid follow-up edits.
Generation runs on GooseWorks’ infrastructure, not your machine — Claude is only the interface. Everything it makes is saved to your GooseWorks account and shows up in the web app too.

If something goes wrong

doctor checks saved credentials and local video prerequisites. A successful account_whoami call through your AI app is the connection check for this walkthrough.

Next

All the tools

Every tool the connector exposes, generated from the server itself.

Other AI apps

Cursor, Codex, ChatGPT — same account, same tools.