How to Make Skills Compatible Across Multiple AI Assistants Using Antigravity Awesome Skills
Antigravity Awesome Skills enables cross-compatibility by using a single SKILL.md file with standardized YAML front-matter that every supported assistant reads identically, eliminating the need for assistant-specific code paths.
The sickn33/antigravity-awesome-skills repository defines a portable skill format that works across Claude Code, Gemini CLI, Codex CLI, Kiro IDE, Cursor, OpenCode, and AdaL CLI without modification. By adhering to a strict schema and using a universal installer, you can write a skill once and deploy it everywhere.
The SKILL.md Standard: A Universal Format
Cross-compatibility starts with the standardized skill schema. Every skill resides in skills/<skill-name>/SKILL.md and must contain required front-matter keys: name, description, risk, source, and date_added.
The parser in tools/lib/skill-utils.js extracts these values through the parseFrontmatter → readSkill function chain (lines 11-18). Because the parser normalizes tags and validates the YAML mapping once, the resulting skill object behaves identically regardless of which assistant consumes it.
Three-Layer Architecture for Cross-Assistant Compatibility
The repository enforces compatibility through three distinct layers:
Standardized Skill Schema
The file tools/lib/skill-utils.js validates that each SKILL.md contains the required front-matter keys and rejects malformed YAML. This ensures that skills like skills/brainstorming/SKILL.md follow the exact same structure whether used in Claude Code or Gemini CLI.
Universal Installer
The CLI installer in tools/bin/install.js detects target assistants via flags (--claude, --gemini, --codex, --open-code, etc.) and copies the entire skills/ tree into assistant-specific directories (lines 173-219). The installer creates:
~/.claude/skills/for Claude Code~/.gemini/skills/for Gemini CLI~/.codex/skills/for Codex CLI~/.agents/skills/for OpenCode~/.adal/skills/for AdaL CLI
The installer also generates the Claude Code marketplace entry at .claude-plugin/marketplace.json.
Assistant-Agnostic Usage
According to docs/users/usage.md, users invoke skills using the generic pattern @skill-name. Because the skill name derives from the front-matter name field, the same invocation syntax works across all environments without per-assistant customization.
Creating Your First Cross-Compatible Skill
To make skills compatible across multiple AI assistants, follow this workflow:
- Create the markdown file at
skills/<my-skill>/SKILL.mdwith the required front-matter. - Write pure markdown content—the security tests in
tools/scripts/tests/docs_security_content.test.jsexplicitly reject shell pipelines like| bashor| iexto ensure safe cross-platform execution. - Run the installer to deploy to all supported assistants.
Here is a minimal example that works everywhere:
---
name: hello-world
description: "Print a friendly greeting. No external tools, pure markdown."
risk: low
source: community
date_added: "2026-03-01"
---
# Hello-World Skill
You are a helpful assistant. When invoked, simply respond with:
Hello, world! 🚀
Use this skill when you need a quick sanity-check or a friendly greeting.
Installing Skills for Multiple Assistants
Run the universal installer to deploy skills to every supported assistant simultaneously:
# Installs the whole repository to all detected assistant directories
npx antigravity-awesome-skills
This single command executes the logic in tools/bin/install.js, populating all assistant-specific paths with the same SKILL.md files. The installer handles OS detection and directory creation automatically.
Invoking Skills Across Different Assistants
Because the skills are assistant-agnostic, invocation differs only in the surface syntax, not the underlying behavior:
- Claude Code: Type
@hello-world - Gemini CLI: Type
Use @hello-world - OpenCode: Run
opencode run @hello-world
All three commands cause the assistant to read the identical SKILL.md from their respective skill directories and execute the same instructions.
Summary
- Single file format: The
SKILL.mdstandard with YAML front-matter provides the foundation for cross-compatibility. - Universal validation:
tools/lib/skill-utils.jsparses and normalizes skills once, ensuring consistent behavior. - Automated distribution:
tools/bin/install.jsdeploys to.claude/skills/,.gemini/skills/, and other directories without manual copying. - Generic invocation: The
@skill-namepattern works across Claude Code, Gemini CLI, Codex CLI, Cursor, OpenCode, and AdaL CLI. - Security enforcement: Automated tests reject embedded shell commands, keeping skills safe across platforms.
Frequently Asked Questions
Do I need to write separate versions of a skill for each AI assistant?
No. Write a single SKILL.md following the repository's front-matter schema. The tools/lib/skill-utils.js parser extracts the skill definition once, and the tools/bin/install.js installer handles assistant-specific placement. The same markdown file works in Claude Code, Gemini CLI, Codex CLI, and others without modification.
What are the required front-matter keys for cross-compatibility?
Every SKILL.md must include five keys in the YAML header: name (the skill identifier), description (usage context), risk (security level), source (provenance), and date_added (ISO 8601 date). The parser in tools/lib/skill-utils.js validates these keys before the installer distributes the file.
Is the installer open source and extensible?
Yes. The installer source resides in tools/bin/install.js and supports adding new assistants by extending the target directory mappings (lines 173-219). The repository uses standard Node.js without proprietary dependencies, allowing community contributions for emerging AI assistants.
How does the repository prevent security issues in cross-platform skills?
The test suite in tools/scripts/tests/docs_security_content.test.js scans all SKILL.md files for dangerous patterns like | bash or | iex (PowerShell). Skills containing shell pipelines fail validation, ensuring that skills remain pure markdown instructions rather than executable scripts that could behave differently across operating systems.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →