CopyHero
View on GitHub →This project is a very different beast from the others here in the LAB — no Kubernetes, no cloud, no control plane. CopyHero is a direct-response copywriting toolkit, 100% in pt-BR, that runs inside any LLM. And, to be transparent right up front: it’s also the foundation of a SaaS product we’re going to publish soon. What’s in the repository is the framework underneath — the agents, the knowledge bases, and the brand-profile structure the product will consume.
Key Highlights
The project’s premise is a bit counterintuitive for someone coming from infra: the most portable “deployment” possible is no deployment at all. Let’s get to the points.
-
Zero code, zero install, zero CLI. No server, no dependency, no command to run. You cite the agents (
.mdfiles) in your prompt, paste whatever you need into the conversation, and start. It works in Claude, GPT-4, Gemini, or any model that accepts markdown instructions. In Claude Code (or Claude Desktop in Project mode), the KBs and brand profiles load on their own — you just cite the agent’s path and describe the job. -
Three agents that form a pipeline. Each with a single role:
-
brand-builder— creates a brand’s persistent profile. It accepts three input modes with graceful degradation depending on the LLM: URL (when WebFetch is available), pasted content (universal), or screenshot (on multimodal models — it extracts colors as hex, photographic style, mood, and typography in a single step). -
copywriter-specialist— the orchestrator, which produces the job’s copy by reading the brand profile. -
image-prompter— generates the image prompt aligned with the copy and the brand’s visual identity.
The flow is
brand-builder → copywriter-specialist → image-prompter: build the brand once, reuse it across all of its jobs. -
-
Persistent brand profiles — the productivity trick. What’s stable about the brand (avatar, voice and tone, recurring objections, banned words, visual identity) is saved in a brand file; what’s specific to the job (offer, format, platform, CTA, work mode) goes in the conversation. The agent reads the stable fields and asks only for what’s missing. You don’t rewrite the brand’s entire briefing for every piece.
-
8 BR-native knowledge bases. Frameworks (AIDA, PAS, BAB, PASTOR, StoryBrand), Strategy (Schwartz’s awareness levels, market sophistication, big idea), Personas, Formats, Swipe Files, Psychology (Cialdini’s 6 + triggers calibrated for Brazil), Voice/Tone (BR archetypes), and Image-prompting. On top of that, three work modes — Quick (immediate copy), Polished (with self-critique), and Strategic (diagnosis + approval + copy) — and 7 formats: sales page, VSL, landing, Reels/TikTok/Shorts, IG post/carousel, blog/SEO, and email.
-
Swipe files that get stronger with use. The swipe files start generic (v0.1), but there’s a protocol for feeding them with your real conversions: when a piece of copy converts (lead, sale, high CTR), you record the pattern — headline, hook, CTA, or objection-handler — along with the metric and the date. The more real wins go in, the sharper the copy gets. The toolkit learns from your track record, not someone else’s.
-
Inline diagnostic citations. The agent tags each copy decision with the KB that guided it — something like
[Headline] [kb/frameworks: AIDA-attention]in the output. You can see why each piece was written the way it was (great for learning and for auditing), and the tags are stripped before publishing the final version.
Why a copy product specifically in Portuguese? 🇧🇷
This is the central question — and the answer is the reason the project exists. Copy doesn’t translate; copy is cultural. A sales page that converts in English, run through a translator, becomes text that sounds wrong to a Brazilian ear: the authority signals, the kind of social proof that builds trust, the rhythm of breaking an objection, the words that trip the “this is a scam” alarm — all of it is specific to each market. Most AI copy tools are English-first and deliver, at best, a decent translation; at worst, soulless text no Brazilian would read to the end.
And the Brazilian direct-response market — info-products, launches, evergreen funnels — is huge and poorly served on this front: a lot of talented people improvising one-off prompts or fighting with an English-native tool that doesn’t understand the context. CopyHero exists to encode what works in Portuguese: BR personas, Cialdini’s triggers calibrated for our context (local authority, regional social proof), Brazilian voice archetypes, and swipe files fed with real conversions from our market. The result is copy that’s born native, not translated.
The one deliberate exception is the image prompt, which comes out in English — and for a technical reason, not out of carelessness. The generators (Imagen, GPT Image, Midjourney, Stable Diffusion) were trained on predominantly English datasets, and a pt-BR prompt drops fidelity by some 15–30%. The agent’s interface stays entirely in Portuguese; only the final prompt is EN. When the image needs Portuguese text (a headline on a banner, say), the agent instructs the model explicitly and flags which generator handles it best.
What’s coming next
As I said up top, this repository is the framework — the agent-and-knowledge layer, portable and open. The next step is wrapping it in a SaaS with its own interface: managed brand profiles, an output history, the image side integrated, and the polished experience for people who don’t want to keep pasting files into a chat. The open toolkit stays the foundation; the product is the experience built on top of it. When it ships, I’ll write about it here with the details.
In the meantime, the portability is deliberate and you can use it today: the agent/, brands/, kb/, templates/, and examples/ folders are just markdown — copy them, paste into the conversation, and it works in any LLM. It was designed for Claude first (with filesystem access to the project, which loads everything automatically), but it doesn’t depend on it to run.
Related posts
Not referenced in any post yet.