Security-focused modular developer multi-tool CLI.
Project description
Developer Utility Toolkit
Security-focused, modular, format-aware Python CLI for common developer tasks.
Features
- Automatic input detection for text, JSON, XML, Base64, URL, and file extension types
- Direct format conversion using a plugin-based transformer registry
- JSON and XML formatting, minification, and validation
- Encoding tools (Base64 and URL encode/decode)
- Binary/Hex/Text/Base64 conversion utilities
- Interactive conversion mode (choose format by number/letter and print all direct outputs)
- Image pixelation utility (optional
pillow) - Sitemap generator and sitemap 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 helperssrc/toolkit/transformers: pluggable one-step transformerssrc/toolkit/formatters: JSON/XML format/minify/validate servicessrc/toolkit/image_tools: image utilitiessrc/toolkit/web_tools: sitemap generation/fetchingsrc/toolkit/history: local history servicesrc/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 analyze --text '{"name":"dev"}'
toolkit convert --from text --to base64 --text "hello"
toolkit convert-all --text "hello" --from text
toolkit convert-all --text "hello" --ask
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
Security Philosophy
- Secure defaults and explicit input validation
- Defused XML parser to prevent XXE/entity expansion attacks
- No
eval/execusage - 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.12security.yml: Bandit + pip-audit + Safetyrelease.yml: runs on version tags (v*.*.*), builds wheel/sdist, runs tests, publishes to PyPI, creates GitHub release notesghcr.yml: builds and publishes multi-arch Docker images to GHCR (ghcr.io/artenisalija/developer-utility-kit)- Dependabot enabled for Python packages and GitHub Actions
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file developer_utility_toolkit-0.1.2.tar.gz.
File metadata
- Download URL: developer_utility_toolkit-0.1.2.tar.gz
- Upload date:
- Size: 17.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb5f912512cceb774718f849dd8d998ccfda9baa9b857488fde887422a15fb43
|
|
| MD5 |
a1e589149b8513367de2407919c31816
|
|
| BLAKE2b-256 |
82e98677a7e152272f67cf205f82a36c85897e490286a2b344342aa1c394c44a
|
File details
Details for the file developer_utility_toolkit-0.1.2-py3-none-any.whl.
File metadata
- Download URL: developer_utility_toolkit-0.1.2-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
739c2f0e16a70de719ab3f0c74bd178922b5cc5f182d7f592724b8015b76aa2f
|
|
| MD5 |
b7b256714956851f7653469013b5f230
|
|
| BLAKE2b-256 |
ab09836032cc3c324a4bf2b6e1b69ebda4c697d102bf5b964d5064bd66fe8723
|