Skip to main content

Interactive TUI for exploring and cleaning up processes - find orphans, memory hogs, and kill them

Project description

procclean

Interactive TUI for exploring and cleaning up processes - find orphans, memory hogs, and kill them.

PyPI Downloads CI License Docs Python 3.14+ Linux

Features

  • Memory overview - Real-time total/used/free/swap display
  • Multiple views - All, Orphaned, Killable, Process Groups, High Memory
  • Orphan detection - Finds processes whose parent died (PPID=1)
  • Killable detection - Orphans safe to kill (not tmux, not system services)
  • Stale detection - Flags processes with deleted executables
  • Tmux awareness - Won't flag tmux processes as orphan candidates
  • Batch operations - Select multiple processes and kill them at once
  • Process grouping - Find duplicate/similar processes consuming resources
  • Custom columns - Select which columns to display in CLI output
  • Configurable thresholds - Adjust memory filters via CLI flags
  • Preview mode - Dry-run for kill operations with formatting options
  • CLI mode - Scriptable commands with JSON/CSV/Markdown output
  • Clickable TUI - Click headers to sort, rows to select

Installation

pip install procclean

Or with uv (recommended):

uv tool install procclean

Or with pipx:

pipx install procclean

Run without installing:

uvx procclean
# or
pipx run procclean

Usage

TUI Mode (default)

procclean

CLI Commands

# List processes
procclean list                      # List processes (table)
procclean ls                        # Alias for 'list'
procclean list -f json|csv|md       # Different output formats
procclean list -s mem|cpu|pid|name|cwd  # Sort by field
procclean list -a                   # Sort ascending (default: descending)
procclean list -o                   # Orphans only
procclean list -m                   # High memory only (>500MB)
procclean list -k                   # Killable orphans only
procclean list --cwd                # Filter by current directory
procclean list --cwd /path/to/dir   # Filter by specific cwd
procclean list -n 20                # Limit output to 20 processes
procclean list -c pid,name,rss_mb   # Custom columns
procclean list --min-memory 10      # Only processes using >10 MB
procclean list --high-memory-threshold 1000  # High-mem at 1000 MB

# Process groups
procclean groups                    # Show process groups
procclean g                         # Alias for 'groups'
procclean groups -f json            # Groups as JSON

# Kill processes
procclean kill <PID> [PID...]       # Kill process(es)
procclean kill -f <PID>             # Force kill (SIGKILL)
procclean kill --cwd /path -y       # Kill all in cwd (skip confirm)
procclean kill -k -y                # Kill all killable orphans
procclean kill -k --preview         # Preview what would be killed
procclean kill -k --dry-run         # Alias for --preview
procclean kill -k --preview -O json # Preview in JSON format

# Memory summary
procclean mem                       # Show memory summary
procclean memory                    # Full name for 'mem'
procclean mem -f json               # Memory info as JSON

TUI Keybindings

Key Action
q Quit
r Refresh
k Kill selected (SIGTERM)
K Force kill (SIGKILL)
o Show orphans
O Show killable
a Show all
g Show groups
w Filter by selected cwd
W Clear cwd filter
Space Toggle selection
s Select all visible
c Clear selection
1 Sort by memory
2 Sort by CPU
3 Sort by PID
4 Sort by name
5 Sort by cwd
! Reverse sort order

Click column headers to sort, click rows to toggle selection.

Views

  • All Processes - All user processes sorted by memory usage
  • Orphaned - Processes with PPID=1 (parent died)
  • Killable - Orphans safe to kill (not in tmux, not system services)
  • Process Groups - Similar processes grouped together
  • High Memory - Processes using >500MB RAM (configurable)

Output Formats

CLI supports multiple output formats via -f:

  • table - Human-readable table (default)
  • json - JSON array for scripting
  • csv - CSV for spreadsheets
  • md - Markdown table

Custom Columns

Use -c to specify which columns to display:

procclean list -c pid,name,rss_mb,cwd

Available columns: pid, name, rss_mb, cpu_percent, cwd, ppid, parent_name, status, cmdline, username

Requirements

  • Python 3.14+
  • Linux (uses /proc filesystem)

Development

git clone https://github.com/kjanat/procclean
cd procclean
uv sync
uv run pre-commit install --install-hooks

Run tests:

uv run pytest                    # All tests
uv run pytest --cov -vv          # With coverage

Lint and type check:

uv run ruff check src/
uv run ty check

License

MIT

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

procclean-2.0.0.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

procclean-2.0.0-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file procclean-2.0.0.tar.gz.

File metadata

  • Download URL: procclean-2.0.0.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for procclean-2.0.0.tar.gz
Algorithm Hash digest
SHA256 da9470f9eab92702be55244591e04421509d59a2fe3fee5a8fd70c7c22d9d998
MD5 f7468c1ff8f89817ae7b7f07092ada3a
BLAKE2b-256 6703f7fb7eb293e33f821913342fca34089c14fc34f886f9760f54a0d993f369

See more details on using hashes here.

File details

Details for the file procclean-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: procclean-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for procclean-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cad4cfb3a58c9cffab0e3ddc1b98d687a2fa8252568cd4fbfc1b42636e10a079
MD5 cd4d4a2f944ecdb461827ab8f6d28fdc
BLAKE2b-256 960416cb6c22117f8f70ed839d2ba8cc16c62bb76c30bef4779abf79648c9404

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page