Skip to content

About

an advanced cli tool for developers

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

PREONIC-CLI

Your Terminal, Supercharged.

A fast, extensible command-line toolkit that brings password tools, text processing, JSON manipulation, developer utilities, image processing, network diagnostics, security auditing, and more — all under one coherent interface.

Python 3.12+ License: MIT GitHub stars


$ preonic

██████╗ ██████╗ ███████╗ ██████╗ ███╗   ██╗██╗ ██████╗
██╔══██╗██╔══██╗██╔════╝██╔═══██╗████╗  ██║██║██╔════╝
██████╔╝██████╔╝█████╗  ██║   ██║██╔██╗ ██║██║██║
██╔═══╝ ██╔══██╗██╔══╝  ██║   ██║██║╚██╗██║██║██║
██║     ██║  ██║███████╗╚██████╔╝██║ ╚████║██║╚██████╗
╚═╝     ╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═══╝╚═╝ ╚═════╝
                 C L I
  Modern CLI Toolkit v1.2.0

Use preonic --help to see available commands.

Features

Toolkit Capabilities
Password Cryptographically secure generation, strength scoring, Shannon entropy, Diceware
JSON Pretty-print, validate, minify, deep diff, dot-notation query, key sorting
Text Character/word/line counts, 12 case conversions, dedup, clean, sort, unique
Developer UUIDs (v1/v4/v5), hashing (any hashlib algo), base64, timestamps, regex, .gitignore generation
Image Compress, convert, resize, EXIF metadata, batch processing (requires Pillow)
Markdown Convert to HTML/text/DOCX/PDF, Rich-rendered preview, reading time, stats (optional extras)
Network ICMP ping, DNS lookups (A/AAAA/MX/TXT/NS), local & public IP, interface inspection
Security Entropy analysis, SHA-256 hashing, HMAC verification, Fernet encryption, secret scanning, permission auditing
System OS/CPU/RAM/GPU/disk info, real-time resource monitoring, process listing
Benchmark Disk R/W speed, CPU perf, memory allocation, filesystem ops
UUID Time-based (v1), random (v4), namespace (v5), batch generation
Hash Multi-algorithm hashing for text and files, HMAC verification
Encode Base64, URL percent-encoding, hex encoding and decoding
Random Numbers, strings, bytes, colors (hex/RGB/HSL)
QR QR code generation and decoding from images
Diff Line-by-line text diff, structured JSON diff, recursive directory diff
Environment List, search, export, and compare environment variables
Time Current time, Unix timestamps, timezone conversion, countdown timers
Plugins Discover, install, and manage CLI extensions

Design principles: minimal dependencies, polished Rich terminal UI, consistent conventions across every command, cross-platform support, strict typing, and a plugin architecture for extensibility.


Installation

From PyPI

pip install preonic

Recommended: pipx

pipx install preonic

From Source

git clone https://github.com/Primeeex/preonic-cli.git
cd preonic-cli
pip install -e ".[dev]"

Requirements

  • Python 3.12+ (CPython 3.12 or higher)

Optional Extras

Extra Install What you get
image pip install "preonic[image]" image toolkit (compress, convert, resize, batch)
markdown pip install "preonic[markdown]" markdown toolkit (convert, preview, stats)
pdf pip install "preonic[pdf]" PDF export via markdown convert --format pdf
system pip install "preonic[system]" Extended system toolkit (psutil-based monitoring)
network pip install "preonic[network]" network toolkit (DNS, ping, interfaces)
security pip install "preonic[security]" security toolkit (Fernet encryption, HMAC)
all pip install "preonic[all]" Everything above

Quick Start

# Generate a secure 32-character password
preonic password generate --length 32

# Check password strength
preonic password strength "correct-horse-battery-staple"

# Pretty-print JSON from stdin
echo '{"name":"test","version":1}' | preonic json format

# Query nested JSON
echo '{"a":{"b":{"c":42}}}' | preonic json query a.b.c

# Sort and deduplicate lines
echo -e "banana\napple\nbanana\ncherry" | preonic text sort | preonic text unique

# Convert text to kebab-case
preonic text kebab "Hello World"

# Generate a UUID v4
preonic uuid v4

# Hash a file with SHA-256
preonic hash file --algorithm sha256 ./myfile.txt

# Base64 encode a string
preonic encode base64 "Hello, World!"

# Check system health
preonic doctor

# Get comprehensive system info
preonic system info

# Ping a host
preonic network ping google.com

# Find your public IP
preonic network ip public

# Run a disk benchmark
preonic benchmark disk

# List installed plugins
preonic plugins list

Configuration

preonic-cli uses YAML-based configuration with layered precedence:

CLI flags  >  Environment variables  >  Config file  >  Built-in defaults

Config File Locations

Platform Path
Linux ~/.config/preonic/config.yaml
macOS ~/Library/Application Support/preonic/config.yaml
Windows %APPDATA%\preonic\config.yaml

Environment Variables

All environment variables use the PREONIC_ prefix. Nested keys use double underscores:

export PREONIC_LOGGING__LEVEL=DEBUG
export PREONIC_OUTPUT__JSON=true

Example Config

version: 1
logging:
  level: WARNING
  max_size_mb: 10
output:
  color: true
  json: false
update:
  check: true

JSON Output

Every command supports --json (-j) for machine-readable output, making preonic easy to compose in scripts:

preonic --json password generate --length 20
preonic --json system info
preonic --json hash text --algorithm sha256 "my secret"

Shell Completion

Generate shell completions for Bash, Zsh, or Fish:

# Bash
preonic completion bash >> ~/.bashrc

# Zsh
preonic completion zsh >> ~/.zshrc

# Fish
preonic completion fish > ~/.config/fish/completions/preonic.fish

Restart your shell or source the appropriate file to enable tab completion.


Architecture

preonic-cli
├── docs
│   ├── architecture.md  [8.9 KiB]
│   ├── commands.md  [21.9 KiB]
│   ├── configuration.md  [3.6 KiB]
│   ├── contributing.md  [3.7 KiB]
│   ├── developer-guide.md  [9.2 KiB]
│   ├── examples.md  [8.8 KiB]
│   ├── faq.md  [3.9 KiB]
│   ├── index.md  [3.8 KiB]
│   ├── installation.md  [2.7 KiB]
│   ├── plugins.md  [4.1 KiB]
│   ├── security.md  [5.4 KiB]
│   └── troubleshooting.md  [5.1 KiB]
├── preonic
│   ├── commands
│   │   ├── __init__.py  [9.0 KiB]
│   │   ├── about_cmd.py  [2.9 KiB]
│   │   ├── archive_cmd.py  [10.3 KiB]
│   │   ├── banner_cmd.py  [452.0 B]
│   │   ├── benchmark_cmd.py  [8.3 KiB]
│   │   ├── cache_cmd.py  [6.5 KiB]
│   │   ├── completion_cmd.py  [5.2 KiB]
│   │   ├── config_cmd.py  [6.7 KiB]
│   │   ├── date_cmd.py  [10.3 KiB]
│   │   ├── decode_cmd.py  [3.3 KiB]
│   │   ├── dev_cmd.py  [8.8 KiB]
│   │   ├── diagnostics_cmd.py  [5.3 KiB]
│   │   ├── diff_cmd.py  [5.3 KiB]
│   │   ├── doctor_cmd.py  [16.6 KiB]
│   │   ├── encode_cmd.py  [3.0 KiB]
│   │   ├── env_cmd.py  [7.9 KiB]
│   │   ├── file_cmd.py  [17.5 KiB]
│   │   ├── hash_cmd.py  [8.9 KiB]
│   │   ├── help_cmd.py  [3.0 KiB]
│   │   ├── http_cmd.py  [9.5 KiB]
│   │   ├── image_cmd.py  [18.0 KiB]
│   │   ├── info_cmd.py  [1.3 KiB]
│   │   ├── json_cmd.py  [11.5 KiB]
│   │   ├── markdown_cmd.py  [15.4 KiB]
│   │   ├── math_cmd.py  [7.9 KiB]
│   │   ├── network_cmd.py  [17.2 KiB]
│   │   ├── password_cmd.py  [6.6 KiB]
│   │   ├── path_cmd.py  [6.8 KiB]
│   │   ├── plugins_cmd.py  [7.9 KiB]
│   │   ├── qr_cmd.py  [4.3 KiB]
│   │   ├── random_cmd.py  [7.4 KiB]
│   │   ├── security_cmd.py  [10.7 KiB]
│   │   ├── system_cmd.py  [19.5 KiB]
│   │   ├── text_cmd.py  [10.2 KiB]
│   │   ├── time_cmd.py  [7.0 KiB]
│   │   ├── tree_cmd.py  [12.5 KiB]
│   │   ├── update_cmd.py  [1.7 KiB]
│   │   ├── uuid_cmd.py  [5.7 KiB]
│   │   └── version_cmd.py  [2.0 KiB]
│   ├── core
│   │   ├── __init__.py  [848.0 B]
│   │   ├── context.py  [2.3 KiB]
│   │   ├── errors.py  [2.6 KiB]
│   │   └── validators.py  [5.7 KiB]
│   ├── formatters
│   │   ├── __init__.py  [1.1 KiB]
│   │   ├── output.py  [1.5 KiB]
│   │   ├── panels.py  [1.8 KiB]
│   │   ├── progress.py  [2.7 KiB]
│   │   ├── render.py  [2.5 KiB]
│   │   └── trees.py  [2.6 KiB]
│   ├── models
│   │   ├── __init__.py  [751.0 B]
│   │   ├── config.py  [1.1 KiB]
│   │   ├── diagnostics.py  [3.0 KiB]
│   │   ├── results.py  [2.4 KiB]
│   │   └── validation.py  [759.0 B]
│   ├── services
│   │   ├── __init__.py  [3.2 KiB]
│   │   ├── archive_service.py  [12.5 KiB]
│   │   ├── audit_service.py  [5.1 KiB]
│   │   ├── benchmark_service.py  [7.7 KiB]
│   │   ├── cache.py  [4.2 KiB]
│   │   ├── configuration.py  [6.4 KiB]
│   │   ├── date_service.py  [4.3 KiB]
│   │   ├── developer.py  [6.0 KiB]
│   │   ├── diagnostics.py  [2.0 KiB]
│   │   ├── diff_service.py  [5.7 KiB]
│   │   ├── dns_service.py  [3.1 KiB]
│   │   ├── document_service.py  [1.9 KiB]
│   │   ├── encode_service.py  [2.7 KiB]
│   │   ├── encryption_service.py  [3.5 KiB]
│   │   ├── env_service.py  [4.1 KiB]
│   │   ├── environment.py  [3.8 KiB]
│   │   ├── file_service.py  [12.3 KiB]
│   │   ├── filesystem.py  [6.2 KiB]
│   │   ├── hardware_service.py  [2.6 KiB]
│   │   ├── hash_service.py  [3.1 KiB]
│   │   ├── http_service.py  [6.1 KiB]
│   │   ├── image_conversion_service.py  [2.7 KiB]
│   │   ├── image_service.py  [11.6 KiB]
│   │   ├── json_service.py  [4.1 KiB]
│   │   ├── markdown_service.py  [7.6 KiB]
│   │   ├── math_service.py  [7.9 KiB]
│   │   ├── metadata.py  [2.2 KiB]
│   │   ├── network_service.py  [6.2 KiB]
│   │   ├── password.py  [47.0 KiB]
│   │   ├── path_service.py  [3.5 KiB]
│   │   ├── plugin.py  [3.4 KiB]
│   │   ├── port_scanner_service.py  [2.1 KiB]
│   │   ├── process_service.py  [3.3 KiB]
│   │   ├── qr_service.py  [4.0 KiB]
│   │   ├── random_service.py  [3.9 KiB]
│   │   ├── security_service.py  [5.3 KiB]
│   │   ├── system_service.py  [6.6 KiB]
│   │   ├── template_service.py  [2.3 KiB]
│   │   ├── text_service.py  [3.8 KiB]
│   │   ├── time_service.py  [4.3 KiB]
│   │   ├── uuid_service.py  [2.5 KiB]
│   │   └── version.py  [3.2 KiB]
│   ├── utils
│   │   ├── __init__.py  [1019.0 B]
│   │   ├── commands.py  [3.8 KiB]
│   │   ├── formatting.py  [2.8 KiB]
│   │   ├── paths.py  [2.2 KiB]
│   │   └── system.py  [1.3 KiB]
│   ├── __init__.py  [201.0 B]
│   ├── __main__.py  [119.0 B]
│   ├── cli.py  [3.1 KiB]
│   ├── config.py  [5.6 KiB]
│   ├── constants.py  [458.0 B]
│   ├── exceptions.py  [1.7 KiB]
│   ├── log.py  [1.9 KiB]
│   └── main.py  [1.8 KiB]
├── tests
│   ├── __init__.py  [0.0 B]
│   ├── conftest.py  [3.4 KiB]
│   ├── test_cli.py  [3.0 KiB]
│   ├── test_command_utils.py  [1.3 KiB]
│   ├── test_commands_archive_cmd.py  [2.8 KiB]
│   ├── test_commands_cache.py  [1.0 KiB]
│   ├── test_commands_completion.py  [7.0 KiB]
│   ├── test_commands_date_cmd.py  [2.9 KiB]
│   ├── test_commands_dev.py  [5.4 KiB]
│   ├── test_commands_doctor.py  [1.0 KiB]
│   ├── test_commands_env.py  [1.8 KiB]
│   ├── test_commands_file_cmd.py  [6.4 KiB]
│   ├── test_commands_hash.py  [1.4 KiB]
│   ├── test_commands_help.py  [4.9 KiB]
│   ├── test_commands_image.py  [8.2 KiB]
│   ├── test_commands_json.py  [5.2 KiB]
│   ├── test_commands_markdown.py  [7.0 KiB]
│   ├── test_commands_math_cmd.py  [4.8 KiB]
│   ├── test_commands_network.py  [2.8 KiB]
│   ├── test_commands_password.py  [3.5 KiB]
│   ├── test_commands_path_cmd.py  [3.5 KiB]
│   ├── test_commands_plugins.py  [6.1 KiB]
│   ├── test_commands_qr.py  [4.5 KiB]
│   ├── test_commands_random.py  [1.1 KiB]
│   ├── test_commands_security.py  [5.9 KiB]
│   ├── test_commands_system.py  [3.8 KiB]
│   ├── test_commands_text.py  [3.2 KiB]
│   ├── test_commands_uuid.py  [1.7 KiB]
│   ├── test_config.py  [4.1 KiB]
│   ├── test_context.py  [2.3 KiB]
│   ├── test_errors.py  [1.8 KiB]
│   ├── test_filesystem.py  [5.1 KiB]
│   ├── test_formatters.py  [2.0 KiB]
│   ├── test_formatting.py  [2.3 KiB]
│   ├── test_main.py  [932.0 B]
│   ├── test_models.py  [2.2 KiB]
│   ├── test_progress.py  [787.0 B]
│   ├── test_registration.py  [1.1 KiB]
│   ├── test_results.py  [2.2 KiB]
│   ├── test_services_audit.py  [3.1 KiB]
│   ├── test_services_developer.py  [5.3 KiB]
│   ├── test_services_dns.py  [2.9 KiB]
│   ├── test_services_document.py  [1.9 KiB]
│   ├── test_services_encryption.py  [3.3 KiB]
│   ├── test_services_hardware.py  [1007.0 B]
│   ├── test_services_image.py  [10.9 KiB]
│   ├── test_services_image_conversion.py  [2.7 KiB]
│   ├── test_services_json.py  [3.4 KiB]
│   ├── test_services_markdown.py  [8.2 KiB]
│   ├── test_services_network.py  [6.5 KiB]
│   ├── test_services_new.py  [16.5 KiB]
│   ├── test_services_password.py  [4.9 KiB]
│   ├── test_services_plugin.py  [5.6 KiB]
│   ├── test_services_port_scanner.py  [2.5 KiB]
│   ├── test_services_process.py  [4.8 KiB]
│   ├── test_services_security.py  [4.0 KiB]
│   ├── test_services_system.py  [6.3 KiB]
│   ├── test_services_template.py  [2.0 KiB]
│   ├── test_services_text.py  [4.6 KiB]
│   ├── test_utils.py  [2.8 KiB]
│   └── test_validators.py  [4.1 KiB]
├── CHANGELOG.md  [10.4 KiB]
├── CONTRIBUTING.md  [1.6 KiB]
├── LICENSE  [1.0 KiB]
├── pyproject.toml  [3.4 KiB]
├── README.md  [9.9 KiB]
├── ROADMAP.md  [1.5 KiB]
└── SECURITY.md  [829.0 B]

Key design decisions:

  • CommandRegistry — every toolkit registers as a Typer sub-application with two lines of boilerplate, making it trivial to add new command groups.
  • Service layer — business logic lives in services/, decoupled from CLI I/O for testability.
  • Pydantic models — all structured data uses validated Pydantic models.
  • Rich throughout — tables, panels, progress bars, and syntax highlighting are consistent everywhere.
  • Lazy imports — optional dependencies (Pillow, markdown, psutil) are imported only when needed, keeping startup fast.

Documentation

Full documentation lives in the docs/ directory:

Document Description
Installation Detailed install instructions and platform notes
Configuration Config file format, environment variables, precedence
Commands Complete command reference
Developer Guide Extending preonic-cli with new commands
Architecture System design and data flow
Plugins Creating and distributing plugins
Examples Real-world usage examples
Security Security features and best practices
FAQ Frequently asked questions
Troubleshooting Common issues and solutions

Contributing

Contributions are welcome. Please see CONTRIBUTING.md for:

  • Development environment setup
  • Coding standards and linting rules
  • Testing requirements
  • Pull request process
git clone https://github.com/Primeeex/preonic-cli.git
cd preonic-cli
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
ruff check preonic tests
mypy preonic
pytest

Security

To report vulnerabilities, please see SECURITY.md.


License

MIT — see LICENSE for details.

About

an advanced cli tool for developers

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages