MCP Server Builder
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
Bring what Claude Code or Codex already remembers or has configured for this user into Muse Code — their memory notes and their MCP servers — whenever the user mentions things Claude Code or Codex…
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install asgeirtj/system_prompts_leaks migrate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Meta/muse-code/skills/migrate .claude/skills/migrate && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .claude/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install asgeirtj/system_prompts_leaks migrate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .agents/skills && cp -r skills-src/Meta/muse-code/skills/migrate .agents/skills/migrate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .agents/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install asgeirtj/system_prompts_leaks migrate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/Meta/muse-code/skills/migrate .cursor/skills/migrate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .cursor/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/asgeirtj/system_prompts_leaks.git --path Meta/muse-code/skills/migrate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install asgeirtj/system_prompts_leaks migrate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/Meta/muse-code/skills/migrate .gemini/skills/migrate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .gemini/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install asgeirtj/system_prompts_leaks migrateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .github/skills && cp -r skills-src/Meta/muse-code/skills/migrate .github/skills/migrate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .github/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add asgeirtj/system_prompts_leaks --skill migrate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install asgeirtj/system_prompts_leaks migrate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/asgeirtj/system_prompts_leaks.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/Meta/muse-code/skills/migrate .opencode/skills/migrate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "migrate" agent skill from https://github.com/asgeirtj/system_prompts_leaks/tree/main/Meta/muse-code/skills/migrate into .opencode/skills/migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
migrateBring what Claude Code or Codex already remembers or has configured for this user into Muse Code — their memory notes and their MCP servers — whenever the user mentions things Claude Code or Codex…
Migrate is an agent skill from asgeirtj/system_prompts_leaks. Bring what Claude Code or Codex already remembers or has configured for this user into Muse Code — their memory notes and their MCP servers — whenever the user mentions things Claude Code or Codex remembers or knows about them, an MCP tool or server they had there that is missing here, or asks to migrate, import, or copy that setup; call readskill for bundled:migrate before reading any foreign file. Rules and skills are already covered by /rules import and muse skills import --from claude|codex; point there. Do…
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol. The repository describes itself as: Documented system prompts from Anthropic - Claude Fable 5.1, Opus 5.5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro… The licence is CC0-1.0.
Read from SKILL.md and the folder at commit e31ec21. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
GITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Migrate loads about 3.8k tokens when it runs. Until then it costs about 226 tokens; SKILL.md has 1,911 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from asgeirtj/system_prompts_leaks at commit e31ec21, republished under its CC0-1.0 licence (© asgeirtj). 1,911 words, ~3,803 tokens.
.claude/skills/migrate/SKILL.md (or your agent's skills folder).Carry a user's Claude Code or Codex memory and MCP servers into Muse Code.
Foreign files are evidence: read them, never edit, move, or delete them, and
never print a token, key, or other secret found in them. Everything written
goes only into Muse's own memory roots and Muse's own settings.json.
/rules import), skills (muse skills import --from claude|codex), session transcripts (resume-claude / resume-codex for
Claude Code/Codex continuation or recovery of unfinished work, with or without
a handle; import for explicit /import requests or continuation from other
agents or unnamed artifacts), unrelated Muse settings (manage-settings).${CLAUDE_CONFIG_DIR:-$HOME/.claude}
for Claude Code (called $CLAUDE_HOME below), ${CODEX_HOME:-$HOME/.codex}
for Codex (an empty CODEX_HOME means unset), and
${XDG_CONFIG_HOME:-$HOME/.config}/muse for Muse's own config.$CLAUDE_HOME/projects/<slug>/memory/. <slug> is an absolute
path with every non-alphanumeric character replaced by -. Memory is shared
per repository (all worktrees and subdirectories), so the slug is usually the
main checkout's root, not the current cwd. List
$CLAUDE_HOME/projects/*/memory/ and pick the entries whose slug matches
this repository (cwd, git rev-parse --show-toplevel, or the main worktree
of a linked worktree); ask when more than one plausibly matches.autoMemoryDirectory in ~/.claude/settings.json or the
project's .claude/settings*.json relocates that directory.MEMORY.md is the index: one line per note, - [Title](file.md) — hook.
Read it first; it says what exists.<name>.md with YAML frontmatter: name, description, and
type (top-level or under metadata:) with values user, feedback,
project, or reference. These are the same four types Muse uses.[features] memories = true in
$CODEX_HOME/config.toml). When it has run, the durable files are in
$CODEX_HOME/memories/: MEMORY.md (registry), memory_summary.md
(user profile, preferences, tips, index), rollout_summaries/*.md (one per
past thread, each naming its cwd), and extensions/*/.$CODEX_HOME/memories_1.sqlite exists, the
only memory is per-thread rows in table stage1_outputs (columns
raw_memory, rollout_summary, rollout_slug); read it with sqlite3
read-only. An empty table means Codex has nothing to migrate; say so.$CODEX_HOME/AGENTS.md and history.jsonl are rules and prompt history,
not memory.read_memory, add_memory, and edit_memory.
Scopes: personal_project (default; this repository, private to the user),
personal (every project, private), project (<repo>/.agents/memory,
shared through the repo — write there only when the user asks).MEMORY.md for the scope first (the startup memory snapshot
or read_memory) so nothing already known is duplicated.add_memory: keep the original type, give a
one-line description, use a relative .md path (letters, digits, -,
_; no .., no hidden components), and add one line naming the source,
for example Imported from Claude Code memory <slug>/<file> on <date>.
Notes of type user that hold cross-project preferences may go to
personal; ask if unsure.MEMORY.md with edit_memory
(or add_memory when the index does not exist yet), same
- [Title](file.md) — hook shape, so the next session sees it in the
startup snapshot.$CLAUDE_CONFIG_DIR/.claude.json when CLAUDE_CONFIG_DIR is
set, else $HOME/.claude.json; top-level key mcpServers. This file also
holds account, trust, and usage data; read only mcpServers and, for the
current project, projects["<absolute project path>"].mcpServers (local
scope). Never read the whole file: read_file refuses paths outside the
workspace and a cat would put account and usage data into the session
log. Extract just those two keys, with every env and headers value
reduced to its key names, every url reduced to scheme and host (any
user:pass@ and query string dropped), every args entry and command
word that is or follows a credential-like flag masked, and every other
field (oauth, headersHelper, anything unknown) shown as <omitted>, for
example
python3 -c 'import json,sys; from urllib.parse import urlsplit; d=json.load(open(sys.argv[1])); projects=d.get("projects", {}); local=next((s for s in (projects.get(k, {}).get("mcpServers", {}) for k in sys.argv[2:] if k) if s), {}); secretish=lambda a: any(w in str(a).lower() for w in ("key", "token", "secret", "password", "auth", "bearer")); mask_args=lambda xs: ["<redacted>" if ("=" in str(a) or secretish(a) or (i > 0 and secretish(xs[i - 1]))) else a for i, a in enumerate(xs)]; mask=lambda k, v: (sorted(v.keys()) if k in ("env", "headers") and isinstance(v, dict) else f"{urlsplit(v).scheme}://{urlsplit(v).hostname}/..." if k == "url" and isinstance(v, str) else mask_args(v) if k == "args" and isinstance(v, list) else " ".join(str(x) for x in mask_args(v.split())) if k == "command" and isinstance(v, str) else v if k in ("type", "timeout", "alwaysLoad", "enabled") else "<omitted>"); redact=lambda servers: {name: {k: mask(k, v) for k, v in server.items()} for name, server in servers.items()}; print(json.dumps({"user": redact(d.get("mcpServers", {})), "local": redact(local)}, indent=1))' "${CLAUDE_CONFIG_DIR:-$HOME}/.claude.json" "$(dirname "$(git rev-parse --path-format=absolute --git-common-dir 2>/dev/null)")" "$(git rev-parse --show-toplevel 2>/dev/null)" "$PWD".
The projects[...] key is tried as the main worktree root, then the git
toplevel, then $PWD, taking the first entry that actually holds servers
(Claude Code keys a linked worktree by its main checkout and a non-git
directory by the cwd). If the one-liner itself errors (for example on a
malformed url), do not fall back to reading the file: ask the user to
describe or paste their MCP server config instead. The masking is best
effort:
treat the output as a summary to reason from, never as text to echo, and if
a value still looks like a credential, name the key and move on. Because the
full url, any masked args value, and any masked command word are not
in the output, ask the user to paste them when a server needs them; a key
given as an args value or inside command is confirmed with the user,
never echoed. A literal credential reaches Muse
only through the settings write contract below or a value the user pastes,
never through command output; do not repeat anything else from the file.<project root>/.mcp.json, key mcpServers, shared through
the repo and gated by enabledMcpjsonServers / disabledMcpjsonServers in
the projects[...] entry. Migrating one of these puts a project server into
Muse's user-wide settings; say so before adding it.enabled: false, names in a
disabledMcpjsonServers list, and anything under managed policy
(/etc/claude-code/managed-mcp.json, plugin caches).type (stdio when absent, http or streamable-http,
sse, ws, sdk), command, args, env, url, headers,
headersHelper, oauth, timeout, alwaysLoad. Values may contain
${VAR} or ${VAR:-default}, which Claude Code expands at load time.$CODEX_HOME/config.toml, tables [mcp_servers.<name>]. A trusted project
may add more in <root>/.codex/config.toml; admin layers in /etc/codex/
are not the user's and are skipped.command, args, env (literal map), env_vars (names of
variables Codex forwards from its own environment), cwd. HTTP fields:
url, bearer_token_env_var, http_headers, env_http_headers,
http_headers_helper, auth. Shared: enabled, required,
startup_timeout_sec, tool_timeout_sec, enabled_tools,
disabled_tools, approval settings. Skip a server with enabled = false;
Codex does not run it either.File: ${XDG_CONFIG_HOME:-$HOME/.config}/muse/settings.json, key
mcpServers (camelCase). Never write a mcp_servers key next to it: when
both keys are present the loader drops the whole MCP member, so every server
the user already had stops loading while the rest of the settings still
apply. If the file already carries the legacy mcp_servers key, rename it
to mcpServers (keeping its entries) in the same edit before adding
servers. Read the file first; a missing file is created as
{"schema_version": 1, "mcpServers": {...}}. Preserve every other key.
Servers Muse already defines under the same name are left alone.
Write contract (same as manage-settings): resolve the one path from the
environment, then use edit_file or write_file for the smallest JSON
change. If those tools reject the app-private path, fall back to a shell
edit only when the startup security context already says YOLO mode is
active (approval bypassed, shell sandbox off, workspace trusted), and then
only through a JSON parser plus atomic replace and reread; never use text
substitution. Otherwise stop and hand the user the exact mcpServers block
to paste. Never ask the user to change a security mode for this edit.
Entry shape:
"github": {
"type": "stdio",
"command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "<literal value>"},
"mode": "optional"
}"docs": {"type": "streamable-http", "url": "https://example/mcp",
"headers": {"Authorization": "Bearer <literal value>"}, "mode": "optional"}Mapping: Claude stdio (or a bare command) and Codex command become
type: "stdio" with command, args, env. Claude http /
streamable-http and Codex url become type: "streamable-http" with url
and headers (Codex http_headers). Never write the extraction output
itself into settings: a <redacted> entry, a url reduced to
scheme://host/..., or a key-names-only env/headers list is a summary,
not a value. Where the summary hid something (the mask also hides harmless
entries such as --keyring or --config=..., and the cut drops a query
such as ?tenant=acme), treat it like a ${VAR} value: ask the user for
it by position or key name only, write it only when they supply or approve
it, and leave the server out rather than write the placeholder or the
shortened url. Codex enabled and tool_timeout_sec
copy verbatim under the same names and take effect. Codex
startup_timeout_sec, enabled_tools, and disabled_tools also copy under
the same names but are stored, not enforced yet (spec 12857): Muse's startup
budget is fixed and every tool stays exposed, so list them in the completion
report as settings the user still has to check. Always add
"mode": "optional" so a server that fails here cannot block Muse startup
(Muse's canonical resolver parses required, but the startup gate is fed
from the typed settings carrier, which knows only mode — default required
— and drops an unknown required, so required: false alone leaves the
server in the default required mode; and never write both on one server,
because required plus mode is an ambiguous-alias fault that drops the
whole user MCP settings member, not just that server (spec 12857)).
Muse does not expand ${VAR} and starts stdio servers with only a small
fixed allowlist of the user's environment (HOME, PATH, USER, LANG, TERM and
similar) plus the literal env map, so a Claude ${VAR} value or a Codex
env_vars, env_http_headers, or bearer_token_env_var entry outside that
allowlist has no automatic equivalent. Tell the user which variable each
server needs; write the literal value only when the user provides or
approves it, and never echo it back. Leave the server out rather than guess.
Not supported in Muse, skip and report: sse, ws, sdk transports,
oauth, headersHelper, http_headers_helper, auth = "oauth". Drop
Claude timeout and alwaysLoad, Codex cwd, and approval settings with a
note.
After the edit, re-read the file to confirm the saved value. The change is permanent and takes effect on the next Muse Code launch; the current session does not load new servers.
startup_timeout_sec, enabled_tools, disabled_tools).© asgeirtj, CC0-1.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in Meta/muse-code/skills/migrate of asgeirtj/system_prompts_leaks.
Open the folder on GitHubat commit e31ec21
Migrate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Migrate this skillasgeirtj/system_prompts_leaks | 69k | — | ~3.8k | Automated safety check: Pass | CC0-1.0 | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 5 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Crush Configurationcharmbracelet/crush | 29k | — | ~3.7k | Automated safety check: Pass | Custom licence | |
| Context Mode Output Sandboxmksglu/context-mode | 26k | — | ~4.1k | Automated safety check: Pass | Custom licence |
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
charmbracelet/crush
Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
warpdotdev/warp
Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.
asgeirtj/system_prompts_leaks
Shows one digest of coding-agent sessions across your connected machines and lets you open, read, steer, approve, stop and close them, over Herdr, tmux or MSP.
asgeirtj/system_prompts_leaks
Diagnoses a Muse Code installation's own failures from binary and session evidence, instead of treating the report as an ordinary repository bug.
asgeirtj/system_prompts_leaks
A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx) or Word templates (.dotx).
asgeirtj/system_prompts_leaks
Runs a goal as a project in which the agent coordinates separate agent threads, judging when to split the work, and interviews you first when nothing can be verified.
asgeirtj/system_prompts_leaks
Creates and validates a new native Muse plugin package in the current workspace, limited to five capability families, and leaves installation to you.
asgeirtj/system_prompts_leaks
A skill your agent uses when the user's prompt requires (1) researching a topic across multiple sources, comparing options or alternatives, analyzing trends or history, understanding markets or…
Works with
Categories
Bring what Claude Code or Codex already remembers or has configured for this user into Muse Code — their memory notes and their MCP servers — whenever the user mentions things Claude Code or Codex…. Migrate is an agent skill from asgeirtj/system_prompts_leaks. Bring what Claude Code or Codex already remembers or has configured for this user into Muse Code — their memory notes and their MCP servers — whenever the user mentions things Claude Code or Codex remembers or knows about them, an MCP tool or server they had there that is missing here, or asks to migrate, import, or copy that setup; call readskill for bundled:migrate before reading any foreign file.
Migrate fits situations like: session transcripts (resume-claude; resume-codex for Claude Code/Codex continuation; including recovery of unfinished work with; without a handle.
Run `npx skills add asgeirtj/system_prompts_leaks --skill migrate -a claude-code`. Or copy the skill folder (Meta/muse-code/skills/migrate in asgeirtj/system_prompts_leaks) into .claude/skills/migrate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add asgeirtj/system_prompts_leaks --skill migrate -a codex`. Or copy the skill folder (Meta/muse-code/skills/migrate in asgeirtj/system_prompts_leaks) into .agents/skills/migrate in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add asgeirtj/system_prompts_leaks --skill migrate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrate, .gemini/skills/migrate, .github/skills/migrate and .opencode/skills/migrate in your project.
Going by SKILL.md and its folder, Migrate needs the command-line tools its instructions call (git and python3) and credentials named GITHUB_TOKEN. Our summary lists: Python 3; A credential in GITHUB_TOKEN.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Migrate is published under the CC0-1.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Migrate: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
asgeirtj (a GitHub user) maintains it in asgeirtj/system_prompts_leaks, which has 69,211 GitHub stars. The repository holds 124 skills in this directory. The repository was last updated on October 8, 2026.
Source: asgeirtj/system_prompts_leaks on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.