license-finder

Identify Python package licenses from PyPI metadata and repository LICENSE files.

36|76|Updated Dec 3, 2025
One-click install
npx skills add https://github.com/opendatahub-io/ai-helpers --skill license-finder
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: license-finder
Source: https://github.com/opendatahub-io/ai-helpers/tree/main/claude-plugins/python-packaging/skills/license-finder
Command: npx skills add https://github.com/opendatahub-io/ai-helpers --skill license-finder

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

This Skill deterministically finds a Python package’s license by first inspecting PyPI metadata, and if needed, guiding a repository-based search to locate LICENSE files.

Core Features & Use Cases

  • PyPI metadata check for license_expression or license fields
  • Fallback to repository LICENSE files via shallow cloning
  • License reporting to support compliance assessments

Quick Start

Run: ./scripts/find_license.py <package-name> [version]

Frequently Asked Questions about license-finder

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the license for a Python package from PyPI?

This Skill queries PyPI metadata to locate license_expression or license fields for any Python package. If PyPI lacks license data, it falls back to searching LICENSE files in the package's source repository via shallow cloning, ensuring you always get a deterministic result.

Can I check licenses for Python packages without explicit metadata?

Yes. The Skill handles packages with missing or incomplete license metadata by automatically inspecting the repository for LICENSE files. This ensures compliance assessments work even when PyPI records are sparse or absent.

How do I ensure Python packaging compliance across my dependencies?

Run the Skill against your package names to systematically identify licenses from PyPI and repositories. Results include SPDX license_expression parsing and fallback repository URLs, giving you the data needed to audit and report compliance.

What happens if a Python package has no license information anywhere?

The Skill reports missing data gracefully and provides the repository URL so you can manually inspect licensing or contact the maintainer. This prevents silent failures in compliance workflows.

Does this work with packages that use legacy license fields instead of SPDX?

Yes. The Skill parses both SPDX license_expression and legacy license fields from PyPI metadata, then resolves to LICENSE files in the repository if needed, supporting all standard Python packaging conventions.