agentsclimarketplace

Convert

Skill ops4life/claude4ops/skills/convert

Convert Claude Code artifacts (CLAUDE.md, hooks, Anthropic SDK) to equivalent configs for other AI tools — Gemini CLI, GitHub Copilot, Cursor, or OpenAI Codex. Always fetches current docs via context7 before generating any output.From its SKILL.md

Install
npx -y skills add ops4life/claude4ops --skill convert

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

7.8 KB, as published. Nobody here has run it

Convert Claude Code Workflows to Other AI Tools

Convert Claude Code artifacts — CLAUDE.md, hooks, Anthropic SDK code — to equivalent configs for Gemini CLI, GitHub Copilot, Cursor, or OpenAI Codex.

When to Apply

Trigger when the user:

  • Says "convert to Gemini", "migrate to Copilot", "port to Cursor", "translate to Codex/OpenAI"
  • Wants to replicate their Claude Code setup in another AI coding tool
  • Has Anthropic SDK code they want to migrate to another provider

Workflow

Step 1: Detect Claude Artifacts

Scan the project for Claude-specific artifacts:

# Config files
ls CLAUDE.md .claude/CLAUDE.md .claude/settings.json .claude/settings.local.json 2>/dev/null

# Hooks
ls .claude/hooks/ 2>/dev/null

# Anthropic SDK usage
grep -r "from anthropic\|import anthropic\|@anthropic-ai/sdk\|Anthropic()" \
  --include="*.py" --include="*.ts" --include="*.js" . 2>/dev/null | head -20

Report what was found before proceeding.

Step 2: Identify Target Tool

If not specified, ask:

Which tool would you like to convert to?

  1. Google Gemini CLI
  2. GitHub Copilot
  3. Cursor
  4. OpenAI Codex

Step 3: Fetch Current Docs via context7

REQUIRED — never skip, never use training-data guesses.

Fetch current documentation using context7 before generating any config or SDK translation:

Gemini CLI:

mcp__plugin_context7_context7__resolve-library-id: "gemini cli"
mcp__plugin_context7_context7__query-docs: config format, GEMINI.md, system prompts, settings.json

GitHub Copilot:

mcp__plugin_context7_context7__resolve-library-id: "github copilot"
mcp__plugin_context7_context7__query-docs: copilot-instructions.md format, custom instructions

Cursor:

mcp__plugin_context7_context7__resolve-library-id: "cursor"
mcp__plugin_context7_context7__query-docs: .cursorrules format, cursor rules, .cursor/rules

OpenAI Codex / AGENTS.md:

mcp__plugin_context7_context7__resolve-library-id: "openai"
mcp__plugin_context7_context7__query-docs: AGENTS.md format, openai SDK chat completions

Cite the resolved library ID and doc version in every generated file header.

Step 4: Generate Target Configs

CLAUDE.md → Target Config

Read CLAUDE.md fully (expanding any @file imports). Then write:

Claude artifactGemini CLIGitHub CopilotCursorOpenAI Codex
CLAUDE.mdGEMINI.md.github/copilot-instructions.md.cursorrulesAGENTS.md
.claude/settings.json hooks.gemini/settings.json⚠️ No equivalent.cursor/rules/⚠️ No equivalent

Add a header comment to every generated file:

# Generated by /claude4ops:convert
# Source: CLAUDE.md
# Target: [Tool Name]
# Docs: context7 [library-id] — fetched [date]
# Review before committing. Claude-specific sections marked ⚠️.

Keep the original CLAUDE.md intact — generate new files alongside, never overwrite.

Anthropic SDK → Target SDK

For each file with Anthropic SDK imports, output a side-by-side migration:

Python — Anthropic → Google Generative AI (Gemini):

# BEFORE (Anthropic)
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)
print(message.content[0].text)

# AFTER (google-generativeai)
import google.generativeai as genai
import os
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel("gemini-2.0-flash")  # adjust model as needed
response = model.generate_content("Hello")
print(response.text)

Python — Anthropic → OpenAI (Copilot / Codex):

# BEFORE (Anthropic)
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)
print(message.content[0].text)

# AFTER (openai)
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",  # adjust model as needed
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)

TypeScript — Anthropic → OpenAI:

// BEFORE
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const msg = await client.messages.create({
  model: "claude-opus-4-8",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});
console.log(msg.content[0].text);

// AFTER
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.chat.completions.create({
  model: "gpt-4o",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello" }],
});
console.log(response.choices[0].message.content);

Model name mapping (approximate):

AnthropicGeminiOpenAI
claude-opus-4-x (most capable)gemini-2.0-progpt-4o
claude-sonnet-4-x (balanced)gemini-2.0-flashgpt-4o-mini
claude-haiku-4-x (fastest)gemini-2.0-flash-litegpt-4o-mini

Always verify model availability against current docs fetched from context7.

Hook Mappings

Claude Code hookGemini CLICopilotCursorCodex
PreToolUse (block commands).gemini/settings.json extensions⚠️ No equivalentCursor Rules⚠️ No equivalent
Stop (auto-lint)⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent
PostToolUse (audit log)⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent
Notification hooks (Slack)⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent⚠️ No equivalent

Step 5: Flag Unsupported Features

For every Claude feature with no equivalent, include a warning block in the generated output:

⚠️  UNSUPPORTED: Claude Code hooks (PreToolUse / Stop / PostToolUse)
    These run shell scripts at tool-call boundaries. [Target] has no equivalent.
    Workaround: Use git hooks (pre-commit) or CI pipeline steps instead.

⚠️  UNSUPPORTED: Tool-use permissions (allowedTools / blockedTools)
    Claude Code's fine-grained tool permission system has no direct equivalent.
    Workaround: Document rules in the target config file as natural-language instructions.

⚠️  UNSUPPORTED: MCP server configuration
    MCP is Claude Code-specific. Some tools support OpenAPI/function calling instead.
    Workaround: Expose your MCP server via OpenAPI spec and register as a tool/function.

⚠️  UNSUPPORTED: claude4ops plugin skills and commands
    These are Claude Code-only. No equivalent exists in other tools.

Step 6: Output Summary

After generating all files, print:

Conversion complete: Claude Code → [Target Tool]
Docs fetched: context7 [library-id] (fetched [date])

Generated:
  ✓ [target config file]       ← from CLAUDE.md
  ✓ [sdk-migration.md]         ← Anthropic SDK migration notes

Warnings ([N] features with no equivalent):
  ⚠️  hooks → no equivalent in [target tool]
  ⚠️  MCP servers → no equivalent (see workaround above)
  ⚠️  tool permissions → no equivalent

Review all generated files before committing.
Source files were not modified.

Notes

  • Never generate target configs without first fetching context7 docs — formats change
  • Expand @file imports in CLAUDE.md before mapping content to target format
  • Source files (CLAUDE.md, SDK files) are read-only — generate new files alongside
  • For multi-target conversions, run Steps 3–6 once per target tool
  • If context7 cannot resolve a library, warn the user and halt rather than guessing

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.