api-diff

v1.0.0

Compare two OpenAPI 3.x or Swagger 2.0 specs and generate a changelog of breaking and non-breaking changes. Detect removed endpoints, new required parameters...

0· 96·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for charlie-morrison/api-diff.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "api-diff" (charlie-morrison/api-diff) from ClawHub.
Skill page: https://clawhub.ai/charlie-morrison/api-diff
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install api-diff

ClawHub CLI

Package manager switcher

npx clawhub@latest install api-diff
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the included python script's behavior: it reads two local specs, normalizes them, and emits a changelog of breaking/non-breaking changes. Required binaries/env/config are none, which is proportionate. Minor mismatch: SKILL.md claims YAML support and 'stdlib only' but the script explicitly raises an error for YAML parsing (asks to convert to JSON or install PyYAML), so YAML handling is not implemented without an extra dependency.
Instruction Scope
SKILL.md tells the agent to run python3 scripts/api_diff.py old new (and offers formats/CI flags) which matches the shipped script. The instructions do not ask the agent to read unrelated files, access environment variables, or transmit data externally. The only scope issue is the documentation/behavior mismatch around YAML and external dependency requirements: the script will exit if given YAML unless PyYAML is installed.
Install Mechanism
There is no install spec (instruction-only with a bundled script). This is low risk: nothing is downloaded or written during install. Running the tool executes the included Python file locally.
Credentials
The skill requires no environment variables, credentials, or config paths. The script reads files specified on the command line and uses standard library modules only; this is proportionate to its purpose.
Persistence & Privilege
The skill is not always-on and does not request elevated or persistent privileges. It does not modify other skills or agent configs. Autonomous invocation is allowed by default but not exceptional here and does not combine with other red flags.
Assessment
This appears to be a straightforward local API diff tool: the Python script reads two spec files and prints a changelog — no network access or secrets are requested. Two things to note before installing/running: (1) SKILL.md claims YAML is supported and 'no external dependencies', but the script actually raises an error for YAML and suggests installing PyYAML or converting to JSON — so provide JSON inputs or install PyYAML if you need YAML support; (2) the tool executes code from a bundled script, so review the script (you have it) and run it on non-sensitive inputs or in an isolated environment if you are concerned about data leakage. If you want higher assurance, request the remainder of the script (it was truncated in the package listing) to verify there are no unexpected network or subprocess calls.

Like a lobster shell, security has layers — review code before you run it.

latestvk970pm89psdc5axs2cc6e2my6n84n367
96downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

API Diff — Changelog Generator

Compare two OpenAPI/Swagger specs and generate a detailed changelog with breaking change detection.

Quick Diff

python3 scripts/api_diff.py old-spec.json new-spec.json

Output Formats

# Text (default)
python3 scripts/api_diff.py old.json new.json

# JSON
python3 scripts/api_diff.py old.json new.json --format json

# Markdown
python3 scripts/api_diff.py old.json new.json --format markdown

CI/CD Integration

# Fail if breaking changes found
python3 scripts/api_diff.py old.json new.json --fail-on-breaking
echo $?  # 0 = no breaking, 1 = breaking found

# Show only breaking changes
python3 scripts/api_diff.py old.json new.json --breaking-only

What It Detects

Endpoint Changes

ChangeBreaking?Description
Endpoint removedYesPath+method no longer exists
Endpoint addedNoNew path+method
Endpoint deprecatedNoMarked as deprecated

Parameter Changes

ChangeBreaking?Description
Required param addedYesNew mandatory parameter
Optional param addedNoNew optional parameter
Param removed (required)YesRequired parameter removed
Param type changedYesData type changed
Param became requiredYesOptional → required
Param became optionalNoRequired → optional

Schema Changes

ChangeBreaking?Description
Schema removedYesDefinition removed
Required property addedYesNew mandatory field
Optional property addedNoNew optional field
Property removedYesField removed
Property type changedYesData type changed
Enum value removedYesAllowed value removed
Enum value addedNoNew allowed value

Other Changes

ChangeBreaking?Description
Response code removedYesHTTP status no longer returned
Response code addedNoNew HTTP status
Security changedYesAuth requirements changed
Server URLs changedNoBase URL changed
API version changedNoInfo version updated

Requirements

  • Python 3.6+
  • No external dependencies (stdlib only)
  • Input: JSON format OpenAPI 3.x or Swagger 2.0 specs

Comments

Loading comments...