⚡ API Contract Guardian
Monitors OpenAPI schema diffs across git branches, detects breaking changes, generates migration guides, and gates CI pipelines on contract violations. Works with OpenAPI 3.0 and 3.1 specs in YAML or JSON.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/api-contract-guardian.git
Requires Python 3.9+
- Breaking change detection
- Auto-generated migration guide
- Git branch diff comparison
- CI pipeline integration
- JSON + YAML spec support
- Configurable rule severity
Compare two spec files
api-contract-guardian check spec-v1.yaml spec-v2.yaml
Compare git branches
api-contract-guardian check --base main --head feature-api-v2 openapi.yaml
Generate migration guide
api-contract-guardian migrate spec-v1.yaml spec-v2.yaml --output MIGRATION.md
Why you need it: API breaking changes in production cost teams hours of debugging and incident response. ACG catches them in CI before they merge — the same way a linter catches syntax errors before runtime.
↻ json2sql
Convert JSON files and datasets to SQL INSERT statements instantly. Supports PostgreSQL, MySQL, SQLite, and generic SQL dialects with automatic type inference — no schema definition required.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/json2sql.git
Requires Python 3.9+
- 4 SQL dialects (pg, mysql, sqlite, generic)
- Automatic type inference
- Large file streaming support
- Nested JSON flattening
- Pretty-print output
- Stdin pipe support
Basic conversion
json2sql convert data.json
Specify output dialect
json2sql convert data.json --dialect postgres
json2sql convert data.json --dialect mysql
json2sql convert data.json --dialect sqlite
Pipe from stdin
curl -s https://api.example.com/users | json2sql convert --dialect postgres
Why you need it: Writing SQL seed data by hand is error-prone and tedious. json2sql turns hours of manual INSERT statement construction into a one-liner — especially useful for ETL pipelines, database seeding, and test data generation.
☁ DeployDiff
Preview infrastructure changes with human-readable diffs, cost impact estimation, and pre-generated rollback commands — before you hit deploy. Supports Terraform plan JSON, CloudFormation change sets, and Pulumi previews.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/deploydiff.git
Requires Python 3.9+
- Terraform plan analysis
- CloudFormation change sets
- Pulumi preview support
- Cost impact estimation
- Auto-generated rollback commands
- Blast radius visualization
Preview infrastructure changes
deploydiff preview --tf plan.json
CloudFormation change set
deploydiff preview --cf change-set.json
Pulumi diff
deploydiff preview --pulumi pulumi-preview.json
Why you need it: Every infrastructure change carries risk — wrong config, unexpected cost, unreachable state. DeployDiff gives you a clear preview before your IaC tool applies it, with rollback commands pre-generated so recovery isn't panic-mode.
⌘ ConfigDrift
Catch config drift before it breaks production. Compare configs across dev, staging, and prod — flag missing keys, deprecated values, value mismatches, and compliance issues instantly. Supports YAML, JSON, TOML, and .env files.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/configdrift.git
Requires Python 3.9+
- YAML / JSON / TOML / .env support
- Multi-environment comparison
- Missing key detection
- Value mismatch highlighting
- Deprecated value flagging
- Table, JSON, and silent output modes
Compare two config files
configdrift check dev.yaml prod.yaml
Environment-style comparison
configdrift check --baseline dev --target prod configs/
JSON output for CI
configdrift check dev.yaml prod.yaml --output json
Why you need it: Config drift is the silent killer of deployments — a missing key in prod that exists in staging, a deprecated value that's still in dev. ConfigDrift automates the comparison so you catch it in CI, not in an incident post-mortem.
👻 APIGhost
Turn any OpenAPI 3.0/3.1 spec into a running mock API server with realistic fake data, scenario-based response overrides, and VCR-style cassette recording/replay. Perfect for frontend teams, integration testing, and contract-first development.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/apighost.git
Requires Python 3.9+
- OpenAPI 3.0/3.1 spec → mock server in one command
- Realistic fake data generation from schemas
- Scenario-based response overrides (success, error, timeout)
- VCR cassette record & replay for deterministic tests
- Remote spec support (URLs, not just local files)
Start a mock server from a spec
apighost serve petstore.yaml
Record real interactions & replay deterministically
apighost record petstore.yaml --output my-cassette
apighost replay my-cassette
Why you need it: Frontend teams shouldn't wait for backend APIs. APIGhost spins up a working mock from your OpenAPI spec instantly — with realistic data, error scenarios, and record/replay for integration tests. Ship UI against a stable mock, swap in the real API when ready.
🔑 APIAuth
Generate, import, verify, rotate, and revoke API keys and JWTs from the terminal. Encrypted local keystore with AES-256-GCM, CI/CD export formats, and audit trail for compliance. No more secrets scattered in .env files.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/apiauth.git
Requires Python 3.9+
- Generate API keys & JWTs with expiry & custom claims
- Encrypted keystore (AES-256-GCM, master key in ~/.apiauth/)
- Verify keys against stored hashes — no plaintext stored
- Safe rotation — previous values hashed out
- Instant revocation for compromised keys
- Export as env, dotenv, JSON, or GitHub Actions format
- Audit trail: expired, expiring, revoked key detection
Generate and manage keys
apiauth generate api-key --name "Gateway Key" --service api-gateway --expiry-days 90
apiauth list --service api-gateway
apiauth rotate <key-id>
Export for CI/CD pipelines
apiauth export --format github-actions --service api-gateway
Why you need it: API keys in .env files are a security incident waiting to happen. APIAuth gives you a proper keystore — encrypted, auditable, rotatable — with one-command CI/CD export. Stop copying secrets into config files and start managing them like infrastructure.
🛡 Envault
Compare .env files across environments, sync variables with conflict resolution, and rotate secrets with auto-generated cryptographically secure values. Integrates with AWS SSM, HashiCorp Vault, Doppler, and 1Password — one tool for all your secret stores.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/envault.git
Requires Python 3.10+
- Diff .env files across dev, staging, prod
- Sync with conflict resolution strategies (source wins, target wins)
- Smart secret rotation (DB passwords, API keys, JWT secrets, webhook keys)
- AWS SSM, Vault, Doppler, 1Password integrations
- Audit trail for all operations
- Dry-run mode for safe previews
Diff environments
envault diff dev prod
Rotate a secret (smart type inference)
envault rotate DB_PASSWORD # → database-safe password
envault rotate API_KEY # → prefixed API key
envault rotate JWT_SECRET # → 256-bit base64 secret
Why you need it: .env drift is how staging works but prod doesn't — a missing variable, a different value, a stale secret. Envault catches the diff, syncs safely, and rotates secrets with one command. Connect it to your secret store and stop managing .env files by hand.
⚗ SchemaForge
Convert between SQL DDL, Prisma, Drizzle, TypeORM, Django, SQLAlchemy, GraphQL SDL, JSON Schema, OpenAPI 3.0, Protobuf, and Avro with zero-loss roundtripping. 110 bidirectional conversion paths. Now with a full VS Code extension for live preview, quick convert, and format detection.
View on GitHub → VS Code Extension →pip install git+https://github.com/Coding-Dev-Tools/schemaforge.git
Requires Python 3.9+
- SQL DDL ↔ Prisma ↔ Drizzle ↔ TypeORM ↔ Django ↔ SQLAlchemy ↔ GraphQL SDL ↔ JSON Schema ↔ OpenAPI 3.0 ↔ Protobuf ↔ Avro
- 110 bidirectional conversion paths with zero-loss roundtripping
- VS Code extension: live preview, quick convert (Ctrl+Alt+S), format detection (Ctrl+Alt+D), two-file diff
- Schema diff between any two formats
- Custom type mappings for edge cases
Convert Prisma → Drizzle
schemaforge convert --from prisma --to drizzle --input schema.prisma
Diff two schemas
schemaforge diff schema.prisma schema.drizzle.ts
Why you need it: Every ORM migration is a one-way street — Prisma introspects SQL but can't export back, Drizzle users manually rewrite schemas when switching. SchemaForge is the only tool that goes both ways across 11 formats. Stop rewriting schemas by hand and start converting them.
🔌 click-to-mcp
Turn any Click or Typer CLI into an MCP server with a single command. Expose your tools to Claude, GPT, Cursor, and any MCP-compatible AI — no code changes needed. Auto-discovers commands, generates tool schemas, and handles stdio/SSE transport.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/click-to-mcp.git
Requires Python 3.9+
- Auto-discovery of Click/Typer commands and options
- One-command MCP server generation
- Stdio & SSE transport support
- Multi-server orchestration
- Zero code changes to existing CLIs
Wrap a CLI as MCP server
click-to-mcp wrap mycli --transport stdio
Auto-discover Click apps
click-to-mcp discover --dir ./src
Why you need it: MCP is the standard for AI-tool integration, but wrapping CLIs as MCP servers is manual boilerplate. click-to-mcp eliminates that — point it at any Click/Typer app and get a fully compatible MCP server in seconds. The only tool that does Click→MCP conversion (mcp2cli does the reverse).
🧹 DeadCode
Detect and remove unused exports, dead routes, orphaned CSS, and unreferenced components in TypeScript/React/Next.js projects. Uses the full TypeScript compiler API for accurate analysis — ESLint catches unused variables but misses the structural decay that bloats bundles.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/deadcode.git
Requires Python 3.9+ & Node.js 18+
- Unused export detection across entire project
- Dead route identification (React Router, Next.js)
- Orphaned CSS class scanning
- Unreferenced component detection
- Dry-run removal preview — never delete something you need
Scan current project
deadcode scan
Preview what can be removed
deadcode remove --dry-run
Why you need it: ESLint catches unused variables but misses structural decay — orphaned exports bloat bundles, stale routes confuse teammates, orphaned CSS silently accumulates. DeadCode uses the TypeScript compiler API for whole-project analysis that linters can't match. Scan, preview, then clean with confidence.
⛁ Revenue Holdings Suite
Install every tool in the Revenue Holdings ecosystem with a single command. Perfect for CI/CD pipelines, dev workstations, or teams that want the full safety net across API contracts, SQL, infrastructure, configs, API mocking, key management, env syncing, schema conversion, MCP wrapping, and dead code cleanup.
View on GitHub →pip install git+https://github.com/Coding-Dev-Tools/revenueholdings.git
Installs all 10 tools as dependencies
CI Pipeline Example — A single script runs all four checks in sequence. If any check fails, the pipeline stops and the developer gets a clear error message telling them exactly what broke and where.
# .github/workflows/ci-safety-net.yml
name: CI Safety Net
on: [pull_request]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: pip install git+https://github.com/Coding-Dev-Tools/revenueholdings.git
# 1. API Contract Guardian — detect breaking schema changes
- run: api-contract-guardian check --base origin/main --head HEAD openapi.yaml
# 2. json2sql — validate SQL output from seed data
- run: json2sql convert --dialect postgres data/seed.json
# 3. DeployDiff — preview infra changes
- run: deploydiff preview --tf plan.json
# 4. ConfigDrift — catch environment drift
- run: configdrift check dev.yaml prod.yaml --output json
Pro tip: Use the meta-package in CI so your pipeline automatically gets all new tools as they're released. Pin the major version for production stability: pip install git+https://github.com/Coding-Dev-Tools/revenueholdings.git@v0.1
🔁 CI & Integration Guide
All ten tools are designed as stateless CLI commands that fit naturally into CI pipelines. Each returns a non-zero exit code on failure, so they integrate with any CI system that supports shell commands — GitHub Actions, GitLab CI, CircleCI, Jenkins, or raw bash scripts.
Per-tool install for minimal dependencies
# Install only what you need
pip install git+https://github.com/Coding-Dev-Tools/api-contract-guardian.git # API contract checks
pip install git+https://github.com/Coding-Dev-Tools/deploydiff.git # Infra change previews
pip install git+https://github.com/Coding-Dev-Tools/json2sql.git # SQL validation
pip install git+https://github.com/Coding-Dev-Tools/configdrift.git # Config drift detection
pip install git+https://github.com/Coding-Dev-Tools/apighost.git # OpenAPI mock server
pip install git+https://github.com/Coding-Dev-Tools/apiauth.git # API key & JWT management
pip install git+https://github.com/Coding-Dev-Tools/envault.git # .env syncing & secret rotation
pip install git+https://github.com/Coding-Dev-Tools/schemaforge.git # ORM schema converter
Exit codes (all tools)
0 — Success (no issues found)
1 — Issues found (breaking change, drift, mismatch)
2 — Error (invalid input, file not found)
CI best practice: Start with --output json or --output silent mode on all tools to keep CI logs clean. Gate merges only on breaking changes — use warning-level violations as advisory feedback in PR comments instead of blocking the pipeline.
🔑 License Key Setup
Each tool checks a license key on startup to determine your tier. Free tier works out of the box (50 uses/day per tool). Set a license key to unlock unlimited Pro access.
rh license activate YOUR_LICENSE_KEY
Or set REVENUEHOLDINGS_LICENSE_KEY env var
- rh license activate <key> — Activate a new license key (stores in ~/.revenueholdings/)
- rh license status — Show current tier, usage counts, and remaining rate limit
- rh license deactivate — Remove the current license (reverts to free tier)
- Works offline for up to 7 days between automatic verifications
- Free tier: 50 uses/day per tool. Pro tier: unlimited, all features.
Get a license key: Free keys available on the pricing page — no credit card needed. Set the REVENUEHOLDINGS_LICENSE_KEY environment variable for automated CI/CD deployments.
Something missing? Open an issue or email us.