Developer Tools & CLI Active CLI v0.2.0 2026 Dual: WaqfDPL-Mulzim 1.0 / AGPL-3.0

SwapAudit

Per-process swap and /tmp cache attribution with guarded cleanup for Linux

Go CLILinuxZero TelemetryWaqf
SwapAudit editorial woodblock artwork
Quick Install / Run
go install github.com/jadmadi/swapaudit/cmd/swapaudit@v0.2.0
Domain Developer Tools & CLI
Languages Go
License Dual: WaqfDPL-Mulzim 1.0 / AGPL-3.0
Status Active CLI
The Problem

Why This Was Built

Linux developer workstations accumulate swapped-out background processes and stale /tmp caches, but `free`, `top`, and `vmstat` only show aggregates.

The Solution

The Architectural Answer

Reads /proc and /tmp to rank the processes and caches responsible, then drains swap or prunes caches through explicit, guarded actions with a dry-run.

Capabilities

Key Features & Architecture

Per-process VmSwap ranking, sortable by size, swap, RAM, or age, plus /tmp cache size and age
Guarded no-reboot swap drain with per-device restore and a JSON receipt
Versioned --json snapshot for scripts, statuslines, and CI
Headless sampler and foreground watch mode with threshold notifications
Interactive four-tier action picker with typed scope confirmation
Engineering

Technical Specifications

Primary Languages
Go
Frameworks & Tooling
Go standard libraryLinux /proc
Architecture & Execution Model
Single static binary; /proc parsers, pure planner, guarded executor; no daemon
Licensing Model
Dual: WaqfDPL-Mulzim 1.0 / AGPL-3.0 (waqf)
Release & Lineage
Active release cycle since 2026 · Maintained by @JadMadi
Knowledge

Frequently Asked Questions

Does SwapAudit send my data anywhere?

No. The default audit makes no network requests. `--check-updates` or `SWAPAUDIT_CHECK_UPDATES=1` performs one GitHub release request. There is no telemetry and no account.

Which Linux architectures are supported?

amd64, arm64, armv7, and riscv64, as static binaries. `go install` works on any Linux architecture supported by Go.

Does it kill processes automatically?

No. Cleanup requires an explicit flag. Process termination checks the real UID, PID start ticks, and orphan evidence; `--dry-run` previews every action.