Skip to main content

Security-focused modular developer multi-tool CLI.

Project description

Developer Utility Toolkit

CI Security GHCR Coverage

Security-focused, modular, format-aware Python CLI for common developer tasks.

Features

  • Automatic input detection for text, JSON, XML, binary, hex, base64, URL, and file extension types
  • Direct format conversion via transformer registry (no hidden chained conversion)
  • Guided interactive mode: select input format, choose conversion mode (all, one, multiple), view formatted outputs
  • Conversion commands: convert, convert-all, formats
  • JSON/XML formatting, minification, and validation
  • Encoding utilities: binary, hex, base64, URL encoding/decoding
  • Hash and checksum reporting with hash-all and interactive
  • Image pixelation utility (optional pillow)
  • Sitemap generator and fetcher with URL validation and request timeouts
  • Local command history (~/.developer_utility_toolkit/history/history.jsonl)

Architecture

  • src/toolkit/core: abstractions, registry, detector, and safe I/O helpers
  • src/toolkit/transformers: pluggable one-step transformers
  • src/toolkit/formatters: JSON/XML format/minify/validate services
  • src/toolkit/image_tools: image utilities
  • src/toolkit/web_tools: sitemap generation/fetching
  • src/toolkit/history: local history service
  • src/toolkit/cli.py: Typer entrypoint and command wiring

Design choices:

  • No chained transformations by default (one direct transform per request target)
  • Safe XML parsing via defusedxml
  • Controlled output writes via sanitized filename + output directory constraints
  • Clear failure modes with explicit non-zero exit codes

Installation

Install from PyPI:

python -m pip install --upgrade pip
pip install developer-utility-toolkit

Install with all optional features:

pip install "developer-utility-toolkit[all]"

Install isolated with pipx (recommended for CLI tools):

pipx install developer-utility-toolkit

Docker (Alternative Install)

Install via GitHub Packages container (GHCR):

docker pull ghcr.io/artenisalija/developer-utility-kit:latest

Run help:

docker run --rm ghcr.io/artenisalija/developer-utility-kit:latest --help

Run a command with mounted files:

docker run --rm -v "$PWD:/work" -w /work ghcr.io/artenisalija/developer-utility-kit:latest format --kind json --file input.json --output output.json

Install developer tooling:

pip install ".[all,dev]"

Usage

toolkit --help
toolkit formats
toolkit analyze --text '{"name":"dev"}'
toolkit convert --from text --to base64 --text "hello"
toolkit convert-all --text "hello" --from text
toolkit convert-all --text "11111111" --from binary
toolkit convert-all --text "hello" --ask
toolkit interactive
toolkit hash-all --text "hello"
toolkit hash-all --text "01101000 01101001" --from binary
toolkit hash-all --text "68656c6c6f" --from hex
toolkit format --kind json --text '{"b":2,"a":1}'
toolkit validate --kind xml --text '<root><a>1</a></root>'
toolkit minify --kind json --text '{"b":2,"a":1}'
toolkit image pixelate --input-file ./input.png --output-name output.png
toolkit sitemap generate --base-url https://example.com --path / --path /docs
toolkit sitemap fetch --url https://example.com/sitemap.xml
toolkit recent show --limit 10

Interactive Flow

toolkit interactive asks for:

  • Input format (number or letter)
  • Input value
  • Conversion mode:
    • All formats
    • One format
    • Multiple formats (comma-separated choices)

Then it prints:

  • Structured conversion output blocks
  • Full hash/checksum report for the input bytes

Hash/Checksum Algorithms

toolkit hash-all and toolkit interactive report:

  • MD2 Hash Generator
  • MD4 Hash Generator
  • MD5 Hash Generator
  • NTLM Hash Generator
  • SHA1 Hash Generator
  • SHA2 Hash Generator
  • SHA224 Hash Generator
  • SHA256 Hash Generator
  • SHA384 Hash Generator
  • SHA512 Hash Generator
  • SHA512/224 Hash Generator
  • SHA512/256 Hash Generator
  • SHA3-224 Hash Generator
  • SHA3-256 Hash Generator
  • SHA3-384 Hash Generator
  • SHA3-512 Hash Generator
  • CRC-16 Hash Generator
  • CRC-32 Hash Generator
  • Shake-128 Hash Generator
  • Shake-256 Hash Generator
  • MD6 Hash Generator
  • Whirlpool Hash Generator
  • Checksum Calculator

Note: algorithm availability depends on Python/OpenSSL build. Unsupported algorithms are marked as unavailable at runtime.

Binary Input Notes

  • Binary input accepts 0/1 with optional spaces.
  • Non-8-bit lengths are accepted and left-padded to full bytes (1010 becomes 00001010).
  • If one conversion target fails (for example, binary bytes are not valid UTF-8 text), other targets still continue in convert-all and interactive.

Security Philosophy

  • Secure defaults and explicit input validation
  • Defused XML parser to prevent XXE/entity expansion attacks
  • No eval/exec usage
  • Timeout-controlled network calls
  • Sanitized output file names with constrained output directories
  • Graceful errors with explicit status codes

Development

Run local quality gates:

ruff check .
black --check .
mypy src tests
pytest
bandit -r src -ll
pip-audit --strict
safety check --full-report

Pre-commit:

pre-commit install
pre-commit run --all-files

CI/CD

  • ci.yml: lint + format + mypy + tests + coverage (>=85%) on Python 3.11/3.12
  • security.yml: Bandit + pip-audit + Safety
  • release.yml: runs on version tags (v*.*.*), builds wheel/sdist, runs tests, publishes to PyPI, creates GitHub release notes
  • ghcr.yml: builds and publishes multi-arch Docker images to GHCR (ghcr.io/artenisalija/developer-utility-kit)
  • Dependabot enabled for Python packages and GitHub Actions

Update

pip install -U developer-utility-toolkit

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

developer_utility_toolkit-0.1.5.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

developer_utility_toolkit-0.1.5-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

Details for the file developer_utility_toolkit-0.1.5.tar.gz.

File metadata

File hashes

Hashes for developer_utility_toolkit-0.1.5.tar.gz
Algorithm Hash digest
SHA256 746c8e281a35bc027f09dd54108564fbb30c97c58ebd0e3c341d6dc6bb67bcd9
MD5 3f7945c95bc29069eea0b6533cf03784
BLAKE2b-256 1e2d7553db21f456fab02ad2d1986deddab2e87e302a8a16d700fbb0574fe2f8

See more details on using hashes here.

File details

Details for the file developer_utility_toolkit-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for developer_utility_toolkit-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 3e14752b65a1f97e4177601b608d61d3d7e444476c7b147dd720743260629966
MD5 7f65c30a20584063ae8f2733fd6b6440
BLAKE2b-256 5e087a7602e82449d18d931040f9340eaedf3417755a45332c1097d7513dffee

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