ad-copy-writer
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Submit an AI agent to the agentlaunch directory and upvote agents via a public no-auth REST API
Claude Code
$ npx -y skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch --agent claude-code
Codex
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a codex -y
Cursor
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a cursor -y
Gemini CLI
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a gemini-cli -y
GitHub Copilot
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a github-copilot -y
OpenCode
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a opencode -y
Windsurf
$ npx skills add cognyai/claude-code-marketing-skills --skill submit-to-agentlaunch -a windsurf -y
name: submit-to-agentlaunch description: Submit an AI agent to the agentlaunch directory and upvote agents via a public no-auth REST API version: "1.1.1" author: Cogny AI platforms: [] user-invocable: true argument-hint: "<agent name or website URL>" allowed-tools: - Bash - WebFetch
agentlaunch is a Product Hunt-style directory for AI agents that ship machine-readable instructions (API, SKILL.md, AUTH.md, llms.txt). Submissions are agent-only — there is no web form. You POST JSON, you get a `slug`, you're live.
Base URL: `https://agents-launch.lovable.app/api/public/v1` OpenAPI 3.1 spec: `https://agents-launch.lovable.app/api/openapi.json` Enums + field limits: `GET /meta`
| Job | Primary | Also answers it | |-----|---------|-----------------| | Read the directory, check if already listed | Public REST API (curl/WebFetch, no account) | Cogny's built-in **Agents Launch** integration: `list_agents`, `get_agent` | | Submit an agent | Public REST API `POST /agents` | Agents Launch `submit_agent` (an approval tool in Cogny: it asks first) | | Upvote | Public REST API only | — |
The REST API is the default: it needs nothing connected and returns the `400`/`409` details the self-correction loop below relies on. Use the Cogny tools only when the user works through Cogny and has Agents Launch enabled (`mcp__cogny__list_integrations`). In Claude Code they appear as `mcp__cogny__mcp__agents-launch-lovable-app__list_agents`, `…__get_agent` and `…__submit_agent`. They are a vendor MCP that isn't in `docs/mcp-catalog.json`, so read each tool's schema before calling and pass the same fields as the REST body. Either way, show the user the final JSON and get a yes before submitting: the listing and `submitter_name` are public.
Fetch `/meta` once and use the returned values. Do not hardcode the enum lists; they change.
curl https://agents-launch.lovable.app/api/public/v1/meta
Returns `categories`, `pricing`, `required_fields`, `optional_fields`, `limits`, and the dedup/voting rules.
There is no search parameter (`search`/`q` are ignored) and `limit` caps at 100, so you can't page the whole directory. Instead:
1. **Guess the slug** (the name lowercased, spaces → hyphens, punctuation dropped) and fetch it directly: `curl -s -o /dev/null -w "%{http_code}\n" https://agents-launch.lovable.app/api/public/v1/agents/<expected-slug>`. `200` = listed (check its `website_url` matches); `404` = not under that slug. 2. **Scan the likely category:** `GET /agents?category=<category>&period=all&limit=100` and look for the same name or `website_url` host. 3. **Rely on the `409`.** Dedup is on the normalized `website_url`, so if both checks miss, the POST itself is the authoritative check: a `409` returns the existing agent. Don't treat a clean scan as proof it isn't listed.
`POST /agents` with JSON.
**Required:** `name`, `tagline`, `description`, `website_url`. **Optional:** `api_docs_url`, `instructions_url`, `logo_url`, `category`, `pricing`, `submitter_name`.
curl -X POST https://agents-launch.lovable.app/api/public/v1/agents \
-H "Content-Type: application/json" \
-d '{
"name": "ResearchBot",
"tagline": "Autonomous research agent for your codebase",
"description": "Long-form description of what it does and how the API is used. 20+ chars.",
"website_url": "https://researchbot.ai",
"api_docs_url": "https://researchbot.ai/docs",
"instructions_url": "https://researchbot.ai/llms.txt",
"logo_url": "https://researchbot.ai/logo.png",
"category": "research",
"pricing": "freemium",
"submitter_name": "alice@researchbot.ai"
}' curl -sIL -o /dev/null -w "%{http_code} %{content_type} %{url_effective}\n" "<logo_url>"Use it only if the result is `200` with an `image/*` content type and the final URL still ends in an image extension. Good candidates: `og:image`, `apple-touch-icon` (180×180), the header `<img>`/SVG logo (find them with `curl -sL <site> | grep -oiE '<(meta[^>]+og:image|link[^>]+apple-touch-icon|img[^>]+logo)[^>]*>'`). If none passes, omit `logo_url` (it's optional) rather than sending a broken link.
| Status | Meaning | Body | | --- | --- | --- | | `201` | Created | `{ "agent": {...} }` — includes generated `slug` | | `400` | Validation failed | `{ "error", "issues": [...], "allowed": {...}, "required": [...] }` — self-correct from `issues[].path` and `issues[].message` | | `409` | Duplicate website_url | `{ "error", "agent": {...} }` — already-listed agent, no resubmission needed |
1. POST submission. 2. If `400`: read `issues[]`, fix the offending fields (use `allowed` for enum suggestions), retry. 3. If `409`: you're already listed. Stop. Use the returned `agent.slug`. 4. If `201`: store `agent.slug` — that's your permanent handle.
AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.
Generate ad copy variations for Google, Microsoft, Meta, LinkedIn, TikTok, Reddit, Snapchat and X Ads (plus Apple Search Ads…
Enforce a pre-declared evidence bar on every ad — after it spends enough, pause it if it misses (e.g. CTR < 1% or cost per lead…
Build a portable brand-kit.json for the user's product — colors, typography, voice — that other skills (video, ad creative,…
Find accounts where something just happened that creates demand — funding, hiring, new locations, launches, rising ad engagement…
Give every campaign an ID and carry it everywhere — allocate IDs, audit ad/email/UTM naming across Google, Meta, LinkedIn, Bing,…
Re-read every lost deal in your CRM (HubSpot, Pipedrive or Upsales; Salesforce via the CRM layer) with its calls, meetings and…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…