Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

backlink-kit

backlink-kit is a manual agent skill for web product teams that submit products to AI/tool directories and want to keep footer backlinks, badge links, and submission copy in one place.

The skill helps an agent:

  • infer product facts from the current web project;
  • merge new directory backlinks without deleting existing partner badges;
  • generate backlink submission copy as Markdown and a copy-friendly local HTML page;
  • maintain a dark-theme-friendly footer badge carousel;
  • suggest candidate listing URLs for common AI/tool directories.

The skill is manual-only. It is configured with allow_implicit_invocation: false for OpenAI/Codex-style agents, so it should only run when explicitly invoked as $backlink-kit or backlink-kit.

It is not tied to Codex. The folder uses the portable SKILL.md convention and can be installed into any agent that supports local agent skills. The backlink-kit/agents/openai.yaml file is optional metadata for OpenAI/Codex-style runtimes.

Installation

Install with the open agent skills CLI:

npx skills add https://github.com/Leonewu/backlink-kit --skill backlink-kit

Useful variants:

# Install globally instead of only in the current project.
npx skills add https://github.com/Leonewu/backlink-kit --skill backlink-kit -g

# Install to specific supported agents.
npx skills add https://github.com/Leonewu/backlink-kit --skill backlink-kit -a codex -a claude-code

# List the skills exposed by this repository without installing.
npx skills add https://github.com/Leonewu/backlink-kit --list

For manual installation, copy or symlink the backlink-kit/ folder into your agent's skills directory. For example, with Codex:

git clone https://github.com/Leonewu/backlink-kit.git
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R backlink-kit/backlink-kit "${CODEX_HOME:-$HOME/.codex}/skills/backlink-kit"

After installing, restart your agent or reload skills if your environment supports it.

Usage

Open a web product repository and invoke the skill explicitly:

Use $backlink-kit in this repo to prepare backlink submission materials and maintain the footer carousel.

The skill will first inspect the project for:

  • product name;
  • canonical URL and domain;
  • tagline, short description, and long description source copy;
  • logo, favicon, Open Graph image, or landing screenshots;
  • support email;
  • key product features;
  • existing footer backlinks and partner badges.

If product name or website URL cannot be inferred confidently, it instructs the agent to ask before generating listing URLs. If the project has no existing footer/backlink area, it also instructs the agent to ask before creating a new visible footer carousel.

Generated Materials

All generated submission materials belong in the project root under .backlink-kit/.

Default outputs:

.backlink-kit/backlink-submission-materials.md
.backlink-kit/backlink-submission-materials.html

The HTML file can be opened directly in a browser. It mirrors the Markdown content and adds copy buttons for each field. The long description defaults to Markdown copy mode and can switch to plain text mode. After generating it, the agent should explain what it is for and open it for preview when the environment supports an interactive browser; otherwise it should provide a clickable path and open command.

You can also run the bundled generator directly:

python3 /path/to/backlink-kit/scripts/generate_submission_materials.py \
  --product-name "Product Name" \
  --website-url "https://example.com" \
  --primary-category "AI Tool" \
  --secondary-categories "AI, Productivity, Web App" \
  --support-email "support@example.com" \
  --logo-url "https://example.com/icon.png" \
  --screenshot-url "https://example.com/og.png" \
  --tagline "Short benefit-oriented tagline." \
  --one-line "One sentence explaining what the product does." \
  --short-description "A concise directory description." \
  --long-description "A polished product description paragraph." \
  --problem "The problem this product solves." \
  --target-users "The users this product is for." \
  --feature "Feature one: concrete user-facing benefit." \
  --feature "Feature two: concrete user-facing benefit." \
  --pricing "Freemium, paid, or one-time pricing summary." \
  --keywords "keyword one, keyword two, keyword three" \
  --anchor-text "primary backlink anchor" \
  --alternative-anchor-text "secondary backlink anchor"

Without --output-dir, the script writes to .backlink-kit/.

Distribution And Exposure

There is no required central submission step. Public GitHub repos can be installed directly through npx skills add, so a working README, repo description, and clear topics are enough for basic distribution.

Recommended exposure checklist:

  • add GitHub topics such as agent-skills, ai-agents, codex-skill, seo, backlinks, and directory-submission;
  • make the repo description include agent skill and npx skills;
  • submit a PR to relevant skill directories or awesome lists such as awesome-agent-skills;
  • share the install command in launch posts for X, LinkedIn, Reddit, Hacker News, or Product Hunt;
  • monitor discovery surfaces such as SkillsMP and skills.sh, which track the open agent skills ecosystem.

Footer Backlink Behavior

The skill is framework-agnostic. It does not assume Next.js, React, Vite, Astro, Remix, Rails, or any specific router.

Recommended behavior for web products:

  • ask before creating a brand-new visible footer carousel if the project does not already have a footer, backlink strip, featured-on section, or partner badge area;
  • show the backlink footer on public marketing/content pages;
  • hide it from app, admin, auth, dashboard, or workbench screens unless the product already has a global footer there;
  • render a duplicated track for infinite marquee behavior;
  • make the duplicate visual track aria-hidden="true";
  • set duplicate links to tabIndex={-1};
  • open third-party directory links with target="_blank" and rel="noopener noreferrer";
  • default badges to muted or grayscale on dark themes;
  • restore real badge color on hover/focus;
  • pause animation on hover/focus;
  • support prefers-reduced-motion;
  • keep stable badge dimensions so slow remote images cannot collapse the carousel.

Existing Backlink Merge Rules

The skill is careful around projects that already have external links.

It instructs the agent to:

  • search for existing backlink and footer data first;
  • dedupe by directory identity, not exact URL;
  • preserve unrelated partner/outbound badges;
  • preserve working badge URLs and custom labels;
  • update only target URLs when a known directory listing is approved;
  • never replace an approved user-supplied listing URL with a guessed URL;
  • verify dark badge URLs return real images before using them.

Included Directory Targets

The skill can suggest candidate listing URLs for these directories. Many of these are inferred from product name and domain, so they must be verified after submission.

Directory Candidate URL rule Badge / fallback
Turbo0 https://turbo0.com/item/{productSlug} https://img.turbo0.com/badge-listed-dark.svg
Findly.tools https://findly.tools/{productSlug}?utm_source={productSlug} https://findly.tools/badges/findly-tools-badge-dark.svg
yo.directory https://yo.directory/ original yo.directory badge
ShowMeBestAI https://showmebest.ai https://showmebest.ai/badge/feature-badge-dark.webp
NewTool.site https://newtool.site/item/{productSlug} https://newtool.site/badges/newtool-dark.svg
Startup Fame https://startupfa.me/s/{domain}?utm_source={domain} https://startupfa.me/badges/featured/dark.webp
Dang.ai https://dang.ai/ https://assets.dang.ai/badges/dang-verified-dark.png
Submit AI Tools https://submitaitools.org/ original Submit AI Tools badge
ToolFame https://toolfame.com/item/{productSlug} https://toolfame.com/badge-dark.svg
AIDirs https://aidirs.org/ https://aidirs.org/badges/badge-listed-dark.svg
DirOnix https://dironix.com/ https://dironix.com/bage.png
Acid Tools https://acidtools.com/ai/{domainStem} https://acidtools.com/assets/images/badge-dark.png
Product Wing https://productwing.com/product/{domainStem} https://productwing.com/assets/images/badge-dark.png
Dofollow.Tools https://dofollow.tools/ https://dofollow.tools/badge/badge_dark.svg
DeepLaunch.io https://deeplaunch.io/ https://deeplaunch.io/badge/badge_dark.svg
Fazier https://fazier.com/launches/{domain} Fazier launch badge with theme=dark
OpenHunts Club https://openhunts.com https://cdn.openhunts.com/badges/club.webp
Days Launch https://dayslaunch.com/ https://dayslaunch.com/badages-awards.svg
Unite List https://unitelist.com/product/{domainStem} https://unitelist.com/assets/images/badge-dark.png
IndieAI Directory https://indieai.directory/ text fallback
Product Hunt https://www.producthunt.com/products/{productSlug} official embed badge; requires post ID
Uneed https://www.uneed.best/tool/{productSlug} https://www.uneed.best/EMBED1B.png
Peerlist https://peerlist.io/{peerlistHandle}/project/{productSlug} official embed badge; requires project ID
PeerPush https://peerpush.net/p/{productSlug} https://peerpush.net/p/{productSlug}/badge.png
LaunchIgniter https://www.launchigniter.com/product/{productSlug}?ref=badge-{productSlug} winner badge; requires rank
Twelve Tools https://twelve.tools https://twelve.tools/badge0-dark.svg
Wired Business https://www.wired.business https://wired.business/badge0-dark.svg

Definitions:

  • productSlug: kebab-case product name, for example Better Dating Photos -> better-dating-photos.
  • domain: canonical host without protocol or www, for example betterdatingphotos.com.
  • domainStem: domain without TLD and dots, for example betterdatingphotos.com -> betterdatingphotos.

Product Hunt post IDs, Peerlist handles/project IDs, and LaunchIgniter ranks are platform-assigned. The skill only reuses them when they appear in an approved link or official embed snippet.

Some directories create opaque IDs or suffixes that cannot be inferred. For example, a Startup Fame approved URL may include a suffix like -546. Always verify final listing URLs before using them in production.

Repository Layout

.
├── README.md
├── LICENSE
├── backlink-kit/
│   ├── SKILL.md
│   ├── agents/
│   │   └── openai.yaml
│   └── scripts/
│       └── generate_submission_materials.py
└── .gitignore

Validation

From this repository:

python3 ~/.codex/skills/.system/skill-creator/scripts/quick_validate.py backlink-kit
PYTHONDONTWRITEBYTECODE=1 python3 -m py_compile backlink-kit/scripts/generate_submission_materials.py

You can also smoke-test the generator in any project:

python3 backlink-kit/scripts/generate_submission_materials.py \
  --product-name "Example Product" \
  --website-url "https://example.com" \
  --tagline "A concise product promise." \
  --one-line "Example Product helps users do useful work." \
  --short-description "A short directory description." \
  --long-description "A longer product description for directory submissions." \
  --problem "The problem it solves." \
  --target-users "The users it helps." \
  --feature "Feature one: useful benefit." \
  --feature "Feature two: useful benefit." \
  --keywords "example, product, tool"

License

MIT

About

Backlink footer and directory submission agent skill installable with npx skills.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages