commercial-license-skill
v0.3.3
Published
Agent Skills-compatible commercial-safe license scanner and replacement recommender for Claude Code, Codex, OpenClaw, Hermes, Gemini CLI, and GitHub Copilot.
Maintainers
Readme
🧼 commercial-license-skill
Commercial-safe dependency triage & permissive recommendations as a portable Agent Skill and CLI.
🇺🇸 English
commercial-license-skill scans your project dependencies for copyleft or restrictive licenses (like GPL, AGPL, SSPL, etc.) and suggests commercial-safe permissive alternatives (such as MIT, Apache-2.0, or BSD). It is designed to run both as a standard npm CLI tool, a Model Context Protocol (MCP) server, and a portable Agent Skill for AI coding assistants.
[!WARNING] DISCLAIMER: NOT LEGAL ADVICE The evaluations, reports, and recommendations generated by this tool are engineering triage aids designed for informational purposes. They do not constitute formal legal advice. Software licenses and compliance obligations depend heavily on your distribution model, linking mechanism, and specific modifications. You should consult a qualified legal professional or licensing counsel before making final release decisions.
[!NOTE] This project is designed as a zero-dependency library. It uses only Node.js native APIs for speed, security, and lightweight installation footprints.
🛡️ Why Verify Commercial Licenses?

In commercial software development, dependency license compliance is not optional—it is critical. Introducing strong copyleft licenses (like GPL or AGPL) into a proprietary codebase can trigger viral disclosure obligations, forcing you to release your proprietary source code to the public.
To prevent these business-critical legal risks, it is vital to detect copyleft licenses early and actively substitute them with commercial-safe, permissive alternatives (such as MIT, Apache-2.0, or BSD). commercial-license-skill shields your software supply chain by automating this triage, giving developers the visibility they need to keep codebases legally secure.
📦 Installation
To install the CLI globally:
npm install -g commercial-license-skillTo register as a portable Agent Skill interactively (Claude Code, OpenAI Codex, Gemini CLI, etc.):
npx commercial-license-skill install🔍 Usage
To scan your project for copyleft license risks and discover permissive alternatives:
npx commercial-license-skill scan
Alias: leechshield
leechshield is a shorter command alias for commercial-license-skill. Named after its ability to shield your codebase from viral copyleft licenses (like GPL/AGPL "tivoization" or source disclosure obligations).
leechshield scan .
# Equivalent to: commercial-license-skill scan .⚙️ CLI Reference
scan [path]
Scans the dependencies under the target path.
| Flag | Default | Description |
| :--- | :--- | :--- |
| --format | human | Output format: human | json | sarif |
| --output | stdout | Writes the report directly to a file |
| --include-dev | false | Include development dependencies in the scan |
| --fail-on | null | Exit with code 2 if any risk meets/exceeds: review | high | critical |
| --ignore | null | Comma-separated list of package names to ignore |
| --no-snippets | false | Exclude code snippet lines from the output for privacy/security |
| --max-snippet-length | 240 | Maximum character length of a code snippet |
recommend <package>
Recommends permissive alternatives for a specific package.
| Flag | Default | Description |
| :--- | :--- | :--- |
| --online | false | Dynamically queries the npm registry to find alternatives |
| --json | false | Outputs the recommendations in JSON format |
mcp
Starts a stdio-based MCP server for Claude Desktop or Claude Code integration. Exposes a path allowlist that defaults to the current working directory, expandable with --allow-root <path>.
install
Launches the interactive installer to register the skill. Supports timestamped .bak backups when overwriting target skills to preserve user edits.
📊 Supported Ecosystems & Status
| Ecosystem | Manifest File(s) | Status |
| :--- | :--- | :--- |
| Node.js (npm) | package.json / package-lock.json | ✅ Supported |
| Python | requirements.txt / requirements-dev.txt | ✅ Supported |
| Rust (Cargo) | Cargo.lock | ✅ Supported |
| Go | go.mod | ✅ Supported |
| Node.js (pnpm) | pnpm-lock.yaml | 🚧 Planned |
| Node.js (yarn) | yarn.lock | 🚧 Planned |
| Python (uv) | uv.lock | 🚧 Planned |
📄 Output Examples
human (default)
CommercialLicenseSkill — commercial-safe dependency triage
Root: /path/to/project
Summary: 142 dependencies | critical 1 | high 1 | review 0 | allow 140
✗ [CRITICAL] npm:[email protected] — GPL-3.0
scope: runtime; source: package.json
Strong copyleft license. Requires source-disclosure of combined works.
usage: 2 source reference(s) found
- src/index.js:5 [import] import _ from 'lodash-gpl';
alternatives:
- lodash (MIT) — Drop-in replacement with permissive terms.json
{
"schemaVersion": "1.0",
"tool": "commercial-license-skill",
"generatedAt": "2026-06-04T12:00:00.000Z",
"summary": {
"total": 1,
"allow": 0,
"review": 0,
"high": 0,
"critical": 1
},
"dependencies": [
{
"ecosystem": "npm",
"name": "lodash-gpl",
"version": "4.17.21",
"license": "GPL-3.0",
"assessment": {
"level": "critical",
"reason": "Strong copyleft license. Requires source-disclosure of combined works."
},
"recommendations": [
{
"name": "lodash",
"license": "MIT",
"note": "Drop-in replacement with permissive terms."
}
]
}
]
}sarif (CI/CD integration)
{
"version": "2.1.0",
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"runs": [
{
"tool": {
"driver": {
"name": "commercial-license-skill",
"version": "0.3.2",
"informationUri": "https://github.com/Aminoragit/commercial-license-skill"
}
},
"results": [
{
"ruleId": "license-critical",
"level": "error",
"message": {
"text": "[email protected]: GPL-3.0. Strong copyleft license. Requires source-disclosure of combined works."
}
}
]
}
]
}🚀 CI/CD Integration
You can easily integrate commercial-license-skill into your GitHub Actions pipeline to block pull requests introducing copyleft licenses.
# .github/workflows/license-check.yml
name: License Compliance Check
on: [push, pull_request]
jobs:
license-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Scan Dependencies
run: npx commercial-license-skill scan . --format sarif --output results.sarif --fail-on high
- name: Upload SARIF report
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif🛠️ MCP Server Integration
To register commercial-license-skill as an MCP server in your claude_desktop_config.json:
{
"mcpServers": {
"commercial-license-skill": {
"command": "npx",
"args": ["-y", "commercial-license-skill", "mcp"]
}
}
}For more details, see docs/MCP_SETUP.ko.md.
🤝 Contributing
We welcome contributions! Please make sure to:
- Follow the Clean-room replacement rule (do not copy copyleft implementation code).
- Write automated tests for new resolvers.
- Keep implementation zero-dependency.
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🇰🇷 한국어
commercial-license-skill은 소프트웨어 프로젝트의 의존성 목록을 분석하여 카피레프트 및 상업적 사용이 제한된 라이선스(GPL, AGPL, SSPL 등)를 탐지하고, 상업적으로 안전한 허용형 대체재(MIT, Apache-2.0, BSD 등)를 제안합니다. 이 도구는 npm CLI, Model Context Protocol (MCP) 서버, 그리고 AI 코딩 어시스턴트를 위한 **휴대용 에이전트 스킬 (Agent Skill)**로 동작합니다.
[!WARNING] 면책 조항: 법률 자문 아님 이 도구에서 제공하는 라이선스 평가, 보고서 및 권고 사항은 정보 제공 목적의 엔지니어링 스크리닝(트리아지) 보조 자료일 뿐이며, 공식적인 법률 자문이 아닙니다. 오픈소스 라이선스 준수 의무와 권리는 소프트웨어 배포 방식, 링킹 기법, 소스 코드 수정 여부에 따라 다르게 해석될 수 있습니다. 최종 릴리스 결정을 내리기 전에 반드시 법률 전문가 또는 라이선스 담당 부서의 자문을 받으시기 바랍니다.
[!NOTE] 이 프로젝트는 Zero-Dependency로 설계되었습니다. 속도, 보안성 및 가벼운 설치 용량을 위해 Node.js의 내장 API만을 활용합니다.
🛡️ 상업용 라이선스 검증의 필요성

상업적 소프트웨어 개발 환경에서 의존성 패키지의 라이선스 준수(Compliance)는 비즈니스의 생존과 직결된 필수 요소입니다. 만약 개발 중인 독점(Proprietary) 소스코드에 강한 카피레프트 라이선스(GPL, AGPL 등)가 의존성으로 유입될 경우, 의도치 않게 전체 소스코드를 대중에 강제로 공개해야 하는 치명적인 법적/경영적 리스크를 초래할 수 있습니다.
이러한 재앙을 미연에 방지하기 위해서는 프로젝트 기획 및 개발 초기 단계부터 카피레프트 라이선스를 탐지하고, 상업적 사용이 보장되는 허용형 대체재(MIT, Apache-2.0, BSD 등)로 전환해야만 안전합니다. commercial-license-skill은 의존성 스캔과 대체재 추천을 자동화하여 공급망 리스크를 완벽하게 차단하고 안전한 상용 배포 환경을 지원합니다.
📦 설치 방법 (Installation)
CLI 도구를 전역 설치하려면:
npm install -g commercial-license-skill대화형 마법사를 통해 에이전트 스킬로 등록하려면 (Claude Code, OpenAI Codex, Gemini CLI, GitHub Copilot 등 지원):
npx commercial-license-skill install🔍 사용 방법 (Usage)
프로젝트 내 카피레프트 라이선스 위험성을 검사하고 허용형 대체재를 검색하려면:
npx commercial-license-skill scan
별칭 (Alias): leechshield
leechshield는 commercial-license-skill을 보다 간편하게 입력할 수 있는 단축 별칭입니다. GPL/AGPL의 전염성 독소 조항 및 소스 코드 공개 의무로부터 내 코드를 차단(shield)하여 보호한다는 의미에서 명명되었습니다.
leechshield scan .
# commercial-license-skill scan . 명령과 동일하게 동작합니다.⚙️ CLI 레퍼런스 (CLI Reference)
scan [path]
지정한 경로 이하의 의존성 라이선스를 스캔합니다.
| 플래그 | 기본값 | 설명 |
| :--- | :--- | :--- |
| --format | human | 출력 형식: human | json | sarif |
| --output | stdout | 스캔 보고서를 파일로 직접 저장 |
| --include-dev | false | 개발 의존성(devDependencies)도 함께 스캔할지 여부 |
| --fail-on | null | 위험도가 지정 수준 이상일 경우 프로세스 종료 코드 2 반환: review | high | critical |
| --ignore | null | 스캔에서 제외할 패키지 이름을 쉼표(,)로 구분하여 입력 |
| --no-snippets | false | 개인정보 보호 및 보안을 위해 보고서 출력에서 실제 소스코드 스니펫 라인을 제외함 |
| --max-snippet-length | 240 | 스니펫 코드 라인의 최대 노출 글자 길이 제한 |
recommend <package>
지정한 패키지의 허용형 대체재를 추천합니다.
| 플래그 | 기본값 | 설명 |
| :--- | :--- | :--- |
| --online | false | npm 레지스트리를 실시간으로 쿼리하여 추천 후보군을 탐색 |
| --json | false | 추천 결과를 JSON 형태로 출력 |
mcp
Claude Desktop 및 Claude Code 연동을 위한 stdio 기반 MCP 서버를 실행합니다. 기본값으로 현재 디렉토리 이하 스캔만 허용하는 경로 가드가 내장되어 있으며, --allow-root <path> 옵션으로 스캔 허용 범위를 확장할 수 있습니다.
install
에이전트 스킬 등록을 위한 대화형 설치 프로그램을 시작합니다. 기존에 설치된 동일 스킬을 덮어쓰기 전에 타임스탬프 기반 백업 폴더(.bak)를 자동 생성하여 사용자 편집본을 보호합니다.
📊 지원 에코시스템 및 개발 상태
| 에코시스템 | 분석 대상 파일 | 상태 |
| :--- | :--- | :--- |
| Node.js (npm) | package.json / package-lock.json | ✅ 지원함 |
| Python | requirements.txt / requirements-dev.txt | ✅ 지원함 |
| Rust (Cargo) | Cargo.lock | ✅ 지원함 |
| Go | go.mod | ✅ 지원함 |
| Node.js (pnpm) | pnpm-lock.yaml | 🚧 예정 |
| Node.js (yarn) | yarn.lock | 🚧 예정 |
| Python (uv) | uv.lock | 🚧 예정 |
📄 출력 형식 예시 (Output Examples)
human (기본값)
CommercialLicenseSkill — commercial-safe dependency triage
Root: /path/to/project
Summary: 142 dependencies | critical 1 | high 1 | review 0 | allow 140
✗ [CRITICAL] npm:[email protected] — GPL-3.0
scope: runtime; source: package.json
Strong copyleft license. Requires source-disclosure of combined works.
usage: 2 source reference(s) found
- src/index.js:5 [import] import _ from 'lodash-gpl';
alternatives:
- lodash (MIT) — Drop-in replacement with permissive terms.json
{
"schemaVersion": "1.0",
"tool": "commercial-license-skill",
"generatedAt": "2026-06-04T12:00:00.000Z",
"summary": {
"total": 1,
"allow": 0,
"review": 0,
"high": 0,
"critical": 1
},
"dependencies": [
{
"ecosystem": "npm",
"name": "lodash-gpl",
"version": "4.17.21",
"license": "GPL-3.0",
"assessment": {
"level": "critical",
"reason": "Strong copyleft license. Requires source-disclosure of combined works."
},
"recommendations": [
{
"name": "lodash",
"license": "MIT",
"note": "Drop-in replacement with permissive terms."
}
]
}
]
}sarif (CI/CD 통합용)
{
"version": "2.1.0",
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"runs": [
{
"tool": {
"driver": {
"name": "commercial-license-skill",
"version": "0.3.2",
"informationUri": "https://github.com/Aminoragit/commercial-license-skill"
}
},
"results": [
{
"ruleId": "license-critical",
"level": "error",
"message": {
"text": "[email protected]: GPL-3.0. Strong copyleft license. Requires source-disclosure of combined works."
}
}
]
}
]
}🚀 CI/CD 파이프라인 연동
GitHub Actions 워크플로우에 commercial-license-skill을 통합하여, 카피레프트 라이선스를 포함한 풀 리퀘스트를 차단할 수 있습니다.
# .github/workflows/license-check.yml
name: License Compliance Check
on: [push, pull_request]
jobs:
license-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Scan Dependencies
run: npx commercial-license-skill scan . --format sarif --output results.sarif --fail-on high
- name: Upload SARIF report
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif🛠️ MCP 서버 설정
Claude Desktop의 claude_desktop_config.json에 commercial-license-skill을 MCP 서버로 연동하는 예시입니다:
{
"mcpServers": {
"commercial-license-skill": {
"command": "npx",
"args": ["-y", "commercial-license-skill", "mcp"]
}
}
}보다 자세한 정보는 docs/MCP_SETUP.ko.md 문서를 참고하세요.
🤝 기여 안내 (Contributing)
본 프로젝트는 커뮤니티 기여를 적극 환영합니다. 아래 규칙을 준수해 주세요:
- Clean-room 재작성 규칙을 준수해 주세요. (제한된 소스 코드를 복사하거나 역엔지니어링하여 작성하지 마세요.)
- 새로운 리졸버를 개발하는 경우 자동화 테스트 코드를 추가해야 합니다.
- 외부 라이브러리 의존성 없이 순수 Node.js 기능만 활용해 주십시오.
📄 라이선스 (License)
이 프로젝트는 Apache License 2.0 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 확인하십시오.
