The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Adclip listing page.
An open, standalone, model-routed marketing creative and learning engine.
adclip turns campaign intent into policy-checked copy, static creative, short-form video, and responsive email; preserves exact creative lineage; reads performance back from deployed creative; and structures that evidence into explicit experiments and next-test recommendations.
MCP is one interface into adclip, not the architecture. The same application services are available to the standalone CLI and are intended to back a future local browser workbench.
Most AI marketing stacks split the workflow across a copy tool, image/video generators, an email platform, ad-platform dashboards, and creative analytics. adclip's goal is to keep the campaign model, creative lineage, and learning loop portable, while letting model providers and delivery platforms remain replaceable adapters.
Core principles:
Install from PyPI:
The PyPI release can lag the current repository. For the exact main feature
set documented here, install from source:
Python 3.11+ is required.
Generate a fictional DTC skincare launch across Meta, Reels/TikTok, and Google using only fake creative providers:
Render the matching checked-in launch email without a model call:
Build a complete synthetic creative-test bundle:
Then inspect the evidence:
The builder prints an experiment ID that can be passed to
experiment-evaluate and next-test. None of the commands above need a paid
model API or live ad account.
The repository examples are organized around marketing problems rather than internal subsystems:
| Example | Marketing workload | Main surfaces |
|---|---|---|
01-dtc-skincare | Product launch / first purchase | Meta, Reels, TikTok, Google, email |
02-b2b-saas-lead-gen | Qualified demo generation | LinkedIn, Google Search |
03-local-service-lead-gen | Local direct-response leads | Meta, Google Search |
04-subscription-winback | Lifecycle retention | |
05-mobile-app-acquisition | Free-trial acquisition | TikTok, Reels, Shorts, Meta |
06-creative-experiment | Controlled hook learning | Synthetic Meta observations |
See examples/README.md for the business goal, audience, hypothesis, and commands behind each case.
| Area | Current capability |
|---|---|
| Campaign briefs | Structured AdBrief, formats, policy constraints, cost estimation |
| Copy | Provider-neutral generation, filtering, scoring, healing/judge compatibility |
| Images | Task routes over fal/direct OpenAI/fake adapters with model-family schemas |
| Video | Routed fal/fake generation for short-form formats |
| Model selection | Explicit route/provider/model/options separation and bake-offs |
| Sequence generation, structured blocks, responsive HTML/text, headers, lint, patching | |
| Lineage | Stable campaign IDs and artifact-bound creative IDs |
| Performance | Explicit deployment mappings and read-only Meta Insights sync |
| Reporting | Attribution-safe exact windows and descriptive creative comparison |
| Experiments | Control/treatment artifacts, changed factor, thresholds, rate confidence intervals |
| Learning | Supported/contradicted/inconclusive evidence and deterministic next-test actions |
| Interfaces | CLI + MCP over shared application services |
| Safety | Runtime network modes, paid-generation gate, read-only Meta connector |
Useful discovery commands:
Compatibility aliases remain:
| Modality | Route | Primary | Purpose |
|---|---|---|---|
| Image | general | fal / gpt-image-2 medium | General marketing creative |
| Image | text-heavy | fal / gpt-image-2 high | Readable text/layout work |
| Image | bulk | fal / flux-2-pro | Cost-controlled batches |
| Image | draft | fal / nano-banana-2-lite | Fast exploration |
| Image | brand-control | fal / flux-2-flex | Palette/layout control |
| Image | premium | direct OpenAI / gpt-image-2 high | Premium general render |
| Video | general | fal / kling-o3-standard | General social/performance video |
| Video | premium | fal / veo-3.1 | Cinematic/native-audio work |
| Video | multi-shot | fal / seedance-2-fast | Directed multi-shot storytelling |
| Video | budget | fal / wan-2.7 | Lower-cost exploration |
Reference-image, vector, multi-reference, image-animation, and footage-edit routes are cataloged but remain non-executable until their required input contracts/adapters exist. See Model routing.
Email is native campaign state rather than a wrapper around one ESP.
Generated campaigns contain portable message JSON, responsive HTML, plain text,
headers, lint reports, and a manifest. Sequence generation uses a configured
text provider; the generic fake text provider is a copy-generation fixture,
not an email-sequence generator. Sending, consent, suppression, and ESP account
state remain connector responsibilities.
See Email campaigns.
adclip can map an exact local creative to an existing Meta ad and read Insights back without adding Meta mutation methods.
Measurement windows are keyed by (since, until, action_report_time), so
conversion- and impression-attributed rows for the same dates are not silently
combined.
Descriptive comparison:
See Performance learning.
The checked-in demo uses a familiar paid-social question: does vivid problem framing beat a plain product-benefit hook?
Or declare your own experiment before interpreting results:
Current inferential verdicts are deliberately limited to rate metrics with
explicit aggregate numerators/denominators: CTR, outbound CTR, and action rate.
CPA and ROAS remain descriptive without variance/event-level evidence.
Observational comparisons remain inconclusive by design, and experiment outputs
currently keep causal_claim: false.
See Experiment contract.
Defaults should be promoted by evidence rather than reputation.
Live execution requires both --execute and normal paid-provider authorization.
Results record route, provider, model, options, latency, estimated cost,
artifact SHA-256, failures, evaluation dimensions, and human-review fields.
| Provider | Intended use |
|---|---|
claude-cli | Subscription-authenticated compatibility default |
openai-compatible | Local or hosted /v1/chat/completions endpoint |
command | Local executable over stdin/stdout |
sampling | Sampling-capable MCP host |
anthropic | Direct opt-in Anthropic API |
fake | Deterministic copy tests/examples |
Local HTTP inference:
See Model providers.
Example local registration:
The MCP surface exposes the same campaign, routing, email, performance, and experiment application services used by the CLI. Important newer tools include:
Supported runtime modes:
External generation providers are refused offline/air-gapped. Loopback text inference remains available. Potentially paid generation requires:
The Meta performance connector is a separate read-only network adapter and does not use the generation-spend authorization flag.
The project test suite is designed to run without paid APIs or live marketing accounts:
The current core includes generation, email authoring, exact creative lineage, read-only Meta performance ingestion, attribution-safe reporting, explicit experiments, and next-test recommendations.
The largest remaining product gaps are:
See Standalone architecture for the roadmap.