A Windows‑first CLI toolbox for working with files, services, networking, and repositories. Distributed as a ready‑to‑run Windows executable via GitHub Releases.
- tree: advanced directory tree (filters, sizes, dates, hidden files, total size summary)
- count: line counter (by extensions, ignore patterns, BFS/DFS, detailed stats)
- find: quick global filename search and advanced file/content search (globs, regex, context); uses Everything when available
- backup: simple directory backups (archiving, excludes)
- git: repository analytics (commits, authors, files, activity)
- net: connectivity and diagnostics (ping, traceroute, ports, ip)
- download: downloader with progress, resume, size limits, checksum, smart naming
- monitor: live CPU/RAM/disk/network monitoring and processes
- services: list/start/stop/restart Windows services from the CLI
- unlock: release file locks and clear restrictive attributes (Windows)
- env: environment and system snapshot (OS/Python/Onyx, env vars)
- hash: file hashes and duplicate detection (md5/sha1/sha256)
Recommended: download a prebuilt Windows binary or installer from the Releases page.
onyx-setup.exe— Windows installer (installsonyx.exe, lets you choose install path, optional PATH integration)onyx-windows.exe— portable single-file binary (run as.\onyx-windows.exefrom PowerShell or Command Prompt)
Alternative for development (Poetry):
poetry install
poetry run onyx --helpLocal build (PyInstaller, Windows):
poetry run pyinstaller --onefile --name onyx onyx/main.py
# dist/onyx.exe (Windows)Requirements: Python >=3.10,<3.13.
Tree (sizes + modified time, depth limit, JSON/CSV output):
onyx tree . --show-time --show-hidden # use --no-files to hide files
onyx tree . --max-depth 2 # real depth limit (no deep traversal)
onyx tree . --output json > tree.json # machine-readable treeCount lines only in Python files (table/JSON/CSV):
onyx count . --extensions .py --show-files
onyx count . --extensions .py --output json > count.json
onyx count . --extensions .py --output csv > count.csvQuick global filename search (uses Everything/locate if available):
onyx find git.exe # search across the whole system
onyx find README.md --path . # restrict to current folderFind text inside files (clean JSON for scripting):
onyx find content . "TODO" --extension .py -C 2
onyx find content . "TODO" --extension .py --output json > matches.jsonDownload with progress and smart naming:
onyx download single "https://example.com/file.zip" -o file.zip
# Google Drive direct: https://drive.google.com/uc?export=download&id=<ID>Monitor system resources (live or JSON/CSV stream):
onyx monitor system --interval 1 --duration 10
onyx monitor system --interval 1 --duration 10 --output json > metrics.jsonManage Windows services:
onyx services list # all services
onyx services list --status Running # only running services
onyx services start "Spooler" # start a service
onyx services restart "Spooler"Environment / system snapshot:
onyx env # human-readable summary
onyx env --output json > env.json
onyx env --no-env --output json # without full env varsHashing and duplicate detection:
onyx hash . --algo sha256 --output table
onyx hash . --algo sha256 --duplicates-only --output json > dups.json
onyx hash . --algo sha256 --min-size 1MB --extension .py --output csv > hashes.csvUnlock a file for deletion/modification:
onyx unlock "C:\path\to\file.txt" --force --recursiveonyx --help
onyx tree --help
onyx count --help
onyx find --help
onyx backup --help
onyx git --help
onyx net --help
onyx download --help
onyx monitor --help
onyx services --help
onyx unlock --help- New versions are published automatically in Releases
- To update, download the latest Windows executable
- See CHANGELOG.md for detailed release notes and version history.
MIT License. See LICENSE.
