agentsclimarketplace

Skills repo

Skill Luckycat133/skills-repo

Reusable AI agent skills with multi-IDE sync, export, and publishing workflow

Install
npx -y skills add Luckycat133/skills-repo

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

21.3 KB, as published. Nobody here has run it

<!-- MIRROR FILE — not the source of truth. Some platforms (e.g. smithery.ai) only scan the repository ROOT for SKILL.md. The canonical, maintained copy lives at: skills/agent-skills-setup/SKILL.md Regenerate this mirror after editing the canonical with: bash scripts/sync-root-mirror.sh Repo-relative links (references/, scripts/) are rewritten to skills/agent-skills-setup/... so they resolve correctly from the repository root. -->

name: agent-skills-setup version: 0.5.7 license: MIT description: > Migrate ALL AI assistant context between IDEs — MCP servers, rules/instructions, skills, slash commands, agents, hooks, and memory. Detects installed IDEs, converts formats across platforms, merges with a safe default (backup-before-change) and an explicit overwrite mode (rsync --delete); always verifies results. WHEN TO USE: ONLY when the user explicitly asks to migrate, move, transfer, copy, convert, or sync AI assistant context between IDEs — e.g. "migrate MCP config", "move skills from Cursor to Claude", "transfer rules from Windsurf to Cursor", "copy agents between IDEs". The skill previews every change with --dry-run and never writes files without an explicit --yes confirmation; it must not activate on vague or unrelated prompts. triggers:

  • migrate mcp config
  • migrate ai ide settings
  • move skills from cursor to claude
  • transfer mcp servers between ide
  • migrate rules from windsurf to cursor
  • copy mcp config to another ide
  • migrate ai assistant context
  • move skills between ide
  • migrate ai ide context
  • migrate memory bank capabilities:
  • read: IDE/agent config dirs (MCP, rules, skills, commands, agents, hooks, memory)
  • write: IDE/agent config dirs (gated by --strategy: skip|backup|overwrite; default backup)
  • exec: rsync, curl, node, tar/unzip (local migration + verification)
  • install: global software (OpenClaw runtime, clawhub) — ONLY with explicit --yes AND mandatory SHA-256 verification
  • remote: download+execute OpenClaw install.sh — ONLY with --yes AND mandatory OPENCLAW_INSTALL_SHA256
  • network: outbound HTTPS for downloads (gated by consent)

AI IDE Context Migration

Migrate AI assistant context (MCP, rules, skills, commands, agents, hooks, memory) between IDEs with format conversion, safe merging, and verification.

MCP Protocol: 2025-11-25 (stable). SSE deprecated; use Streamable HTTP for remote servers. Full IDE Registry: Read skills/agent-skills-setup/references/ide-registry.md for detailed per-IDE paths of all migration objects.


Migration Objects

#ObjectDescription
1mcpMCP server configurations (stdio/HTTP)
2rulesInstructions/rules/context files
3skillsSKILL.md skill directories
4commandsSlash commands / prompt templates
5agentsSubagent definitions
6hooksLifecycle event hooks
7memoryPersistent memory / memory banks / context files

Never migrate live secrets: API keys, tokens, and bearer/OAuth credentials are always BLANKED during mcp/config migration (key names kept, values set to "") — they are never copied as-is. Also never migrate: chat history/transcripts, IDE UI settings, built-in vector indexes, workspace storage, SQLite databases.


Execution Workflow

1. DETECT    — Scan filesystem for installed IDEs using detect_dir in IDE Registry
2. IDENTIFY  — Ask user: source IDE(s) and target IDE(s)
3. SCAN      — Read skills/agent-skills-setup/references/ide-registry.md; scan ALL migration objects for source IDE
4. DRY-RUN   — Generate migration preview: list objects, conversion plan, conflicts
5. CONFIRM   — Show preview to user; wait for explicit approval before writing
6. BACKUP    — Create .bak.TIMESTAMP copies of existing target files that will be modified
7. MIGRATE   — Execute migrations with format conversion per Object Conversion Rules
8. VERIFY    — Validate output files parse correctly; run verification commands; report results

Critical rules:

  • Default to DRY-RUN. Never write without user confirmation.
  • Always backup before overwriting. Use .bak.<YYYYMMDDHHMMSS> suffix.
  • Merge, never overwrite. Conflicts renamed to <name>_migrated.
  • Blank all secret values during migration (keep key names, set values to ""): env vars (API keys, tokens), Authorization/bearer headers, user:pass@ or ?key= credential URLs, and DB connection strings. Secrets are redacted BEFORE the config is written to the target; the [SECURITY] warning in the report confirms this happened.
  • Default migration scope is LOW-RISK ONLY (skills, rules, prompts). mcp/config/project — which can carry live credentials — are NEVER migrated unless the user explicitly passes --objects mcp|config|project; a security warning is shown and secrets are redacted when they are in scope.
  • If source or target config is invalid JSON/TOML/YAML, STOP and report.

IDE Quick Reference

Root key and format differences cause the most common migration errors. The full per-IDE registry — paths for all migration objects (not just MCP) across 50+ IDEs — lives in skills/agent-skills-setup/references/ide-registry.md. Load only what you need, e.g.:

grep -nE '^### ' skills/agent-skills-setup/references/ide-registry.md   # list every IDE section

The highest-risk formats to get wrong (see skills/agent-skills-setup/references/ide-registry.md for the complete list):

IDEMCP Root KeyFormatConfig PathKey Pitfall
VS Code CopilotserversJSON.vscode/mcp.jsonservers NOT mcpServers; needs type:'stdio'|'http'
GitHub Copilot CLImcpServersJSON~/.copilot/mcp-config.jsonRoot key mcpServers + REQUIRES type:'local'|'http'; no longer reads .vscode/mcp.json
Kilo CodemcpServersJSON~/.config/kilo/kilo.jsonc (global) / .kilocode/mcp.json (project)Global is kilo.jsonc; project MCP is .kilocode/mcp.json (project-relative)
OpenCodemcpJSONopencode.jsonmcp not mcpServers; command is array; env is environment
WindsurfmcpServersJSON~/.codeium/windsurf/mcp_config.jsonUses serverUrl not url for HTTP
Continue.devmcpServersYAML~/.continue/config.yamlmcpServers is ARRAY not object (only IDE using array)
bolt.new/bolt.diyserversJSON~/.boltai/mcp.jsonRoot key servers NOT mcpServers!

Universal Standard Locations

Migrate to these FIRST for maximum cross-IDE compatibility:

PathPurposeLoaded By
AGENTS.mdUniversal project instructionsClaude Code, Cursor, Copilot, Codex, Gemini, Zed 1.4.2+, JetBrains/Goose/Kiro/Aider/OpenCode/Augment/Forge/Void/OpenHands/Kimi Code/ZCode/Qoder CN/veCLI
.agents/skills/<name>/SKILL.mdUniversal skillsCursor, Copilot, Codex, Trae, antigravity, OpenCode, Augment, Amp, Zed, Comate, Kimi Code
.claude/skills/<name>/SKILL.mdClaude-compatible skillsClaude Code, Cursor (loads natively), OpenCode, Augment, Copilot
.mcp.jsonUniversal project MCPClaude Code, Copilot CLI
.vscode/mcp.jsonVS Code Copilot project-level MCPCopilot (project); shareable with VS Code/Cursor/Cline/Zed via mcphub-nvim

Object Conversion Rules

MCP Server Conversion

CONVERT_MCP(source_config, source_ide, target_ide):

  1. Read source MCP config using source_ide paths and root_key
  2. For each server entry:
     a. Extract: command, args, env, url, headers
     b. BLANK all secret values in env (keep key names, set to "")
     c. Convert to target format per root_key:
        - mcpServers (JSON object): direct copy
        - servers (JSON, VS Code Copilot): rename mcpServers→servers; add type:'stdio'|'http'
        - context_servers (JSON): rename root key (Zed)
        - mcp.servers (JSON): rename root key (ZCode; also accepts mcpServers)
        - mcp (JSON): rename; add type:'local'|'remote'; command→array; env→environment (OpenCode)
        - mcpServers ARRAY: object → [{name,type,...}] (Continue.dev ONLY)
        - servers (JSON, bolt.new/bolt.diy): rename mcpServers→servers (NO type field needed)
        - mcp_servers (TOML): → [mcp_servers.<name>] table; underscores (Codex/Helix)
        - extensions (YAML): rename; command→cmd, env→envs; add type (Goose)
        - amp: via `amp mcp add` CLI command (Sourcegraph Amp)
     d. Handle special fields:
        - Windsurf HTTP: url → serverUrl
        - antigravity HTTP: url → serverUrl
        - Copilot CLI: add type:'local'|'http'
        - Codex HTTP: uses url+bearer_token_env_var or http_headers
        - Gemini CLI: server names underscores → hyphens
        - Continue.dev: convert object to array [{name,type,...}]
        - Goose: add type:'stdio'|'sse'|'streamable_http'
  3. Merge with existing target config (backup first; duplicates → <name>_migrated)
  4. Write; verify parses correctly

Rules/Instructions Conversion

Rules are MARKDOWN. The BODY is always reusable — only frontmatter and filename need adaptation. AGENTS.md is the universal intermediate format.

SourceConversion
.cursorrules / .windsurfrules / .clinerules / .voidrulesCopy body; rename to target's rules file
.cursor/rules/*.mdcExtract body; adapt frontmatter (description, globs, alwaysApply)
CLAUDE.md / GEMINI.md / .codyrules / CODEBUDDY.md / HELIX.mdCopy body; rename to target's filename
AGENTS.mdCopy directly (universal standard)
.kiro/steering/*.mdCopy body; note conditional steering (inclusion: always/fileMatch/auto/manual)
.augment/rules/*.mdExtract body; adapt frontmatter (always/auto/manual)
.comate/rules/*.mdrExtract body; .mdr is Markdown with Comate extensions
.junie/guidelines.mdCopy body; single file not directory
.tabnine/guidelines/rules.mdCopy body
Any rules → Zed/ZCode/Kimi Code/Qoder CN/veCLIAppend to AGENTS.md (all use AGENTS.md as universal)
Any rules → AiderUse CONVENTIONS.md; add to read: in .aider.conf.yml
Any rules → GooseCopy to .goosehints or AGENTS.md

Skills Conversion

CONVERT_SKILL(source_skill_dir, target_skill_dir):
  1. Keep: name, description (universally supported per agentskills.io)
  2. Remove IDE-specific frontmatter: allowed-tools (Claude), agent/fork/color (Augment)
  3. Copy entire skill directory (SKILL.md + scripts/ + references/ + assets/)
  4. Also copy to .agents/skills/ (universal) and .claude/skills/ (Claude-compatible)
  5. Verify SKILL.md has required name + description

Commands/Prompts Conversion

Commands are markdown files (filename = command name). Exceptions:

  • Gemini CLI: commands are .toml files, not markdown
  • VS Code Copilot: rename to *.prompt.md; add mode/model/tools frontmatter
  • Cody: convert to JSON format ({commands: {key: {prompt, description, mode, context}}})
  • OpenCode: support $ARGUMENTS, $1, !cmd, @filepath templates
  • Kimi Code: no standalone commands dir; use skills or plugin commands

Agents Conversion

Copy markdown body; adapt frontmatter. Supported fields by IDE:

  • Claude Code: name, description, model, tools
  • VS Code Copilot: name, description, tools, model
  • OpenCode: description, mode, model, tools, permission
  • Forge: name, description
  • Tencent CodeBuddy: name, description, tools, model
  • Kiro: name, description, prompt, mcpServers, tools, hooks (JSON format)
  • Kimi Code: YAML format (extend, name, system_prompt_path, tools, exclude_tools, subagents)
  • Roo Code/Kilo Code: Modes system (.roomodes/kilo.jsonc) — per-mode tool permissions
  • Gemini CLI: via /agents command and extensions
  • ZCode: Markdown (global ~/.zcode/agents/ or project .zcode/agents/)
  • Qodo: TOML format (agents/<command-name>.toml: instructions, tools, commands)

Hooks Conversion

SourceTargetConversion
Claude Code (settings.json hooks)Cursor (.cursor/hooks.json)Adapt event names; Cursor supports sessionStart/End, preToolUse/postToolUse, etc.
Claude Code hooksVS Code Copilot (.github/hooks/*.json)Shared format; 8 lifecycle events
Claude Code hooksKiro (.kiro/hooks/*.kiro.hook)Convert to JSON; when.type→fileEdited/preToolUse/postToolUse; then.type→runCommand/askAgent
Claude Code hooksOpenCode (.opencode/plugins/*.ts)Convert to TypeScript event handlers
Claude Code hooksKimi Code (config.toml [[hooks]])Convert to TOML array; 13 events; blocking: PreToolUse/Stop/UserPromptSubmit
Any hooksOthersNote as manual step

Memory Conversion

SourceTargetConversion
Claude Code (~/.claude/projects/<encoded>/memory/MEMORY.md + user_*.md etc.)Any rulesCopy MEMORY.md + relevant .md files as project context
Cline memory-bank/*.md (6 files: projectbrief, productContext, activeContext, systemPatterns, techContext, progress)Any rulesCopy as project context; prepend "## Project Context"
Goose ~/.config/goose/memory/ (JSON shards)Any rulesExtract text from JSON shards; convert to markdown
Trae ~/.trae/memory/user_profile.mdAny rulesCopy directly
Windsurf memories (~/.codeium/windsurf/memories/)Any rulesCopy global_rules.md; other memories are auto-generated
CodeBuddy CODEBUDDY.mdAny rulesCopy directly
Gemini CLI /memoryAny rulesUse /memory show to export; copy to target
MiniMax Code (3-tier memory)Any rulesExport via MiniMax Code UI; convert to markdown
Cross-IDE: mem0 MCP / OpenMemory / Pieces LTMSameInstall as MCP server in target IDE; memory follows API key/device

Key rule: Memory files are markdown/context. Convert to target IDE's rules or memory format. For MCP-based memory (mem0, Pieces), install the MCP server in target IDE.


Safety Boundaries

Never do thisWhy
Copy/migrate API keys, tokens, secretsSecurity; blank values, tell user to fill in
Overwrite existing config without backupData loss; always .bak.TIMESTAMP first
Overwrite existing entriesMerge only; conflicts → <name>_migrated
Execute package installs (global npm installs, or piping a remote script straight into a shell interpreter)Don't modify user's system — NEVER silent; see the OpenClaw exception below
Modify shell rc filesPATH issues noted but not auto-fixed
Kill/restart IDE processesTell user to restart in manual steps
Migrate IDE UI settings / chat history / OAuth tokens / SQLite databasesOut of scope or privacy/security risk
Write in dry-run modeDefault to preview; write only after user confirms
Proceed when config is invalid JSON/TOML/YAMLParse errors = corrupted; stop and report

Exception — OpenClaw auto-configuration (explicit, user-consented)

skills/agent-skills-setup/scripts/auto-configure-openclaw-skills.sh is the installer for OpenClaw, a target runtime for this skill. It is the single deliberate, user-consented exception to the "no global installs / no unverified remote-script execution" rule above. It MAY:

  • run npm install -g clawhub (installs the ClawHub package manager), and
  • download and execute https://openclaw.ai/install.sh (the OpenClaw runtime installer),

but ONLY when ALL of the following hold:

  1. The user passes --yes (explicit, recorded consent to modify their system).
  2. For install.sh, the script downloads to a temp file (it never pipes the download directly into a shell interpreter) and verifies its SHA-256 against OPENCLAW_INSTALL_SHA256. Setting this pin is mandatory: if it is unset, the script refuses to run the installer and exits, rather than trusting an unverified download — this prevents supply-chain tampering.
  3. In --dry-run mode it only previews these actions and never executes them.

This exception applies solely to installing the OpenClaw runtime / ClawHub for this skill's own target platform. It does NOT weaken the general rule for any other operation: no other command may run silent global npm install -g, pipe a remote script to sh, or modify the user's system without equivalent explicit consent and integrity verification.

IDE-specific pitfalls (will cause silent failure):

IDEPitfall
VS Code CopilotRoot key servers; requires type:'stdio'|'http'
Copilot CLIRoot key mcpServers + REQUIRES type:'local'|'http'; no longer reads .vscode/mcp.json
ZedRoot key context_servers; 1.4.2+ uses AGENTS.md not @rule
Codex/HelixTOML [mcp_servers.<name>] uses underscores; prompts deprecated→skills
Gemini CLIServer names must use hyphens; commands are .toml files
OpenCodeRoot key mcp; command must be array; requires type; env field is environment
GooseRoot key extensions; fields: cmd/args/envs; memory is directory not file
Continue.devmcpServers is ARRAY not OBJECT (only IDE using array)
Sourcegraph CodyFree/Pro sunset 2025-06 (migrate to Amp); MCP via feature flag opt-in; agentic gathering NOT @mentions
Sourcegraph AmpMCP via amp mcp add CLI, not config key
WindsurfUses serverUrl not url for HTTP
KiroPath has settings/ subdir: .kiro/settings/mcp.json; hooks use .kiro.hook extension
ClineVS Code extension uses globalStorage path; CLI uses ~/.cline/mcp.json separately
antigravityConfig at ~/.gemini/config/mcp_config.json; antigravity/ dir is cache
PearAIConfig file is config.json not mcp_config.json; standard object format
ForgePath is ~/.forge/ not ~/.config/forge/; MCP file is .mcp.json
Void EditorFile is mcp_servers.json not mcp.json; .voidrules unconfirmed
Kilo CodeGlobal is ~/.config/kilo/kilo.jsonc; agents evolved from modes
Roo CodeArchived 2026-05; migrate to Kilo Code
AiderNo native MCP; rules via CONVENTIONS.md read config
TraeProject MCP requires manual toggle; SOLO mode unsupported
Kimi CodePath ~/.kimi-code/ NOT ~/.kimi/; config is config.toml NOT config.json; legacy kimi-cli deprecated
ZCodeRoot key mcp.servers (dot notation); uses AGENTS.md not CLAUDE.md; ZCode ≠ CodeGeeX
mmx-cliRegion trap: global=api.minimax.io / cn=api.minimaxi.com (extra 'i'); Key+Host must match
MiniMax CodeDesktop config not file-exposed; official recommends mmx CLI over MCP
bolt.new/bolt.diyRoot key is servers NOT mcpServers; no type field needed (unlike VS Code Copilot)
QodoCodiumAI ≠ Codeium (Codeium→Windsurf); Enterprise has "Agentic Tools Allow List"; agents in .toml files
Devin/v0/LovableCloud SaaS only (no local files); bidirectional MCP — distinguish client config from server endpoint
Qoder CNRenamed from Tongyi Lingma 2026-05-20; path ~/.qoder/ not ~/.lingma/; uses AGENTS.md
Baidu Comate IDEDistinct from plugin version; global Rules/MCP only since 2025-08 late version; can't install MS Python/C++ plugins
veCLIDistinct from Trae CLI (different ByteDance product lines: Volcano Engine vs Trae brand)
WorkBuddyConfig at ~/.workbuddy/settings.json; skills under ~/.workbuddy/skills/; MCP at ~/.workbuddy/.mcp.json (root key mcpServers)

Verification

IDEMethod
Claude Codeclaude mcp list
Codex CLIcodex mcp list or /mcp
Copilot CLIcopilot mcp list
OpenCodeopencode mcp list
Kimi Codekimi mcp list
Qoder CNqodercli mcp list
Sourcegraph Ampamp mcp list
OpenHandsopenhands mcp list
Goosegoose configure
CursorGUI: Settings → MCP (hot reload)
ZedGUI: Settings → AI → Context Servers (hot reload)
VS Code CopilotCommand Palette → "MCP: List Servers"
WindsurfGUI: Settings → MCP panel
TraeGUI: Settings → MCP
ClineGUI: Cline sidebar → MCP Servers
ZCodeGUI: Settings → MCP Servers
WorkBuddyworkbuddy mcp list
Kilo CodeGUI: Kilo settings; or inspect ~/.config/kilo/kilo.jsonc
mcphub-nvim:McpHub in Neovim
codecompanion-nvim/mcp in chat buffer
JSON/TOML/YAMLpython3 -c "import json/tomllib/yaml; ..." parse check
All othersCheck files exist, non-empty, parse without errors

Universal MCP debugger: npx @modelcontextprotocol/inspector


Existing Migration Script

skills/agent-skills-setup/scripts/smart-ide-migration.sh automates file operations between 40 IDEs. Use it for bulk file copying; use the IDE Registry for format conversion it doesn't handle.

The script never writes files without explicit approval: --dry-run previews with zero writes; applying changes requires --yes (interactive terminals get a [y/N] prompt; non-interactive runs without --yes abort before touching anything). Always preview first:

# 1) Preview (zero writes)
bash skills/agent-skills-setup/scripts/smart-ide-migration.sh --source cursor --target claude --dry-run
# 2) Apply after reviewing the plan (explicit consent)
bash skills/agent-skills-setup/scripts/smart-ide-migration.sh --source cursor --target claude --yes
bash skills/agent-skills-setup/scripts/smart-ide-migration.sh --source cursor --target windsurf --objects skills,rules --strategy backup --yes

Keep looking

Skills are one crate of 328,083. 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.