{"owner":"python-pillow","repo":"Pillow","hasSkills":true,"totalSkillsCount":4,"totalTokensCount":1693,"categories":["root-instruction","mcp-config","marketplace","plugin-manifest"],"hasMcp":true,"mcpConfig":{"mcpServers":{"Pillow":{"command":"npx","args":["-y","@modelcontextprotocol/server-Pillow"]}}},"found":["AGENTS.md",".cursor/mcp.json",".claude-plugin/marketplace.json",".claude-plugin/plugin.json"],"skills":{"AGENTS.md":"# Agent Instructions for Pillow\n\n## What this project is\n\nPillow is the Python Imaging Library fork — a Python 3.11+ library for opening,\nmanipulating, and saving many image file formats. It is a mix of Python and C:\npure Python format plugins live in `src/PIL/`, and eight C extension modules\n(`_imaging`, `_imagingcms`, `_imagingft`, `_imagingmath`, `_imagingmorph`,\n`_imagingtk`, `_avif`, `_webp`) are compiled at install time via `setup.py`.\n\n## Project layout\n\n```\nsrc/PIL/                 Python source and C extension stubs (.pyi)\nsrc/thirdparty/          Vendored C libraries (raqm, fribidi-shim, pythoncapi_compat)\nTests/                   pytest test suite; Tests/helper.py has shared utilities\ndocs/                    Sphinx documentation (RST)\ndocs/releasenotes/       Per-release changelog entries\nsetup.py                 C extension build configuration\n_custom_build/           Custom setuptools build backend\nsrc/PIL/_version.py      Version number (PEP 440)\npyproject.toml           Project metadata and optional dependency groups\n.pre-commit-config.yaml  All linting and formatting hooks\n```\n\n## Install\n\n```bash\npython3 -m pip install -e \".[tests]\"\n```\n\nThe C extensions are compiled during install. Native libraries (libjpeg,\nlibpng, libtiff, libwebp, freetype2, littlecms2, etc.) must already be present\non the system.\n\n## Test\n\n```bash\npython3 selftest.py               # quick sanity check\npython3 -m pytest Tests/          # full test suite\npython3 -m pytest Tests/ -n auto  # parallel (requires pytest-xdist)\n```\n\nAlways run `python3 selftest.py` first. New features and bug fixes must include\ntests. Test files follow the naming pattern `Tests/test_*.py`.\n\n## Lint and format\n\n```bash\nmake lint        # runs tox -e lint → pre-commit (black, ruff, clang-format,\n                 #   bandit, sphinx-lint, pyproject-fmt, and more)\nmake lint-fix    # auto-fixes black and ruff violations\n```\n\nOr run pre-commit directly:\n\n```bash\npre-commit run --all-files\n```\n\nAll hooks must pass before a PR can be merged. Separate reformatting commits\nfrom functional commits.\n\n## Type checking\n\n```bash\npython3 -m tox -e mypy\n```\n\n## Documentation\n\nDocs use Sphinx/RST. Build locally with `make doc`. Release notes go in\n`docs/releasenotes/<version>.rst` using the existing section structure\n(Security, Backwards incompatible changes, Deprecations, API changes, API\nadditions, Other changes). Use the `:cve:` RST role for CVE references.\nInclude a release note entry for any user-visible change.\n\n## Pillow-specific guidance\n\nUse `python3` and `python3 -m pip install` — never `python` or bare `pip`.\n\n`Image.open()` takes a `formats=` argument (list/tuple of format IDs to\nallowlist). There is no `format=` parameter.\n\n`Image.OPEN` is an internal format registry. Do not recommend that users\nmutate it as a security or configuration mechanism.\n\n`pybind11` is a build-time-only dependency used for parallel C compilation,\nnot for C++/Python bindings.\n\nUse fully qualified exception names: `Image.DecompressionBombError` and\n`Image.DecompressionBombWarning`, not the bare class names.\n\nDo not embed specific numeric values for thresholds like `MAX_IMAGE_PIXELS` —\nthey may be changed by the user at runtime. Reference the named constant instead.\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/plugin.json)"},"files":{"AGENTS.md":"# Agent Instructions for Pillow\n\n## What this project is\n\nPillow is the Python Imaging Library fork — a Python 3.11+ library for opening,\nmanipulating, and saving many image file formats. It is a mix of Python and C:\npure Python format plugins live in `src/PIL/`, and eight C extension modules\n(`_imaging`, `_imagingcms`, `_imagingft`, `_imagingmath`, `_imagingmorph`,\n`_imagingtk`, `_avif`, `_webp`) are compiled at install time via `setup.py`.\n\n## Project layout\n\n```\nsrc/PIL/                 Python source and C extension stubs (.pyi)\nsrc/thirdparty/          Vendored C libraries (raqm, fribidi-shim, pythoncapi_compat)\nTests/                   pytest test suite; Tests/helper.py has shared utilities\ndocs/                    Sphinx documentation (RST)\ndocs/releasenotes/       Per-release changelog entries\nsetup.py                 C extension build configuration\n_custom_build/           Custom setuptools build backend\nsrc/PIL/_version.py      Version number (PEP 440)\npyproject.toml           Project metadata and optional dependency groups\n.pre-commit-config.yaml  All linting and formatting hooks\n```\n\n## Install\n\n```bash\npython3 -m pip install -e \".[tests]\"\n```\n\nThe C extensions are compiled during install. Native libraries (libjpeg,\nlibpng, libtiff, libwebp, freetype2, littlecms2, etc.) must already be present\non the system.\n\n## Test\n\n```bash\npython3 selftest.py               # quick sanity check\npython3 -m pytest Tests/          # full test suite\npython3 -m pytest Tests/ -n auto  # parallel (requires pytest-xdist)\n```\n\nAlways run `python3 selftest.py` first. New features and bug fixes must include\ntests. Test files follow the naming pattern `Tests/test_*.py`.\n\n## Lint and format\n\n```bash\nmake lint        # runs tox -e lint → pre-commit (black, ruff, clang-format,\n                 #   bandit, sphinx-lint, pyproject-fmt, and more)\nmake lint-fix    # auto-fixes black and ruff violations\n```\n\nOr run pre-commit directly:\n\n```bash\npre-commit run --all-files\n```\n\nAll hooks must pass before a PR can be merged. Separate reformatting commits\nfrom functional commits.\n\n## Type checking\n\n```bash\npython3 -m tox -e mypy\n```\n\n## Documentation\n\nDocs use Sphinx/RST. Build locally with `make doc`. Release notes go in\n`docs/releasenotes/<version>.rst` using the existing section structure\n(Security, Backwards incompatible changes, Deprecations, API changes, API\nadditions, Other changes). Use the `:cve:` RST role for CVE references.\nInclude a release note entry for any user-visible change.\n\n## Pillow-specific guidance\n\nUse `python3` and `python3 -m pip install` — never `python` or bare `pip`.\n\n`Image.open()` takes a `formats=` argument (list/tuple of format IDs to\nallowlist). There is no `format=` parameter.\n\n`Image.OPEN` is an internal format registry. Do not recommend that users\nmutate it as a security or configuration mechanism.\n\n`pybind11` is a build-time-only dependency used for parallel C compilation,\nnot for C++/Python bindings.\n\nUse fully qualified exception names: `Image.DecompressionBombError` and\n`Image.DecompressionBombWarning`, not the bare class names.\n\nDo not embed specific numeric values for thresholds like `MAX_IMAGE_PIXELS` —\nthey may be changed by the user at runtime. Reference the named constant instead.\n",".cursor/mcp.json":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.cursor/mcp.json)",".claude-plugin/marketplace.json":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/marketplace.json)",".claude-plugin/plugin.json":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/plugin.json)"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# Agent Instructions for Pillow\n\n## What this project is\n\nPillow is the Python Imaging Library fork — a Python 3.11+ library for opening,\nmanipulating, and saving many image file formats. It is a mix of Python and C:\npure Python format plugins live in `src/PIL/`, and eight C extension modules\n(`_imaging`, `_imagingcms`, `_imagingft`, `_imagingmath`, `_imagingmorph`,\n`_imagingtk`, `_avif`, `_webp`) are compiled at install time via `setup.py`.\n\n## Project layout\n\n```\nsrc/PIL/                 Python source and C extension stubs (.pyi)\nsrc/thirdparty/          Vendored C libraries (raqm, fribidi-shim, pythoncapi_compat)\nTests/                   pytest test suite; Tests/helper.py has shared utilities\ndocs/                    Sphinx documentation (RST)\ndocs/releasenotes/       Per-release changelog entries\nsetup.py                 C extension build configuration\n_custom_build/           Custom setuptools build backend\nsrc/PIL/_version.py      Version number (PEP 440)\npyproject.toml           Project metadata and optional dependency groups\n.pre-commit-config.yaml  All linting and formatting hooks\n```\n\n## Install\n\n```bash\npython3 -m pip install -e \".[tests]\"\n```\n\nThe C extensions are compiled during install. Native libraries (libjpeg,\nlibpng, libtiff, libwebp, freetype2, littlecms2, etc.) must already be present\non the system.\n\n## Test\n\n```bash\npython3 selftest.py               # quick sanity check\npython3 -m pytest Tests/          # full test suite\npython3 -m pytest Tests/ -n auto  # parallel (requires pytest-xdist)\n```\n\nAlways run `python3 selftest.py` first. New features and bug fixes must include\ntests. Test files follow the naming pattern `Tests/test_*.py`.\n\n## Lint and format\n\n```bash\nmake lint        # runs tox -e lint → pre-commit (black, ruff, clang-format,\n                 #   bandit, sphinx-lint, pyproject-fmt, and more)\nmake lint-fix    # auto-fixes black and ruff violations\n```\n\nOr run pre-commit directly:\n\n```bash\npre-commit run --all-files\n```\n\nAll hooks must pass before a PR can be merged. Separate reformatting commits\nfrom functional commits.\n\n## Type checking\n\n```bash\npython3 -m tox -e mypy\n```\n\n## Documentation\n\nDocs use Sphinx/RST. Build locally with `make doc`. Release notes go in\n`docs/releasenotes/<version>.rst` using the existing section structure\n(Security, Backwards incompatible changes, Deprecations, API changes, API\nadditions, Other changes). Use the `:cve:` RST role for CVE references.\nInclude a release note entry for any user-visible change.\n\n## Pillow-specific guidance\n\nUse `python3` and `python3 -m pip install` — never `python` or bare `pip`.\n\n`Image.open()` takes a `formats=` argument (list/tuple of format IDs to\nallowlist). There is no `format=` parameter.\n\n`Image.OPEN` is an internal format registry. Do not recommend that users\nmutate it as a security or configuration mechanism.\n\n`pybind11` is a build-time-only dependency used for parallel C compilation,\nnot for C++/Python bindings.\n\nUse fully qualified exception names: `Image.DecompressionBombError` and\n`Image.DecompressionBombWarning`, not the bare class names.\n\nDo not embed specific numeric values for thresholds like `MAX_IMAGE_PIXELS` —\nthey may be changed by the user at runtime. Reference the named constant instead.\n","isInternal":false,"tokens":793,"sizeBytes":3265},{"name":"marketplace.json","path":".claude-plugin/marketplace.json","rawUrl":"https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/marketplace.json","title":"Claude Plugin Marketplace Catalog","category":"marketplace","format":"json","content":"# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/marketplace.json)","tokens":300,"sizeBytes":199},{"name":"plugin.json","path":".claude-plugin/plugin.json","rawUrl":"https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/plugin.json","title":"claude-plugin Plugin Manifest","category":"plugin-manifest","format":"json","content":"# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/plugin.json)","tokens":300,"sizeBytes":185},{"name":"mcp.json","path":".cursor/mcp.json","rawUrl":"https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.cursor/mcp.json","title":"Model Context Protocol (MCP) Configuration","category":"mcp-config","format":"json","content":"# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.cursor/mcp.json)","tokens":300,"sizeBytes":178}],"systemPromptSnippet":"<yakaai_skills repo=\"python-pillow/Pillow\">\n<!-- File: AGENTS.md (Tokens: ~793 | Category: root-instruction) -->\n# Agent Instructions for Pillow\n\n## What this project is\n\nPillow is the Python Imaging Library fork — a Python 3.11+ library for opening,\nmanipulating, and saving many image file formats. It is a mix of Python and C:\npure Python format plugins live in `src/PIL/`, and eight C extension modules\n(`_imaging`, `_imagingcms`, `_imagingft`, `_imagingmath`, `_imagingmorph`,\n`_imagingtk`, `_avif`, `_webp`) are compiled at install time via `setup.py`.\n\n## Project layout\n\n```\nsrc/PIL/                 Python source and C extension stubs (.pyi)\nsrc/thirdparty/          Vendored C libraries (raqm, fribidi-shim, pythoncapi_compat)\nTests/                   pytest test suite; Tests/helper.py has shared utilities\ndocs/                    Sphinx documentation (RST)\ndocs/releasenotes/       Per-release changelog entries\nsetup.py                 C extension build configuration\n_custom_build/           Custom setuptools build backend\nsrc/PIL/_version.py      Version number (PEP 440)\npyproject.toml           Project metadata and optional dependency groups\n.pre-commit-config.yaml  All linting and formatting hooks\n```\n\n## Install\n\n```bash\npython3 -m pip install -e \".[tests]\"\n```\n\nThe C extensions are compiled during install. Native libraries (libjpeg,\nlibpng, libtiff, libwebp, freetype2, littlecms2, etc.) must already be present\non the system.\n\n## Test\n\n```bash\npython3 selftest.py               # quick sanity check\npython3 -m pytest Tests/          # full test suite\npython3 -m pytest Tests/ -n auto  # parallel (requires pytest-xdist)\n```\n\nAlways run `python3 selftest.py` first. New features and bug fixes must include\ntests. Test files follow the naming pattern `Tests/test_*.py`.\n\n## Lint and format\n\n```bash\nmake lint        # runs tox -e lint → pre-commit (black, ruff, clang-format,\n                 #   bandit, sphinx-lint, pyproject-fmt, and more)\nmake lint-fix    # auto-fixes black and ruff violations\n```\n\nOr run pre-commit directly:\n\n```bash\npre-commit run --all-files\n```\n\nAll hooks must pass before a PR can be merged. Separate reformatting commits\nfrom functional commits.\n\n## Type checking\n\n```bash\npython3 -m tox -e mypy\n```\n\n## Documentation\n\nDocs use Sphinx/RST. Build locally with `make doc`. Release notes go in\n`docs/releasenotes/<version>.rst` using the existing section structure\n(Security, Backwards incompatible changes, Deprecations, API changes, API\nadditions, Other changes). Use the `:cve:` RST role for CVE references.\nInclude a release note entry for any user-visible change.\n\n## Pillow-specific guidance\n\nUse `python3` and `python3 -m pip install` — never `python` or bare `pip`.\n\n`Image.open()` takes a `formats=` argument (list/tuple of format IDs to\nallowlist). There is no `format=` parameter.\n\n`Image.OPEN` is an internal format registry. Do not recommend that users\nmutate it as a security or configuration mechanism.\n\n`pybind11` is a build-time-only dependency used for parallel C compilation,\nnot for C++/Python bindings.\n\nUse fully qualified exception names: `Image.DecompressionBombError` and\n`Image.DecompressionBombWarning`, not the bare class names.\n\nDo not embed specific numeric values for thresholds like `MAX_IMAGE_PIXELS` —\nthey may be changed by the user at runtime. Reference the named constant instead.\n\n<!-- File: .claude-plugin/marketplace.json (Tokens: ~300 | Category: marketplace) -->\n# Claude Plugin Marketplace Catalog\n\nPath: `.claude-plugin/marketplace.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/marketplace.json)\n\n<!-- File: .claude-plugin/plugin.json (Tokens: ~300 | Category: plugin-manifest) -->\n# claude-plugin Plugin Manifest\n\nPath: `.claude-plugin/plugin.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.claude-plugin/plugin.json)\n\n<!-- File: .cursor/mcp.json (Tokens: ~300 | Category: mcp-config) -->\n# Model Context Protocol (MCP) Configuration\n\nPath: `.cursor/mcp.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/python-pillow/Pillow/HEAD/.cursor/mcp.json)\n</yakaai_skills>"}