Skip to content

Releases: Luckz/procmem

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 19:41

Added

  • Process termination (/kill, /killtree): Terminate individual processes or whole process trees directly from procmem, serving as a safer alternative to taskkill or Sysinternals pskill64 with built-in resource reclamation accounting and safety barriers.
    • /kill <name|PID>: Terminates the specified PID or matching processes without affecting child processes.
    • /killtree <name|PID>: Terminates matching roots plus all descendant processes top-down (root first, preventing supervisor/watchdog respawns).
    • Pre-calculated reclamation: Measures and displays exact physical RAM, commit charge, and CPU time freed upon termination.
    • Safety barrier: Terminating by process name strictly requires /f or /force. Omitting /f performs a non-destructive dry run, printing a full preview table of processes and memory before exiting with code 2. Numeric PID targeting does not require /f.
    • PID recycling safety: Validates kernel process creation timestamps (child.created >= parent.created), eliminating PID reuse hazards.
    • Safety guards: Rejects empty targets ("") and blocks wildcard-only patterns (*, **) in kill mode to prevent accidental system-wide termination.
    • Quick usage:
      • procmem /kill 1234 — kill single process by PID
      • procmem /killtree 1234 — kill process tree by root PID
      • procmem /kill /f notepad — kill matching processes by name
      • procmem /killtree /f msedge — kill browser tree by name
      • procmem --kill -ef notepad — kill exact name with flag bundling
      • procmem /killtree msedge — dry-run preview (without /f)
  • POSIX flag terminator (--): Supports -- to stop flag parsing; all subsequent arguments are treated as positional targets.

Changed

  • Column layout: Moved CPU Time, GPU Ded, and GPU Shr before Names so all fixed-width numeric metrics are grouped on the left, preventing wide process lists from pushing numbers off-screen.
  • Kill dry-run preview: Includes numeric PIDs in the preview table when mixed with process name targets.

Fixed

  • Empty string validation: Disallowed empty process name arguments (""), which previously matched every running process on the system.
  • Flag termination with --: Fixed -- so it properly stops flag parsing per POSIX convention, allowing arguments starting with - or / after -- to be targeted as process names.

Removed

  • Removed /ec: Dropped the deprecated /ec option completely, allowing -ec to correctly unpack as the short-flag bundle -e (exact name) and -c (CPU time).

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 18:11

Added

  • GPU memory metrics (/gpu, /g, --gpu): Reports Dedicated GPU memory (VRAM) and Shared system GPU
    memory for matched processes and descendant trees using Windows Performance Data Helper (pdh.dll).
    Evaluated lazily with zero overhead when omitted, requiring zero elevation and zero open process handles.
  • CPU time metrics (/cpu, /c, --cpu): Appends total user + kernel CPU execution time formatted as D:HH:MM:SS.
  • Short flag bundling & Unix CLI syntax: Supports POSIX single-hyphen bundles (e.g. -cgs, -xcg, -fs),
    single flags (-c, -g, -s), and standard GNU-style double-hyphen options (--cpu, --gpu, --strict,
    -- exact-tree, --all, --flat, --exact, --short, --help).
  • Strict tree traversal (/x, /strict, --strict): Replaces /ec with /x ("eXact tree" mnemonic: exact
    root match and exact-name children only), enabling clean single-letter flag bundling.
  • Short output mode (/s, /short, -s): Omits the Names column for compact terminal displays.

Changed

  • Names column ordering: The root process name is now guaranteed to appear first in the Names column,
    followed alphabetically by unique descendant names.
  • Summary footer: Displays aggregated CPU time and dedicated/shared GPU memory metrics when enabled.
  • Numeric formatting: All process counts and memory figures now use thousands separators for readability.
  • Windows slash flags: Windows slashes are strictly single, space-separated flags (/c /g /s) to prevent
    POSIX path conversion traps in Git Bash and MSYS2 environments.

Deprecated

  • /ec is deprecated in favor of /x / /strict (retained as backward-compatible alias), to be removed in v1.2.0.

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 17:14

procmem is a lightweight, standalone Windows CLI utility that locates processes, identifies root instances, and
aggregates memory metrics (Private Working Set and Commit) across process trees without requiring elevation.

🌟 What's New in v1.0.0

  • Process tree aggregation: Identifies topmost root instances for matching processes and rolls up Private
    Working Set (RAM MB) and PagefileUsage (Commit MB) across all descendants.
  • Task Manager semantics: RAM MB metric measures Private Working Set (WorkingSetPrivateSize), matching Task
    Manager's default "Memory" column and eliminating multi-process shared memory inflation.
  • Non-elevated system queries: Direct integration with NtQuerySystemInformation provides full visibility
    across user, system, and service processes without UAC prompts.
  • Root consolidation & cycle detection: Consolidates overlapping root hierarchies and prevents loops on PID 0
    or circular parent references.
  • Multi-target queries: Search multiple processes in a single call (e.g., procmem chrome discord edge)
    under a shared root hierarchy.
  • Flexible search modes: Substring (default), prefix (/p), exact (/e), case-sensitive (/c, /pc,
    /ec), and flat listing (/f).
  • Clean output: Tabular formatting with right-aligned memory metrics, left-aligned process names, and
    automatic quoting for executable names containing spaces.

📦 Downloads

  • procmem.exe: Standalone 64-bit Windows binary (x86-64 / AMD64).
  • procmem-arm64.exe: Standalone ARM64 Windows binary (Snapdragon / Surface Copilot+).
  • .zip archives: Bundled with README, LICENSE, and CHANGELOG.
  • checksums.txt: SHA-256 hashes for verification.

Full Changelog: https://github.com/Luckz/procmem/commits/v1.0.0