Get running in under 5 minutes. No API keys required for basic usage.
Option A: Pre-built binary (recommended)
# Download from releases
wget https://github.com/MSNYC/pidpal/releases/latest/download/pidpal-linux-x86_64
chmod +x pidpal-linux-x86_64
sudo mv pidpal-linux-x86_64 /usr/local/bin/pidpalOption A: Guided Mode (Recommended for Beginners)
Just run pidpal with no arguments to start the interactive wizard:
pidpalOn your first run, PID Pal offers a short orientation you can skip if you prefer.
You'll see a friendly menu:
==================================================
Welcome to PID Pal!
Your friendly process explainer
==================================================
What would you like to do?
1. Explain a process (enter a PID)
2. List top processes (by resource usage)
3. Search for a process (by name)
4. Help & Settings
5. Exit
Enter your choice (1-5):
Try option 2 to see your top processes, then pick one to explain!
Option B: Direct Command
If you know the PID, explain it directly:
pidpal 1Expected output:
╭─ systemd (PID 1)
│
│ System and service manager for Linux
│
│ What it does:
│ System and service manager for Linux
│ Parent relationship: Root of the process tree.
│ Executable: /sbin/init.
│ ...
│
│ Why it's running:
│ This process is part of the operating system and likely started at boot.
│
│ ✓ This is a core system process.
│
│ When to pay attention:
│ This process typically doesn't require user attention.
│
│ Resources:
│ CPU: 0.1% | Memory: 0.3% | User: root
╰─
Verbose mode - more technical details:
pidpal 1 --verboseQuiet mode - just the summary:
pidpal 1 --quietJSON output - for scripting:
pidpal 1 --jsonFor richer, more conversational explanations, add an API key:
# Install LLM dependencies
pip install "pidpal[llm]"
# Choose one:
export ANTHROPIC_API_KEY="your-key-here"
# or
export OPENAI_API_KEY="your-key-here"Then run pidpal normally - it will automatically use the LLM for better explanations.
Note: When an API key is present, PID Pal enables basic usage logging by default. You can disable it with:
export PIDPAL_OBSERVABILITY="off"To explicitly disable LLM usage:
pidpal 1 --no-llmList top processes (no need for external tools):
pidpal --top 10Search for a process by name:
pidpal --filter firefoxIdentify an unfamiliar process:
# Find PID with ps or pgrep
ps aux | grep -i firefox
pidpal 12345Check what's using high CPU:
# Use PID Pal's built-in sorting
pidpal --top 10 --sort cpuExport process info for logging:
pidpal $(pgrep nginx | head -1) --json > nginx_info.json- Full usage guide - All commands and options
- Configuration - Environment variables and config file
- Sample outputs - More example explanations