Model or dataset
indranilbanerjee/digital-marketing-pro avatar
indranilbanerjee/digital-marketing-pro

digital-marketing-pro: a marketing operating system delivered as an agent plugin

An open-source AI based digital marketing operating system for strategy, SEO, AEO/GEO, paid media, content, CRM, and analytics - grounded in brand context, human approval, and verifiable outputs. Best for Brands, Agencies and one person campanies.

909 stars146 forksPythonMIT

At a glance

What is it?
digital-marketing-pro installs into Claude Code, Codex, Cursor and other agent hosts as a set of 164 skills and 24 specialist agents, and drives a fixed 12-part engagement flow with a client validation stop in the middle. The interesting part is its approval model, which separates the writes the plugin sends itself from the writes that go through connected MCP servers.
Who is it for?
digital-marketing-pro fits a marketing consultancy or an in-house team that runs the same process across many brands and needs the output to be comparable between them, and it fits a team already working inside Claude Code, Codex or Cursor who want a structured brief rather than a blank page.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 13 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The premise is a portfolio problem, not a campaign problem

The opening scenario in the documentation is a specific one, and it tells you who the project is for. An agency has just signed a client with 50 brands. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?

The answer the project gives is to run the engagement command against each brand, and the claim is that the same 12-part strategy flow, the same four core documents and the same 61-step structure produce auditable output across the whole portfolio in about an hour per brand on a top-tier model. The documentation is careful to qualify that figure, saying it was measured in 2026 and that your model and plan change the time.

What is being sold is consistency across brands. The framing is that inconsistent depth between brands is the problem, that the mystery of what the last agency did is the problem, and that compliance gaps in regulated jurisdictions are the problem. All three are portfolio problems, and none of them is solved by a better single campaign.

The project describes itself as an open source AI marketing plugin with 164 skills, 24 specialist agents, EU AI Act Article 50 readiness and Cowork team persistence, built for marketing agencies, in-house teams running 50 to 200 brands, and consultancies. The repository description adds strategy, SEO, AEO and GEO, paid media, content, CRM and analytics, grounded in brand context, with human approval and verifiable outputs.

So the audience is a team with volume and a compliance obligation, and the design goal is repeatability, not creativity. That is a coherent thing to build and it is not a tool for everyone.

One flow, one validation stop, in the same order every time

The method is described in a diagram and in a single sentence. Every brand runs the same 12 parts in the same order, and Part 5 is the one stop where the client validates.

The flow as the diagram caption describes it runs like this. Client inputs first, then external research, then the four core documents, then market analyses, then client validation, which is the one true stop. After that come selective re-runs of version 2, then preparation, the growth plan and yearly planner, then channel fan-out, execution, AI creative briefs, and finally the improvement loop that feeds the next cycle.

Two things in that list are worth pausing on. The selective re-runs of version 2 mean the flow is not strictly linear, because some parts get revisited when a downstream finding requires it. And the closing improvement loop is what makes this a cycle rather than a one-shot engagement, with the output of one cycle feeding the next.

The stop at Part 5 is the load-bearing element for anyone with a compliance obligation, because it is the point where a human reviews and signs off before anything is published, spent or contacted.

The documentation also shows what the interaction looks like in practice, with a table of plain-language requests and what each one reaches. Setting up a new brand produces the brand profile every skill reads, covering voice, audience and compliance. Building the Q3 campaign plan produces a multi-channel plan with objectives, channel mix, budget, timeline and KPIs. Asking why traffic dropped produces a site-wide SEO audit ranked into a PLAN.md file covering technical, content, links and local. Stacking up against a competitor produces a one-off analysis of two to five competitors across positioning, content, SEO, ads and pricing. Checking something before publishing runs a scored pre-publish gate over claims, brand voice and compliance, plus an AI-tell scan. And asking for visitors per variant returns an A/B test plan computed by script, with sample size, days to run and stopping rules.

That last example is instructive about the whole design. The A/B test numbers are computed by a script rather than guessed by the model, and the pre-publish check is scored. The pattern is consistent: the agent does the synthesis, the scripts do the arithmetic.

Two write paths, and only one of them is hash-checked

The safety section is the most technically interesting part of the documentation, and it draws a distinction most agent plugins do not make.

Writes the plugin sends itself, under the execute-action command, fire only against a single-use approval record for that exact request. The flow is described as follows: the script prepares the record with a preview of the request, the skill approves it after you type yes, and the request must match it byte for byte within 15 minutes. The approval record proves the approval step ran for this request, once.

The documentation is honest about what that does not prove. It cannot prove who typed yes, because the agent runs every command. That is a real and interesting limitation, and naming it is better than implying a guarantee the mechanism cannot deliver.

Writes through MCP server tools are a different story. The connectors for Google Ads, Meta, LinkedIn, TikTok, Amazon and other connected servers are outside that code check entirely, and they rely on the skill's typed-yes gate and on the host's own permission prompt. In other words, a request to spend money through a connected ad account is not protected by the hash check, only by the model's own behaviour and the host's approval dialog.

The advice that follows from this is concrete: keep connector_executor.py --execute and the MCP write tools out of the host's command allowlist so the host asks every time, because bypass or auto-approve modes remove the check.

Autopilot is described as propose-only by default, applying a correction on its own only under a standing approval you have given, which is scoped, capped per day, and allowed for at most 30 days. The details are in PRIVACY.md.

What the plugin will not do, and how it refuses

A list of refusals is unusual in this kind of documentation and is arguably the most useful page in the repository.

It will not install a package on its own. If one is missing, it prints the exact pinned install command for you to run. It will not send, publish or spend without your typed yes, or a standing rule you approved, and the writes it sends itself also need the single-use approval record. It will not ask for an API key in the chat, because connectors read keys from environment variables. It will not connect a service you did not set up, since no MCP server ships enabled and no hooks run. And it will not remove or hide AI watermarks, because AI involvement is disclosed, with C2PA provenance where the format supports it.

That last one has a compliance dimension worth spelling out. If your business publishes media produced with AI, the obligation to label it is not optional in some jurisdictions, and a tool that discloses AI involvement by default and attaches C2PA provenance where the format allows is doing something that a marketing tool has no business silently omitting.

The EU AI Act Article 50 claim in the badges points at a specific file, skills/context-engine/compliance-rules.md, which is a useful thing to look at directly rather than take on trust.

The repository structure backs the breadth of the claim. Alongside the skills directory and the agents directory there are per-host plugin directories for Claude, Codex, Cursor and Grok, a hooks directory, a commands directory, a workflows directory, an evals directory, a tests directory, and a skills-index.json that presumably indexes the 164 skills. There is also a .mcp.json.example and a .mcp.json.connectors-reference, a settings.json.example, and a gemini-extension.json, which is how the same payload is adapted to a host with a different plugin mechanism.

Installing it is a marketplace add, then a plugin install

The installation is two commands, and the mechanism is the host's plugin marketplace rather than a package manager:

bash
/plugin marketplace add indranilbanerjee/neels-plugins
/plugin install digital-marketing-pro@neels-plugins

That is a Claude Code style plugin marketplace flow, and it is why the repository carries a .claude-plugin directory alongside the Codex, Cursor and Grok equivalents. For a host with a different plugin format, the repository ships a gemini-extension.json, an openclaw.plugin.json, a plugin.yaml and a plugin.json, and the package manifest includes an openclaw block describing the bundle type, the extensions directory, the skills path, and the plugin API compatibility requirement.

The manifest is worth reading as a summary of the project's shape. The package is scoped as @indranilbanerjee/digital-marketing-pro, at version 3.35.8, with the description restating the key numbers: 164 skills, 24 agents, a 12-part strategy flow, EU AI Act ready. The keywords list the host names and the domain terms, including c2pa and eu-ai-act alongside the marketing ones. The openclaw block requires a plugin API of at least 2026.3.24-beta.2 and pins the build to that openclaw version.

That version floor is a practical warning. If you are on an older host build, the plugin may not load, and the manifest gives you the number to check against.

The repository also has a CHANGELOG.md, a PRIVACY.md, a SECURITY.md, a CONNECTORS.md, a CONTRIBUTING.md, a TESTING-GUIDE.md and a CODE_OF_CONDUCT.md, plus a SPONSORS.md and a SUBMISSION.md. The presence of TESTING-GUIDE.md and an evals directory is worth noting given the badge claims 700 of 700 tests passing, and the evals directory is presumably where the trigger tests live that the plain-language request table refers to.

What it costs, and where the real limit sits

The cost section is unusually transparent, and it is worth reading because the answer is not the obvious one.

The plugin itself is free and MIT licensed. The cost is model usage, and the documentation distinguishes two cases. On a subscription, such as Claude Pro, Max, Team or Enterprise in Claude Code or Cowork, a ChatGPT plan in Codex, or a Cursor or Copilot plan, the tokens count against the plan's usage limits rather than being billed per token, and you should check the plan for any optional extra-usage billing. Only pay-as-you-go API key users pay per token. Context, meaning the skill listing, a skill's instructions and the documents it reads, uses context window and usage allowance for everyone and costs money only for API users. The documentation notes that a full engagement is a heavy user and points at the usage command in Claude Code for per-model consumption.

Services you connect with your own keys, for advertising and email, are a separate line of cost, and that part of the list is truncated in the README.

The real limit, though, is the size of the thing. 164 skills and 24 agents means a large amount of instruction text that has to be in context for a given skill to run, and the documentation itself says context uses the usage allowance for everyone. On a subscription that is a limit on how many engagements you can run, not a per-token bill, but it is a limit.

The second limit is the model's competence in a domain where the cost of being wrong is a wasted budget rather than a stack trace. The pre-publish gate with its claims, brand voice and compliance checks and its AI-tell scan exists because the documentation treats unreviewed output as the main risk. If you disable the gate, or approve everything by standing rule to keep throughput up, you have the mechanics of an agent that publishes marketing copy to production on your brand's voice with no human in the loop, and the documentation gives you the means to do exactly that. The default is conservative, and the defaults are the thing to keep.

Editorial conclusion

digital-marketing-pro fits a marketing consultancy or an in-house team that runs the same process across many brands and needs the output to be comparable between them, and it fits a team already working inside Claude Code, Codex or Cursor who want a structured brief rather than a blank page. It is the wrong choice for a solo operator with one brand who needs a campaign next week, because the full engagement is described as a heavy user of a subscription plan, and it is the wrong choice for an organisation that cannot accept an agent proposing and executing channel actions. Before adopting it, read PRIVACY.md and the approval flow diagram rather than the marketing description, check that the write approval gate and the connector allowlist settings are set the way your compliance rules require, and confirm that the host you use is on the supported list with the plugin API version the manifest asks for.

Frequently asked questions

What is digital-marketing-pro and what does it install into?

It is an MIT licensed open source AI marketing plugin with 164 skills and 24 specialist agents, installing on Claude Code, Anthropic Cowork, OpenAI Codex, Cursor 2.5 and newer, GitHub Copilot CLI, Google Antigravity 2.0, Hermes Agent, OpenClaw and Grok, plus 35 or more platforms via the Agent Skills open standard.

How do I install digital-marketing-pro?

On a host with a plugin marketplace you add the marketplace and then install the plugin with /plugin marketplace add indranilbanerjee/neels-plugins followed by /plugin install digital-marketing-pro@neels-plugins. The package manifest requires a plugin API of at least 2026.3.24-beta.2 for the OpenClaw bundle.

How does digital-marketing-pro decide when to stop for approval?

Every brand runs the same 12 parts in the same order, and Part 5 is the one stop where the client validates. Writes the plugin sends itself additionally need a single-use approval record whose hash matches the request byte for byte within 15 minutes, while writes through MCP server tools rely on the typed yes gate and the host's own permission prompt.

What does digital-marketing-pro refuse to do?

It will not install a package on its own, will not send, publish or spend without your typed yes or an approved standing rule, will not ask for an API key in the chat because connectors read environment variables, will not connect a service you did not set up, and will not remove or hide AI watermarks.

Is digital-marketing-pro free to use?

The plugin is free and MIT licensed. The cost is model usage: on a subscription plan the tokens count against your plan's usage limits rather than being billed per token, only pay-as-you-go API key users pay per token, and services you connect with your own keys are billed separately.

Official sources

  1. indranilbanerjee/digital-marketing-pro on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/indranilbanerjee-digital-marketing-pro.svg)](https://hysenlabs.com/projects/indranilbanerjee-digital-marketing-pro)

Was this useful?