Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

WinCoreUtils

A a growing collection of small, focused, Windows-native command-line tools inspired by the classic GNU / Unix core utilities.

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

GNU-inspired command-line utilities, written natively for Windows.


What is WinCoreUtils?

WinCoreUtils is a growing collection of small, focused, Windows-native command-line tools inspired by the classic GNU / Unix core utilities.

These tools are not ports, not wrappers, and not dependent on WSL. Although some have been named to avoid conflict with WSL tools.

  • ddd — Direct Disk Duplicator
  • df — Disk Usage
  • lss — Directory Listing
  • uptime — System Uptime
  • lsusb — USB Devices
  • lspci — PCI Devices
  • v4lwin — Video Capture Devices

They are written directly against the Windows API using Delphi, producing fast, standalone executables that feel at home on Windows while retaining the clarity and utility of their Unix counterparts.

This project exists to fill the practical gaps where WSL, PowerShell, and existing Windows tooling fall short — especially when you just want a simple command that works.


Design Goals

  • Small, single-purpose executables
  • Native Windows behavior
  • No background services
  • No frameworks
  • No dependencies
  • Predictable output
  • Easy to modify and extend

Each utility is intentionally standalone. If you only need one tool, you can take just that one.


Included Utilities

ddd — (Direct Disk Duplicator)

A Windows-native, dd-inspired command-line tool for writing raw images directly to physical disks.

cmd
C:\> ddd
Usage: dd if=<src> of=<dst> [bs=size] [count=n] [skip=n] [seek=n] [status=mode] [conv=notrunc] [list=1]
  if=PATH          Input file, \\.\PhysicalDriveN, "-" for stdin, or "zero" for null stream
  of=PATH          Output file, \\.\PhysicalDriveN, or "-" for stdout
  bs=SIZE          Block size (supports K, M, G). Must be multiple of 512 for physical drives.
  count=N          Number of blocks to copy
  skip=N           Skip N blocks in input
  seek=N           Seek N blocks in output
  status=progress  Show visual progress bar and speed (requires full size known)
  status=eta       Show Estimated Time of Arrival (ETA) after 100MB warmup
  conv=notrunc     Do not truncate output file
  list=1           List available physical drives

To list disks:

cmd
C:\Downloads> ddd list=1
Available Physical Drives:
--------------------------------------------------
\\.\PhysicalDrive0   Size:     931.51 GB
\\.\PhysicalDrive1   Size:      31.22 GB
--------------------------------------------------

To write an image (with progress):

cmd
C:\Downloads> ddd if=Windows10-22H2.iso of=\\.\PhysicalDrive1 bs=1M status=progress
Dismounting volume D:...
|====================| 100%  32.23 MB/s (4782948352 bytes)
Boot Sector successfully written.
4562+0 records in
4562+0 records out
4782948352 bytes copied.
Press Enter to close...

To write an image (with time estimation):

cmd
C:\Downloads> ddd if=kubuntu.iso of=\\.\PhysicalDrive1 bs=1M status=eta
Dismounting volume D:...
ETA: 00:16 ( 49%) @ 32.67 MB/s

To Quick-Zero a disk (wipe out the first 100mb):

cmd
C:\Downloads> ddd if=zero of=\\.\PhysicalDrive1 bs=1M count=100 status=progress
Dismounting volume D:...
|====================| 100%  22.21 MB/s (1048576000 bytes)
1000+0 records in
1000+0 records out
1048576000 bytes copied.
Press Enter to close...

When encountering the "Incorrect Function" write error, just clean the disk with diskpart.


df — Disk Usage

Shows disk usage, free space, filesystem type, volume label, and drive type (fixed, removable, network).

cmd
C:\> df
Filesystem  Type      Label           FS Type     Size (GB)   Used (GB)   Free (GB)  Used%
-------------------------------------------------------------------------------------------
C:\        fixed     (No Label)      NTFS           999.30G     777.53G     221.77G   77.8%
D:\        removable (No Label)      FAT32           15.74G       0.21G      15.53G    1.3%
F:\        fixed     Archive         NTFS          4000.78G    2566.78G    1434.01G   64.2%
M:\        network   music           NTFS         15355.71G    4620.01G   10735.70G   30.1%

lss — Directory Listing (ls-style)

A Windows-native alternative to ls, renamed to avoid PowerShell conflicts.

Supports:

  • -a — show hidden files
  • -l — long format
  • -la / -al — combined
cmd
C:\> lss -la C:\Qt
Attr           Size  Modified             Name
--------------------------------------------------------
d----             0  2025-05-21 20:22:26  6.9.0
----a        42,541  2025-05-21 20:22:45  components.xml
d----             0  2025-05-21 20:22:26  dist
----a       182,778  2025-05-22 14:43:15  InstallationLog.txt

uptime — System Uptime

Displays current time and how long the system has been running.

cmd
C:\> uptime
17:14:43 up 0 day(s), 9 hour(s), 49 min(s)

lsusb — USB Devices

Lists connected USB devices in a compact, readable format.

cmd
C:\> lsusb
[0] Generic USB Hub
[1] Logitech Webcam C920
[2] USB 3.0 Card Reader

lspci — PCI Devices

Lists PCI devices such as GPUs, network adapters, and audio controllers.

cmd
C:\> lspci
[0] NVIDIA GeForce RTX 3070
[1] Realtek PCIe Audio Controller
[2] Intel Wi-Fi 6 AX200

v4lwin — Video Capture Devices (v4l2-ctl inspired)

Enumerates video capture devices and their supported formats, resolutions, bit depths, and frame rates.

cmd
C:\> v4lwin list-devices
Device 0: Logi C615 HD WebCam
Device 1: OBS Virtual Camera

Once you list the devices, you can list supported formats.

cmd
C:\> v4lwin list-formats 0
MJPG:
 Size: 640x480 (24 bit) @ 30FPS
 Size: 1280x720 (24 bit) @ 30FPS
 Size: 1920x1080 (24 bit) @ 30FPS
YUY2:
 Size: 640x480 (16 bit) @ 30FPS
 Size: 1280x720 (16 bit) @ 10FPS

Installation

Each tool builds into a single executable.

You can:

  • Build from source using Delphi
  • Drop the EXEs into a directory on your PATH

No installers. No registry entries.


Contributing

WinCoreUtils is intentionally open-ended.

You are encouraged to:

  • Fork it
  • Modify tools
  • Add new utilities
  • Make the tools your own

More tools will be added over time.


License

WinCoreUtils is released under the MIT License.

Use it freely. Modify it freely. Ship it freely.


Final Thoughts

WinCoreUtils is about rediscovering the joy of small, dependable tools.

If you’ve ever typed a command out of habit and wished Windows had it — this project is for you.

Happy coding.