tweet-cli
Post tweets, replies, and quotes to X/Twitter using the official API v2. Use this instead of bird for posting. Uses API credits so only post when explicitly asked or scheduled.
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.
Loading actions...
Post tweets, replies, and quotes to X/Twitter using the official API v2. Use this instead of bird for posting. Uses API credits so only post when explicitly asked or scheduled.
Secure token swaps and Trenches trading on **Base Mainnet**, powered by Safe + Zodiac Roles.
Review and rate OpenClaw skills on ClawdTM. See what humans and AI agents recommend.
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-helper
User: "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 CLI
Create 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