A SKILL.md file can be portable without behaving identically everywhere. Portability has three layers: the package can be parsed, the host can discover and activate it, and the workflow can complete with the host’s tools and permissions. Marketing often collapses those layers. This map keeps them separate.

Compatibility map

PlatformStatusPractical path
Claude CodeNative.claude/skills, personal, plugin, enterprise, and synced account paths
OpenAI CodexNative.agents/skills, personal/admin/system locations, or plugins
Gemini CLINative.gemini/skills or compatible .agents/skills locations
GrokNative.grok/skills, plugins, configured paths, and Claude-compatible discovery
skills.shDistributorInstalls public Git-hosted packages into supported agents
v0Application builderUse project instructions, MCP, integrations, or a skill-enabled agent in its terminal
Meta LlamaHarness dependentAdapt metadata and progressive loading in the Llama agent runtime you control

Claude Code

Claude Code explicitly follows the open Agent Skills standard and adds invocation, dynamic-context, tool, subagent, plugin, and account-sync features. The core body travels well. Claude-specific frontmatter should be treated as an optional extension when moving elsewhere.

OpenAI Codex

Codex and ChatGPT use skills for reusable workflows. Codex scans repository and user .agents/skills locations, supports explicit and implicit activation, and can package reusable skills with connectors through plugins. OpenAI-specific presentation and dependency metadata belongs in agents/openai.yaml.

Gemini CLI

Gemini CLI implements discovery tiers, an activation consent step, and the same folder pattern. It accepts a shared .agents/skills alias, which reduces copying between Codex and Gemini projects. Workspace trust and host-specific commands still affect the user experience.

Grok from xAI

Grok documents native skills, plugins, marketplaces, path-specific activation, and Claude Code compatibility. Several frontmatter fields parse but do not enforce permissions. Test tool-dependent behavior rather than assuming a field has the same meaning as it does in Claude.

v0 and Vercel

v0 builds and deploys applications; Vercel runs a separate open skills ecosystem. Current v0 documentation does not present every project as a native SKILL.md runtime. Use a documented agent inside its terminal, project instructions, MCP, or integrations for that layer. Use skills.sh when the package itself should move between agents.

Meta and Llama

Meta’s Llama Stack provides components for agentic applications, tools, retrieval, and safety. The model does not define one universal skill directory. A Llama application can use the format by implementing discovery, routing, progressive loading, resource access, and permissions in its harness.

What remains portable

Keep the job, trigger description, inputs, steps, evidence rules, output contract, and finish checks in the core package. Put host-specific display fields, invocation switches, dynamic commands, and tool grants in isolated metadata or references. Test the same scenarios in every claimed host. That yields an honest compatibility statement: “verified in these runtimes,” rather than an unsupported universal claim.