OpenSource-Hub

claude-plugins-official

Awesome 리스트

anthropics/claude-plugins-official

Anthropic이 공식적으로 관리하는 Claude Code 고품질 플러그인 디렉터리.

개요

이것은 Claude Code의 고품질 플러그인 모음 마켓플레이스로, Anthropic 내부 및 서드파티에서 개발한 플러그인을 포함합니다. 각 플러그인은 MCP 서버, 명령, 에이전트 또는 스킬을 추가하여 Claude Code의 기능을 확장할 수 있습니다. Claude Code 플러그인 시스템을 통해 설치할 수 있습니다.

README 미리보기

# Claude Code Plugins Directory\n\nA curated directory of high-quality plugins for Claude Code.\n\n> **⚠️ Important:** Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.\n\n## Structure\n\n- **`/plugins`** - Internal plugins developed and maintained by Anthropic\n- **`/external_plugins`** - Third-party plugins from partners and the community\n\n## Installation\n\nPlugins can be installed directly from this marketplace via Claude Code's plugin system.\n\nTo install, run `/plugin install {plugin-name}@claude-plugins-official`\n\nor browse for the plugin in `/plugin > Discover`\n\n## Contributing\n\n### Internal Plugins\n\nInternal plugins are developed by Anthropic team members. See `/plugins/example-plugin` for a reference implementation.\n\n### External Plugins\n\nThird-party partners can submit plugins for inclusion in the marketplace. External plugins must meet quality and security standards for approval. To submit a new plugin, use the [plugin directory submission form](https://clau.de/plugin-directory-submission).\n\n## Plugin Structure\n\nEach plugin follows a standard structure:\n\n```\nplugin-name/\n├── .claude-plugin/\n│   └── plugin.json      # Plugin metadata (required)\n├── .mcp.json            # MCP server configuration (optional)\n├── commands/            # Slash commands (optional)\n├── agents/              # Agent definitions (optional)\n├── skills/              # Skill definitions (optional)\n└── README.md            # Documentation\n```\n\n## Skill-bundle plugins\n\nWhen a plugin's source repository ships skills (`SKILL.md` files) without a `.claude-plugin/plugin.json` manifest, the marketplace entry can declare the skills directly using `strict: false` and an explicit `skills` array.\n\n```json\n{\n  "name": "exa

FAQ (5)

문제 해결
security-guidance 플러그인의 python_subprocess_shell 규칙이 Markdown 문서의 코드를 플래깅하지 않도록 하는 방법은?

이는 security-guidance v2.0.0에서 알려진 오탐(false positive)입니다. 현재 이 규칙은 문서 파일을 제외하기 위한 path filter가 누락되어 있습니다. 임시 해결 방법으로, .md/.mdx/.rst 파일에서 이러한 경고를 무시하거나 hooks/patterns.py를 수동으로 편집하여 규칙에 path_filter: lambda p: not p.endswith(_DOC_EXTS)를 추가할 수 있습니다. 향후 업데이트에서 적절한 수정이 예상되며, 상태는 issue #2045에서 추적하십시오.

원본 Issue #2045
문제 해결
security-guidance 플러그인에서 'output_format deprecated' HTTP 400 오류를 수정하는 방법은?

plugins/security-guidance/hooks/llm.py를 업데이트하여 더 이상 사용되지 않는 최상위 output_format 대신 output_config.format 아래에 스키마를 중첩합니다. 구체적으로, "output_format": {"type": "json_schema", "schema": output_schema}를 "output_config": {"format": {"type": "json_schema", "schema": output_schema}}로 대체합니다. adaptive-thinking 브랜치에 있는 경우, effort를 기존 딕셔너리로 병합합니다: payload["output_config"] = {"effort": "high"}를 payload["output_config"]["effort"] = "high"로 변경합니다. 패치는 issue #2097에 있습니다. 이로 인해 400 오류가 해결되고 guardrail이 열린 상태로 실패하는 것을 방지합니다.

원본 Issue #2098
문제 해결
Claude Code가 아무 이유 없이 'Permission to use Edit has been denied'를 표시하는 이유는 무엇인가요?

보안-가이드 플러그인 훅이 JSON 페이로드 없이 sys.exit(2)를 통해 거부를 발생시켜 일반적인 거부 메시지가 표시되고 있습니다. permissionDecisionReason이 포함된 적절한 JSON 거부를 출력하는 버전으로 플러그인을 업그레이드하세요. 즉시 업그레이드가 불가능한 경우, 훅 스크립트(예: security_reminder_hook.py)를 수동으로 패치하여 단순 sys.exit(2)를 다음 코드로 대체하십시오:

import json
print(json.dumps({
    "hookSpecificOutput": {
        "hookEventName": "PreToolUse",
        "permissionDecision": "deny",
        "permissionDecisionReason": f"{rule_name}: {reminder[:120]}"
    }
}))
sys.exit(0)

이렇게 하면 UI에 일치한 패턴 및 위험 범주와 같은 컨텍스트가 제공됩니다. 업스트림 수정 사항을 추적하여 로컬 패치가 필요 없도록 하십시오.

원본 Issue #1783
문제 해결
Claude Code의 security-guidance hook이 'hook json output validation failed' 오류를 표시하는 이유는 무엇인가요?

해당 훅은 JSON 대신 일반 텍스트를 출력합니다. hooks/security_reminder_hook.py 272행을 수정하여 print(reminder, file=sys.stderr); sys.exit(2)를 print(json.dumps({"decision": "block", "reason": reminder})); sys.exit(2)로 바꾸십시오. 이렇게 하면 유효한 JSON이 출력되어 유효성 검사 오류가 해결됩니다.

원본 Issue #1375
문제 해결
Microsoft Store Python이 파일이 Windows에 존재함에도 불구하고 "can't open file ... [Errno 2] No such file or directory" 오류로 실패하는 이유는 무엇이며, 어떻게 해결할 수 있나요?

근본 원인: Microsoft Store/MSIX Python(예: PythonSoftwareFoundation.Python.3.10, PATH에서 WindowsApps의 python3.10/python3으로 확인됨)은 Windows AppContainer 샌드박스 내부에서 실행됩니다. 이 인터프리터는 python -c 프로브를 통과하고 실제 버전을 보고하지만, 다른 앱의 데이터 폴더(예: %APPDATA%\Roaming\Claude\...)에 대한 읽기 액세스가 거부되므로, 명백히 존재하는 파일에 대해서도 Errno 2를 보고합니다. sg-python.sh는 Pass 1에서 이 인터프리터를 확정한 후 정상 작동하는 python.org 설치로 넘어가지 않으므로, 모든 훅(UserPromptSubmit, PostToolUse, Stop)이 실패합니다. 그리고 asyncRewake: true가 설정된 Stop은 매 턴마다 오류를 다시 발생시킵니다.

수정 옵션 A — 샌드박스 처리된 인터프리터를 PATH에서 제거: Store Python을 제거(설정 > 앱)하거나 설정 > 앱 > 고급 앱 설정 > 앱 실행 별칭에서 비활성화한 다음, python.org에서 Python을 설치하고 where python / where python3로 실제 인터프리터가 먼저 확인되는지 확인하세요.

수정 옵션 B — 프로브가 -c뿐 아니라 실제 스크립트 실행을 검증하도록 sg-python.sh를 패치: 대상 스크립트와 동일한 디렉터리에 임시 스크립트를 작성하세요(/tmp가 아님 — /tmp는 샌드박스의 허용 범위 안에 있어 오류가 재현되지 않습니다):

can_run_script() {
    local target_dir="$1"; shift
    target_dir="$(dirname -- "$target_dir")"
    local tmp="$target_dir/.sg-python-probe-$$.py"
    printf 'pass\n' > "$tmp" 2>/dev/null || return 1
    if command -v cygpath >/dev/null 2>&1; then
        "$@" "$(cygpath -w "$tmp")" >/dev/null 2>&1
    else
        "$@" "$tmp" >/dev/null 2>&1
    fi
    local rc=$?
    rm -f "$tmp" 2>/dev/null
    return $rc
}

그런 다음 세 개의 패스 모두에서 각 exec 지점을 is_sdk_compatible "$v" && can_run_script "$1" "$cmd" 조건으로 게이팅하세요($1 = 실제 대상 스크립트 경로). 그러면 shim이 샌드박스 처리된 Store python3.10/python3를 건너뛰고 python.org python(예: C:\PythonXXX\python.exe)으로 넘어갑니다.

다음 명령으로 확인하세요: bash sg-python.sh "$PLUGIN_ROOT/hooks/security_reminder_hook.py" — Errno 2로 실패하는 대신 성공해야 합니다.

원본 Issue #5904