Create AI marketing videos and images from inside Cursor. Supports a full creative stack — Seedance 2.0 (flagship video), Sora 2, Veo 3.1, Kling 3.0, Grok Video, Nano Banana 2 / Pro / Edit, ChatGPT Image 2, OmniHuman, and Audio-driven — plus a 37-template static Meta image-ad library and a pipeline for Pixar-style and claymation animated ads.
Generation runs on the Arcads API — you bring your own account and key.
📘 Prefer a guided tour? The operator walkthrough PDF covers the full lifecycle in 26 designed pages — setup and credentials, the 10 skills, competitor research, Arcads creative generation, validated Meta copy, PAUSED deploys, and performance measurement.
This repository works independently. If you want hands-on setup help, workflow discussion, or media-buying strategy beyond the documentation, the repository author also runs The Ai Ads Alchemists, a private community. The linked page is the source for its current offering, schedule, and pricing; participation is not required to use this project.
The supported baseline is Python 3.9+. The setup checker enforces that
minimum. Python 3.12+ is recommended for a single environment that can run
every documented workflow; the shared image-ad-clone workflow currently
declares Python 3.12+.
Basic image generation, video generation, and polling need only Python and the credentials configured during setup. Some multi-step pipelines need additional tools:
| Tool | Required for | Install (macOS) |
|---|---|---|
| Python 3.9+ (3.12+ recommended) | Core scripts and readiness checks; 3.12+ for image-ad-clone |
brew install python |
Bash, curl, and Git |
Setup, skill sync, API requests, and cloning | Included with macOS Command Line Tools |
ffmpeg |
Pixar-style ad, claymation ad, caption-video (stitching + chroma-key overlay) | brew install ffmpeg |
jq and bc |
Several multi-step media shell scripts | brew install jq bc |
Node.js + npx hyperframes |
Caption burn-in and local Whisper transcription | brew install node (HyperFrames manages whisper.cpp/model downloads) |
openai-whisper Python package |
Optional fallback for direct Python transcription | pip install openai-whisper (not needed when npx hyperframes transcribe works) |
| Pillow | YouTube thumbnail reference preparation | python3 -m pip install pillow |
| Research/performance deps | Competitor research and Meta Insights polling | python3 -m pip install -r skills/competitor-ad-research/requirements.txt |
meta-ad-builder deps |
Publishing to Meta Marketing API | python3 -m pip install -r shared/skills/meta-ad-builder/scripts/requirements.txt |
The chatgpt-image-ad and nano-banana-image-ad generator scripts are
intentionally stdlib-only. image-ad-clone orchestrates those generators and
has the Python 3.12+ requirement noted above. Other dependencies are needed
only for their matching multi-step workflows.
Linux users: install bash, curl, Git, Python 3, ffmpeg, jq, bc, and
Node.js with the distribution package manager. Windows users: WSL2 is
recommended; the shell scripts assume Bash.
git clone https://github.com/krusemediallc/cursor-ad-agent.git
cd cursor-ad-agentThe recommended path is the setup script:
./scripts/setup.shThis will:
- Point you to sign up if you need a generation account: arcads.ai/?via=Cursor
- Ask for your API key (find it at app.arcads.ai/settings/api)
- Save it securely in
.env(never committed to git) - Verify the credential with a read-only API request; it does not generate an asset
- Create your personal
MASTER_CONTEXT.mdworkspace file - Sync the REST/local skills into
.cursor/skills/and prune stale skill entries - Run a no-generation Cursor readiness check
For manual setup, copy the public templates and edit .env locally:
test -e .env || cp .env.example .env
chmod 600 .env
test -e MASTER_CONTEXT.md || cp MASTER_CONTEXT.template.md MASTER_CONTEXT.md
./scripts/sync-skill.sh
./scripts/check-cursor-setup.shUse either ARCADS_BASIC_AUTH or ARCADS_API_KEY from
.env.example. Keep placeholder names in .env.example; put
real values only in the ignored .env. Single-quote credential values that
contain special characters. Never paste credentials into chat, command-line
arguments, issues, screenshots, or committed files. Add optional META_*
values only if you intend to use Meta workflows.
Open the folder. The skills are exposed at .cursor/skills/, and AGENTS.md tells the agent how to work in this repo.
The default Cursor setup uses the REST/local workflows backed by .env. Arcads MCP
skills are optional because they require a separately connected MCP server. After
configuring Arcads in Cursor Settings > MCP, expose those variants with:
./scripts/sync-skill.sh --include-mcp
./scripts/check-cursor-setup.sh --include-mcpTo verify the default installation and read-only API connection at any time:
./scripts/check-cursor-setup.sh --check-apiWant the orientation banner (installed skills, .env / MASTER_CONTEXT.md status, where the docs live)? Run it any time:
./shared/scripts/check-context.shOptional paths are deliberately excluded from the default setup:
- Arcads MCP: connect the Arcads server in Cursor first, then run
./scripts/sync-skill.sh --include-mcp. If the MCP tools are unavailable, use the equivalent default REST/local skill. - Selenium creative extraction: install
skills/competitor-ad-research/requirements-creatives.txtand Chrome/Chromium only when you need automated Ad Library creative downloads. Base competitor pulling and ranking do not require Selenium.
The normal sync exposes exactly these 10 REST/local skills:
| Skill | Purpose |
|---|---|
ad-agent-orchestrator |
Human-approved research → creative → deploy → measure lifecycle |
arcads-external-api |
Arcads endpoints, auth, generation, polling, and asset routing |
competitor-ad-research |
Meta Ad Library evidence, ranking, and BRIEF.md handoff |
generate-youtube-thumbnail |
Nano Banana thumbnail batches |
human-ad-copy |
Copy frameworks, claim receipts, and copy.json validation |
meta-performance-loop |
Read-only Insights polling and threshold classification |
chatgpt-image-ad |
Typography and UI-mimicry image ads |
nano-banana-image-ad |
Photoreal and multi-reference image ads |
image-ad-clone |
Reusable prompt templates from an existing image ad |
meta-ad-builder |
Destination discovery, PAUSED deployment, and separate activation |
Arcads MCP variants are additional optional skills and are not included in that count.
Campaigns, ad sets, and ads created by this repository are created PAUSED. Preview is the default for status changes. A real activation is a separate, operator-approved mutation and requires the exact confirmation string:
python3 shared/skills/meta-ad-builder/scripts/set-entity-status.py \
--entity-type ad --entity-id <AD_ID> --status ACTIVE \
--execute --confirm ACTIVATEFor an orchestrated run, the same command also requires the run ID and approved
G9 receipt ID; the tool verifies that receipt and its current scope before the
Meta request. See the
meta-ad-builder activation flow.
An ACTIVE ad still cannot deliver while its ad set or campaign is PAUSED. Confirm the entire hierarchy, destination, account, and budget in Meta before activating anything.
This repository cannot query a billing endpoint. Every Arcads credit total must
be treated as an estimate, even when historical creditsCharged values are
available. Duration, resolution, references, model, and plan can change the
actual charge. Confirm current pricing and final usage in your Arcads dashboard
before a paid generation when precision matters.
The end-to-end integration is verified with unit tests, mocks, fixtures, temporary files, compile checks, and CLI contract checks. Those checks do not generate Arcads assets, scrape the Ad Library, create or activate Meta entities, or query live Meta Insights.
The following integration surfaces are currently documented as offline/mock-covered, not operator-approved live-validated: Meta campaign and ad-set creation, multi-account destination listing, chunked video uploads, status changes, Insights polling, and competitor creative extraction. Any live validation requires an operator's credentials and explicit approval; it is not part of a normal test run. See INTEGRATION_HANDOFF.md and CONTRIBUTING.md for the exact boundary.
The agent handles API calls, polling, prompt engineering, file organization, and cost confirmation. Workflows are grouped by what you want to make.
"Run the full ad agent — research competitors, rank opportunities, generate creatives, write Meta copy, deploy PAUSED, measure performance, and recommend the next test"
The ad-agent-orchestrator skill is the top-level workflow for human-approved, end-to-end Meta campaigns. It is not an unattended spend bot — generation, paid API usage, Meta mutations, activation, and performance thresholds each require separate human approval gates.
Lifecycle:
competitor + first-party research
→ ranked opportunities and one-variable test plan
→ Arcads creative generation (or clone)
→ human-quality Meta copy
→ target account / campaign / ad-set selection
→ PAUSED deployment
→ separately confirmed activation
→ read-only performance polling
→ measured next-test recommendation
Component skills (routed by the orchestrator at each phase):
| Phase | Skill |
|---|---|
Competitor evidence, BRIEF.md, clone inputs |
competitor-ad-research |
| Typography / UI-mimicry stills | chatgpt-image-ad |
| Photoreal / lifestyle stills | nano-banana-image-ad |
| Reverse-engineer a selected image ad | image-ad-clone |
| Video and other Arcads assets | arcads-external-api |
| Primary text, headlines, claim ledger | human-ad-copy |
| Destination discovery, dry-run, PAUSED deploy, activation | meta-ad-builder |
| Read-only Insights polling and winner/loser thresholds | meta-performance-loop |
Runs are tracked in an append-only lineage ledger (outputs/ad-agent/lineage.jsonl). Real deploys must include --run-id so the performance loop can join automatically. Read skills/ad-agent-orchestrator/SKILL.md and run-contract.md before opening a run.
Optional: competitor creative extraction (extract_creatives.py) needs Selenium + Chrome — base Ad Library pulling works with requests only.
Seedance 2.0 is the most flexible model in the stack — 4–15s clips, native audio, image-to-video or video-to-video, reference images, multiple shot styles. Five prompt formulas ship with the skill:
"Make a 12-second Seedance UGC video — woman in a kitchen, holding the product, says she stopped buying [competitor]"
Uses the 9-layer UGC formula tuned for Seedance 2.0 (iPhone-shot aesthetic, natural eye-contact breaks, casual delivery). See skills/arcads-external-api/prompting/prompt-library/seedance-2-ugc.md.
"Premium reveal of [product] — dark void, text narrative, hero rotation"
Dark-void aesthetic, text overlays narrating the product's positioning, no person on screen. See skills/arcads-external-api/prompting/prompt-library/seedance-2-premium-reveal.md.
"Seedance product hero — water splash, mist, slow rotation"
Splash, mist, light rays, slow rotation. See skills/arcads-external-api/prompting/prompt-library/seedance-2-product-hero.md.
"Studio lookbook of [product] — multi-look, polished, with voiceover script"
Polished editorial / lookbook style, multi-shot, with embedded dialogue. See skills/arcads-external-api/prompting/prompt-library/seedance-2-studio-lookbook.md.
"Seedance feature walkthrough — fast-paced, show off [features]"
Fast-paced product-demo cuts. See skills/arcads-external-api/prompting/prompt-library/seedance-2-feature-walkthrough.md.
"Generate a 16-second Sora video of [scene]" — optionally drop a product photo as a style reference.
Sora 2 handles longer durations than Veo. The agent auto-selects duration from your script's word count (~2.5 words/sec). Sora 2 remix is also supported via POST /v1/sora2/remix/video for remixing an existing asset.
"Animate this Nano Banana still into an 8-second Veo with dialogue"
Veo 3.1 with startFrame is the standard path for UGC stills → video. The video starts from your exact image with natural human motion and embedded dialogue. The agent confirms the dialogue separately before generating (the MANDATORY dialogue gate).
"Make a 5-second b-roll clip of [scene]" or "Generate a scene of [environment]"
Kling 3.0 is the b-roll / scene workhorse: model: "kling-3.0" on POST /v2/videos/generate (3–15s). The separate POST /v1/b-roll and POST /v1/scene endpoints may also route to Kling depending on workspace configuration — confirm with Arcads.
"Generate a Grok video of [scene]"
Hits POST /v2/videos/generate with model: "grok-video".
"OmniHuman avatar of [person] delivering [script]" or "Audio-driven video lip-synced to [audio file]"
POST /v1/omnihuman for talking-avatar workflows; POST /v1/audio-driven for lip-sync against an audio file.
"Create a new AI influencer — 22-year-old college student with freckles, golden-hour kitchen lighting"
Two-pass workflow: (1) generate a hero front portrait via Nano Banana, get your approval, (2) generate 9 additional angles (3/4 views, profile, close-up, expressions) with the hero as the reference. All 10 saved to references/influencers/ for future reuse.
"Generate a UGC selfie of Sofia holding [product] in her bedroom"
Combines your character hero + product photo + style references from references/aesthetics/ugc-selfie/ into an authentic-looking iPhone selfie frame grab. Includes skin realism and camera imperfections to fight AI's polished default.
"AI person holding [product] talking about [feature]"
Two-step: Nano Banana still of person + product → user approves → start-frame → video via Veo 3.1 or Seedance 2.0.
"Recreate this influencer's look from this reference photo"
Two-step: Nano Banana still from refImageAsBase64 → user approves → Veo 3.1 with startFrame.
Default is nano-banana-2. Use model: "nano-banana" for Nano Banana Pro (Gemini 3 Pro Image — higher fidelity, locks character identity tighter across reference batches). nano-banana-edit for inpainting.
"Make me an Apple Notes-style ad for my product" / "Generate a Forbes editorial ad" / "Clone this comparison-table ad as a template"
A three-skill family for static Meta image ads with a shared library of 37 prompt templates (Apple Notes lists, editorial hero, fake Google search, comparison tables, sticky-note flatlays, fake Slack threads, ChatGPT-conversation ads, iMessage screenshots, magazine cover, billboard, museum exhibit, weather forecast UI, scratch-off ticket, founder letter, dating-app card, and more).
chatgpt-image-ad— typography-heavy / UI-mimicry creatives (gpt-image-2)nano-banana-image-ad— photoreal / lifestyle / multi-reference creatives (Nano Banana 2 / Pro / Edit)image-ad-clone— single backend-agnostic skill that reverse-engineers any existing ad image into a new library entry (asks which generator to validate against at Phase 1; optionally cross-validates against the other at Phase 8)
Output is image files. Pair with the meta-ad-builder skill to publish as
paused Meta ads. Read shared/skills/image-ad-prompting/OVERVIEW.md first —
it has the decision tree (which backend for which template), the aspect-ratio
compatibility matrix per backend, and the standard generate / clone workflows.
Generation uses live Arcads calls and is not part of offline verification.
"Make a Pixar-style ad for [product] — anthropomorphized mascot, 8-beat story arc"
Lock cast sheet → ChatGPT Image 2 storyboard stills (sequential, prior frame as ref for identity lock, max 5 referenceImages) → Seedance 2.0 image-to-video per beat → ffmpeg stitch + burn captions. See shared/skills/pixar-style-ad/prompting/guide.md.
"Make a claymation ad — sculpted plasticine characters, narrator-driven, 60–115s"
Same backbone as Pixar with an 8-beat narrator-driven story arc and clay textures. ChatGPT Image 2 storyboard → Seedance 2.0 i2v → ffmpeg stitch with optional fps=12,fps=24 stop-motion judder. VO generated externally (ElevenLabs) and mixed in post. See shared/skills/claymation-ad/prompting/guide.md.
"Make 6 YouTube thumbnail variations with my face and product"
Specialized generate-youtube-thumbnail skill: peace-sign/branding, real-vs-AI
comparison, terminal flow, reaction shock, and before/after split. Likeness
guidance can use multiple face references. Parallel batch generation uses Nano
Banana 2. See skills/generate-youtube-thumbnail/.
"Add captions to this MP4"
Out-of-band post-step (no generation call) that works on any source — Pixar, claymation, UGC, B-roll. HyperFrames + Whisper medium.en for transcription → group word-level transcript into reading phrases → render captions-only HTML over #ff00ff magenta → ffmpeg chroma-key overlay. See shared/skills/caption-video/prompting/guide.md.
"Reverse-engineer this video into a reusable Seedance template"
The analyze-video workflow under skills/arcads-external-api/prompting/analyze-video/ extracts the structure of a reference video into a parameterizable Seedance 2.0 prompt template.
"Clone this video ad for our new product"
skills/arcads-external-api/prompting/clone-ad/ — end-to-end: analyze the reference → adapt to the new product → generate. The companion to analyze-video when you want to ship the cloned version directly.
"Reverse-engineer this image ad as a reusable template"
The image-ad-clone skill produces parameterizable entries for the 37-template library (see above).
"Publish this approved creative as a paused Meta ad in my account"
The meta-ad-builder skill (in shared/skills/) takes a finished creative path and uploads it via the Meta Marketing API. Every campaign, ad set, and ad is created PAUSED. Activation is a separate manual Ads Manager action or the separately confirmed status command shown above. The skill also has a research path to pull top-spending ads and competitor ads. Auth uses META_* values in .env.
| Path | What it does |
|---|---|
skills/arcads-external-api/ |
The core skill. API reference, prompting guide, per-model prompt libraries (Seedance / Sora / Veo / Kling / Nano Banana), analyze-video + clone-ad sub-workflows. |
skills/generate-youtube-thumbnail/ |
5 YouTube thumbnail formulas with parallel batch generation against Nano Banana 2. |
skills/chatgpt-image-ad/ |
Static Meta image-ad creatives via gpt-image-2 (typography / UI mimicry). |
skills/nano-banana-image-ad/ |
Static Meta image-ad creatives via Nano Banana 2 / Pro / Edit (photoreal / lifestyle). |
skills/image-ad-clone/ |
Reverse-engineer an existing ad image into a reusable library entry. Backend-agnostic — asks at Phase 1 whether to validate via gpt-image-2 or Nano Banana, optionally cross-validates against the other at Phase 8. |
shared/skills/image-ad-prompting/ |
Shared brain for the image-ad ecosystem: 37 prompt templates, safety suffixes, entry format, and OVERVIEW.md. |
shared/skills/pixar-style-ad/ |
8-beat anthropomorphized mascot ad via GPT Image 2 storyboard + Seedance 2.0 i2v. |
shared/skills/claymation-ad/ |
Aardman-style 8-beat clay narrative ad; same backbone as Pixar with stop-motion judder option. |
shared/skills/caption-video/ |
Out-of-band post step: HyperFrames + Whisper + ffmpeg chroma-key to burn captions onto any finished MP4. |
skills/ad-agent-orchestrator/ |
Top-level end-to-end workflow: research → test plan → Arcads → copy → Meta → performance → next test. Human approval gates at every phase. |
skills/competitor-ad-research/ |
Meta Ad Library competitor pull, ranking, optional creative extraction, and BRIEF.md handoffs. |
skills/human-ad-copy/ |
Direct-response copy frameworks, claim/receipt workflow, and Meta copy.json validation. |
skills/meta-performance-loop/ |
Read-only Meta Insights polling, threshold-based winner/loser status, and next-test recommendations. |
scripts/lib/ad_agent_lineage.py |
Append-only run ledger (init, event, show, manifest) for orchestrator lifecycle tracking. |
shared/skills/meta-ad-builder/ |
Publish finished creatives as paused Meta ads via the Meta Marketing API. |
shared/scripts/check-context.sh |
Orientation banner — lists installed skills, checks .env / MASTER_CONTEXT.md status, surfaces ecosystem pointers. Run it manually. |
MASTER_CONTEXT.template.md |
Template for your workspace context (credit costs, brand voice, learnings). |
MASTER_CONTEXT.md |
Your personalized copy (created by setup, not committed to git). |
.env |
Your API key (created by setup, never committed). |
scripts/setup.sh |
One-time setup. |
scripts/sync-skill.sh |
Rebuilds .cursor/skills/ from canonical sources and prunes stale entries. Add --include-mcp only when Arcads MCP is connected in Cursor. |
scripts/check-cursor-setup.sh |
No-generation Cursor readiness check. Add --check-api for read-only Arcads auth verification. |
scripts/check-arcads-env.sh |
Tests API connectivity. |
scripts/release-check.sh |
Credential-free public release gate: skill sync, readiness, source/link/secret checks, and six offline test suites. |
CONTRIBUTING.md |
Canonical source rules, offline commands, and live-validation boundary. |
SECURITY.md |
Responsible disclosure and credential-handling policy. |
references/ |
Drop reference images here (influencers, products, aesthetics) — gitignored. |
logs/arcads-api.jsonl |
Local, gitignored operational log: model, duration, resolution, reference counts, and creditsCharged. It is not part of the public snapshot. |
Your key authenticates with the generation API. During setup you paste it once and the agent uses it from .env automatically. You never need to paste it into chat.
Need an account first? Create one here: https://arcads.ai/?via=Cursor
Find your key: Dashboard > Settings > API
For Meta-ad publishing (the meta-ad-builder skill), you'll also need META_ACCESS_TOKEN and META_AD_ACCOUNT_ID in .env — the .env.example has placeholder rows.
MASTER_CONTEXT.md is your workspace's living memory. The agent reads it at the start of every session and writes learnings back. It stores:
- Default product — auto-populated on first use so you're never asked "which product?" again
- Default project / folder — session output organized in the dashboard automatically
- Credit costs — you fill in once (or the agent asks), then every session has them
- Image hosting — where you stage reference images if a workflow needs hosted URLs
- Brand voice — optional tone, audience, and word preferences
- API learnings — universal quirks that help the agent work better
- Changelog — dated notes from each session
| Model | Type | Best for | Notes |
|---|---|---|---|
| Seedance 2.0 | Video (4–15s) | Flagship video model. UGC, premium reveal, product hero, lookbook, feature walkthrough. Native audio. | model: "seedance-2.0". 5 prompt formulas ship. Mutually exclusive: referenceVideos vs referenceImages. |
| Sora 2 | Video (up to 20s) | Long-duration text-to-video, image-to-video with product photo as style ref. | model: "sora2". Duration enum: [4, 8, 12, 16, 20]. Remix: POST /v1/sora2/remix/video. |
| Veo 3.1 | Video (~8s) | Animating a starting frame (UGC stills → video). Best for character / influencer flows. | model: "veo31". startFrame and referenceImages are mutually exclusive — default startFrame for single person photos. |
| Kling 3.0 | Video (3–15s) | B-roll and scene generation. | model: "kling-3.0" on POST /v2/videos/generate. The separate /v1/b-roll and /v1/scene endpoints may route to Kling depending on workspace configuration. |
| Grok Video | Video | Text-to-video via xAI's video model. | model: "grok-video". |
| Nano Banana 2 | Image | Default still-image model. UGC stills, character sheets, product shots, influencer recreation, image-ad creatives. | model: "nano-banana-2". |
| Nano Banana Pro | Image | Premium image quality (Gemini 3 Pro Image). Locks character identity tighter across batches. | model: "nano-banana" (the bare string maps to Pro). |
| Nano Banana Edit | Image | Inpaint / edit an existing image. | model: "nano-banana-edit". |
| ChatGPT Image 2 | Image | Typography-heavy / UI-mimicry static ad creatives. Used by chatgpt-image-ad skill + the Pixar / Claymation storyboard pipelines. |
model: "gpt-image-2". Max 5 referenceImages. Aspect ratios: 1:1, 16:9, 9:16. |
| OmniHuman | Video | Talking-avatar / lip-sync workflows. | POST /v1/omnihuman. |
| Audio-driven | Video | Lip-sync a video to a supplied audio file. | POST /v1/audio-driven. |
Cost is presented as an estimate before every generation; the agent reads logs/arcads-api.jsonl for historical creditsCharged values matching your config. Always confirm exact pricing in your dashboard if it matters for budgeting.
Drop images into the references/ folder and the agent will use them automatically:
references/influencers/— Photos of people to recreate as AI-generated content (and saved character sheets)references/products/— Product photos for showcase videos and hero imagesreferences/aesthetics/— Style references organized by vibe (ugc-selfie/,cinematic/, etc.)
Images stay local — the folder contents are gitignored. The agent auto-upscales any reference below 1024px (the API's min-size floor) using Lanczos before submitting.
Repository-specific skills have canonical source under skills/<name>/.
Content under shared/ is synchronized from an upstream source and carries its
own generated-content warning; coordinate shared changes with the maintainers
instead of editing the generated copy here. After changing a canonical skill,
run:
./scripts/sync-skill.shThis rebuilds .cursor/skills/ (which is gitignored and generated) from
skills/ plus the available upstream-managed shared/skills/ content. Removed
or renamed skills cannot linger, and ignored machine-specific files are not
copied into Cursor discovery. Never edit .cursor/skills/ directly. If your
Cursor instance has Arcads MCP configured, use
./scripts/sync-skill.sh --include-mcp.
See CONTRIBUTING.md for the offline test commands and publication checks.
This repo updates regularly — new templates land in the prompt library, new workflows get added, bugs get fixed. To stay in sync with upstream:
- To pull updates:
git pull origin mainfrom the repo root. If you've made local changes to tracked files, stash them first:git stash && git pull && git stash pop. Re-run./scripts/sync-skill.shafterwards if skills changed. - If you've forked the repo on GitHub: click the "Sync fork" button on your fork's page to bring it in line with this upstream, then
git pulllocally. - Customizations: your
.env,MASTER_CONTEXT.md, reference media,outputs/, and operational logs (logs/*.jsonl) are gitignored — they survive every update. If you customize a core skill file (e.g. tune a SKILL.md for your brand), expect potential merge conflicts ongit pull— keep custom versions under a non-tracked path (e.g.local-skills/) if you don't want them affected by upstream updates.
.envis gitignored and must never be committed.MASTER_CONTEXT.mdis gitignored and can contain account and workspace data.- Never paste API keys or access tokens in GitHub issues or public chats.
- PAUSED-by-default reduces accidental spend; activation still requires an operator to review the hierarchy and take a separate action.
For responsible disclosure and credential-response guidance, read SECURITY.md.
| Model | Guide |
|---|---|
| Seedance 2.0 | Aligned to ByteDance's published Seedance prompting platform (the skill summarizes this in skills/arcads-external-api/prompting/prompt-library/seedance-2.md) |
| Sora 2 | OpenAI — Sora 2 prompting guide |
| Veo 3.1 | Google Cloud — Veo 3.1 |
| Kling 3.0 | Kling — user guide |
| Nano Banana | Google Cloud — Nano Banana |
| ChatGPT Image 2 | OpenAI image-generation guidance (summarized in skills/chatgpt-image-ad/SKILL.md with model-specific strengths and limits) |
Point your assistant at AGENTS.md and MASTER_CONTEXT.md + the skill paths in skills/ and shared/skills/. See AGENTS.md for details.
- Contribution workflow and offline checks: CONTRIBUTING.md
- Security reports and credential handling: SECURITY.md
- License: MIT
- Imported-content attribution: THIRD_PARTY_NOTICES.md
- Source classification: PROVENANCE.md