Converts Claude Code skills to Gemini CLI extensions and vice versa. Use when the user wants to make a skill cross-platform compatible, port a skill between platforms, or create a universal extension that works on both Claude Code and Gemini CLI.
This skill automates the conversion between Claude Code skills and Gemini CLI extensions, enabling true cross-platform AI tool development.
Convert skills and extensions between platforms while preserving functionality:
Example requests:
Automatically analyzes directory structure to determine source platform:
Detection criteria:
SKILL.md with YAML frontmatter or .claude-plugin/marketplace.jsongemini-extension.json or GEMINI.md context fileExample requests:
Intelligently converts between platform-specific formats:
Conversions handled:
allowed-tools (whitelist) ↔ excludeTools (blacklist)Example requests:
Maintains Model Context Protocol server configurations across platforms:
Example requests:
Ensures converted output meets platform requirements:
Validation checks:
Example requests:
When you request a conversion, I will:
SKILL.md + .claude-plugin/marketplace.jsonGEMINI.md + gemini-extension.jsonallowed-tools (whitelist - only listed tools permitted)excludeTools (blacklist - listed patterns blocked)${extensionPath} variable substitutionUser: "I have a Claude skill at ./database-helper. Convert it to Gemini."
Claude: I'll analyze the skill and convert it to Gemini format...
- Detected Claude skill (found SKILL.md with frontmatter)
- Extracted metadata and MCP configuration
- Generated gemini-extension.json and GEMINI.md
- Transformed allowed-tools to excludeTools
- Created settings schema from environment variables
✓ Conversion complete! Ready to install with: gemini extensions install ./database-helperUser: "Port my Gemini extension to Claude Code"
Claude: I'll convert this Gemini extension to a Claude skill...
- Detected Gemini extension (found gemini-extension.json)
- Extracted manifest and context file
- Generated SKILL.md with YAML frontmatter
- Created .claude-plugin/marketplace.json
- Converted excludeTools to allowed-tools
✓ Conversion complete! Install with: cp -r ./extension ~/.claude/skills/User: "Make this skill work on both platforms"
Claude: I'll create a universal extension structure...
- Analyzing current configuration
- Generating both Claude and Gemini files
- Moving shared content to shared/ directory
- Updating MCP server paths for both platforms
✓ Universal extension created! Works with both Claude Code and Gemini CLICreate a PR to add dual-platform support to the parent repository:
Example requests:
Create a fork with both platform configurations:
Example requests:
Check compatibility without converting:
Example requests:
This skill operates directly on filesystem directories and doesn't require external configuration. It uses:
gh) for repository operationsSome aspects may require manual review:
These will be flagged in the conversion report.
Claude → Gemini (Whitelist → Blacklist):
Gemini → Claude (Blacklist → Whitelist):
When converting Claude → Gemini, environment variables in MCP config become settings:
// MCP env var
"env": { "DB_HOST": "${DB_HOST}" }
// Becomes Gemini setting
"settings": [{
"name": "DB_HOST",
"description": "Database host",
"default": "localhost"
}]Claude uses relative paths, Gemini uses variables:
// Claude
"args": ["mcp-server/index.js"]
// Gemini
"args": ["${extensionPath}/mcp-server/index.js"]For implementation details, see the repository at https://github.com/jduncan-rva/skill-porter
45f9fac
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.