A new Hacker News post highlights proc, a semantic CLI tool designed to bridge the gap between human intuition and machine readability in process management. While developers have long relied on fragmented pipelines involving lsof, ps, and kill, proc consolidates these into single, guessable commands that work across macOS, Linux, and Windows. The tool targets the growing demographic of AI coding agents that struggle with parsing unstructured terminal output.
The Agent-Friendly Interface
The core innovation here is the design for LLM consumption. proc outputs a single JSON document when the --json flag is invoked, eliminating the need for agents to parse ASCII tables or handle inconsistent whitespace. Standardized exit codes (0 for success, 1 for error, 2 for not found, 3 for permission denied, 4 for invalid input) provide unambiguous feedback to coding agents like Claude Code, Codex, and Cursor. This deterministic behavior reduces the hallucination rate when agents attempt to debug stuck dev servers.
Semantic Commands Over Pipelines
Instead of remembering flag combinations for lsof -i :3000 -P -n, users can simply type proc on :3000. The tool supports targeting processes by port, PID, name, or path, with a leading colon syntax to denote ports. Features like proc why :3000 trace parent process chains to explain why a port is occupied, while proc free :3000 attempts to gracefully release it. The --dry-run flag previews actions before execution, a critical safety feature for autonomous agents that might otherwise kill critical system processes.
Key Takeaways
- proc offers 19 commands for process management, including freeze, orphans, and wait.
- The tool includes a specific 'agent skill' to teach popular LLMs when to invoke proc.
- It replaces complex pipelines like 'lsof -t -i:3000 | xargs kill' with 'proc free :3000'.
The Bottom Line
proc solves the 'last mile' problem for AI agents: they can write code, but often fail at the operational tasks required to run it. By standardizing process management into a semantic, JSON-first interface, it makes the terminal safe for LLMs to touch without breaking the dev environment.