Skip to main content

Multi-language dependency wizard - check, audit, and update dependencies across Python, Rust, Dart, and JavaScript ecosystems

Project description

depswiz

Dependency Wizard - A multi-language dependency management CLI tool for modern development workflows.

PyPI version Python 3.13+ License: MIT CI Coverage Documentation

Features

  • Multi-Language Support: Python, Rust, Dart/Flutter, JavaScript/TypeScript
  • Vulnerability Scanning: Integrated with OSV, GitHub Advisories, RustSec
  • License Compliance: SPDX-based license checking with configurable policies
  • SBOM Generation: CycloneDX 1.6 and SPDX 3.0 formats
  • Monorepo Support: Auto-detect workspaces across all ecosystems
  • Development Tools Checking: Check if Node, Python, Rust, Dart, Flutter, uv, etc. are up to date
  • Interactive Guide: TUI dashboard with real-time health monitoring, wizard mode, and AI chat
  • Deprecation Detection: Scan and auto-fix deprecated API usage (Flutter/Dart)
  • AI-Powered Suggestions: Claude Code integration for intelligent upgrade strategies
  • Beautiful CLI: Rich output with tables, progress bars, and colors
  • Plugin Architecture: Extensible via Python entry points

Installation

# Using pip
pip install depswiz

# Using uv (recommended)
uv add depswiz

# From source
git clone https://github.com/moinsen-dev/depswiz.git
cd depswiz
pip install -e .

Quick Start

# Check for outdated dependencies
depswiz check

# Scan for vulnerabilities
depswiz audit

# Check license compliance
depswiz licenses

# Generate SBOM
depswiz sbom -o sbom.json

# Update dependencies interactively
depswiz update

# Check development tools for updates
depswiz tools

# Get AI-powered upgrade suggestions (requires Claude Code)
depswiz suggest

# Launch interactive dashboard
depswiz guide

# Scan for deprecated APIs (Flutter/Dart)
depswiz deprecations

Commands

depswiz check

Check dependencies for available updates.

depswiz check                      # Check current directory
depswiz check --workspace          # Check all workspace members
depswiz check -l python -l rust    # Check only Python and Rust
depswiz check --format json        # Output as JSON
depswiz check --fail-outdated      # Exit 1 if outdated packages found

depswiz audit

Scan dependencies for known vulnerabilities.

depswiz audit                      # Audit current directory
depswiz audit --severity high      # Only show high+ severity
depswiz audit --fail-on critical   # Fail on critical vulnerabilities
depswiz audit --ignore CVE-2024-XXX  # Ignore specific vulnerability

depswiz licenses

Check license compliance.

depswiz licenses                   # List all licenses
depswiz licenses --summary         # License distribution only
depswiz licenses --deny GPL-3.0    # Fail on GPL-3.0 licensed packages

depswiz sbom

Generate Software Bill of Materials.

depswiz sbom -o sbom.json          # CycloneDX format (default)
depswiz sbom --format spdx -o sbom.spdx.json
depswiz sbom --include-transitive  # Include transitive dependencies

depswiz update

Update dependencies interactively.

depswiz update                     # Interactive update
depswiz update --dry-run           # Preview changes
depswiz update --strategy patch    # Only patch updates
depswiz update -y                  # Auto-confirm

depswiz tools

Check development tools for updates.

depswiz tools                      # Auto-detect and check relevant tools
depswiz tools --all                # Check all 15 supported tools
depswiz tools -t node -t python    # Check specific tools
depswiz tools --updates-only       # Only show tools with updates
depswiz tools --format json        # JSON output for CI
depswiz tools --upgrade            # Use Claude Code to upgrade tools

Supported Tools: Node.js, npm, pnpm, Yarn, Bun, Deno, Python, uv, pip, Rust, Cargo, Dart, Flutter, Go, Docker

depswiz suggest

Get AI-powered upgrade suggestions using Claude Code.

depswiz suggest                    # Full upgrade strategy
depswiz suggest --focus security   # Focus on security vulnerabilities
depswiz suggest --focus quick      # Quick health summary
depswiz suggest --focus toolchain  # Analyze development tools

Note: Requires Claude Code CLI to be installed.

depswiz guide

Interactive dependency management dashboard with three modes.

depswiz guide                      # Launch TUI dashboard
depswiz guide --mode wizard        # Step-by-step guided wizard
depswiz guide --mode chat          # Conversational mode with AI
depswiz guide --watch              # Auto-refresh on file changes
depswiz guide --skip-ai            # Disable AI features

Dashboard Features:

  • Real-time health score (0-100)
  • Vulnerability severity breakdown
  • Outdated packages by update type
  • License compliance status
  • Development tools version check

Keyboard Shortcuts: a=Audit, u=Updates, l=Licenses, t=Tools, c=Chat, s=AI Suggestions, q=Quit

depswiz deprecations

Detect and fix deprecated API usage in Flutter/Dart projects.

depswiz deprecations               # Scan for deprecations
depswiz deprecations --fix         # Auto-fix using dart fix
depswiz deprecations --dry-run     # Preview fixes without applying
depswiz deprecations --fixable-only  # Show only auto-fixable issues
depswiz deprecations --package flutter  # Filter by package
depswiz deprecations --format json  # JSON output for CI
depswiz deprecations --fail-on breaking  # Exit 1 for breaking deprecations

Supported Detection:

  • deprecated_member_use - Standard deprecation warnings
  • deprecated_member_use_from_same_package - Internal deprecations
  • Automatic replacement suggestions extraction
  • Source package identification

Configuration

Create a depswiz.toml in your project root:

[depswiz]
default_format = "cli"

[languages]
enabled = ["python", "rust", "dart", "javascript"]

[check]
recursive = false
workspace = true
strategy = "all"
warn_breaking = true

[audit]
severity_threshold = "low"
fail_on = "high"
sources = ["osv"]

[licenses]
policy_mode = "allow"
allowed = ["MIT", "Apache-2.0", "BSD-3-Clause", "ISC"]
denied = ["GPL-3.0", "AGPL-3.0"]
warn_copyleft = true

[sbom]
format = "cyclonedx"
include_transitive = true

Or add to your pyproject.toml:

[tool.depswiz]
default_format = "cli"

[tool.depswiz.audit]
fail_on = "high"

Supported Languages

Language Manifest Lockfile Registry
Python pyproject.toml, requirements.txt uv.lock, poetry.lock PyPI
Rust Cargo.toml Cargo.lock crates.io
Dart/Flutter pubspec.yaml pubspec.lock pub.dev
JavaScript/TypeScript package.json package-lock.json, yarn.lock npm

Output Formats

  • cli (default): Rich terminal output with colors and tables
  • json: Machine-readable JSON
  • markdown: GitHub-compatible markdown
  • html: Self-contained HTML report
  • cyclonedx: CycloneDX 1.6 SBOM
  • spdx: SPDX 3.0 SBOM

Plugin Development

Create a new language plugin by implementing LanguagePlugin:

from depswiz.plugins.base import LanguagePlugin

class MyPlugin(LanguagePlugin):
    @property
    def name(self) -> str:
        return "mylang"

    @property
    def manifest_patterns(self) -> list[str]:
        return ["myproject.toml"]

    # ... implement other required methods

Register via pyproject.toml:

[project.entry-points."depswiz.languages"]
mylang = "my_package:MyPlugin"

CI/CD Integration

GitHub Actions

- name: Security Audit
  run: depswiz audit --fail-on high

- name: License Check
  run: depswiz licenses --fail-on-unknown

- name: Generate SBOM
  run: depswiz sbom -o sbom.json

Exit Codes

  • 0: Success
  • 1: Vulnerabilities or violations found (when using --fail-* options)

Development

# Clone and install
git clone https://github.com/moinsen-dev/depswiz.git
cd depswiz
pip install -e ".[dev]"

# Run tests
pytest

# Run dogfooding tests (depswiz checks itself)
python scripts/dogfood.py
python scripts/dogfood.py --quick  # Skip slow operations

# Type checking
mypy src/depswiz

# Linting
ruff check src/depswiz

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

License

MIT License - see LICENSE for details.

Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

depswiz-0.4.0.tar.gz (216.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

depswiz-0.4.0-py3-none-any.whl (143.4 kB view details)

Uploaded Python 3

File details

Details for the file depswiz-0.4.0.tar.gz.

File metadata

  • Download URL: depswiz-0.4.0.tar.gz
  • Upload date:
  • Size: 216.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for depswiz-0.4.0.tar.gz
Algorithm Hash digest
SHA256 42d10f2dfc9e8eacb3470ddb0b2bdfd9a5bd6518970f30f229b26efc86f5b646
MD5 003b870008d71a91c3ca6daf4939cbe7
BLAKE2b-256 89a2a2d522c730ff192db13e369a7a5b29ca5d2b21d876aebb2a9f8ff2865960

See more details on using hashes here.

File details

Details for the file depswiz-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: depswiz-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 143.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for depswiz-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c90eabe9c9b44ce2177fef67fa3e560959e3cce47be8e9b2b8dd56ec3d8a8a1b
MD5 a53fcf261c9d9c1fa960720d49473610
BLAKE2b-256 65490499dbe309b63b687885152b5596246f066e581b6a9b0600f845379848cd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page