pd-auto-ack

A local CLI that acknowledges PagerDuty incidents only when the configured user is on call.

View the Project on GitHub nithishduda-ai/pagerduty-oncall-ack

Quick Start

Install

Homebrew

On macOS or Linux with Homebrew installed:

brew install nithishduda-ai/tap/pagerduty-oncall-ack
pd-auto-ack --version

This installation includes the optional terminal dashboard. See the Homebrew guide for upgrade, uninstall, and troubleshooting steps.

pipx

Use pipx when Homebrew is unavailable or when you prefer a Python-managed installation.

macOS with Homebrew:

brew install pipx
pipx ensurepath
exec zsh -l

Linux:

python3 -m pip install --user pipx
python3 -m pipx ensurepath
exec "$SHELL" -l

Install from PyPI:

pipx install pagerduty-oncall-ack
pd-auto-ack --version

Install with the optional terminal dashboard:

pipx install "pagerduty-oncall-ack[tui]"
pd-auto-ack tui --env-file ~/.pd-auto-ack.env

For an existing pipx install:

pipx inject pagerduty-oncall-ack textual

Upgrade a pipx installation:

pipx upgrade pagerduty-oncall-ack

The installed CLI command is pd-auto-ack.

Create Config

Create a starter config file:

pd-auto-ack init --env-file ~/.pd-auto-ack.env

Edit it:

nano ~/.pd-auto-ack.env

Fill in:

PD_API_TOKEN=...
PD_USER_ID=...
PD_FROM_EMAIL=...
PD_APPLY=false
PD_POLL_SECONDS=30

Keep PD_APPLY=false until dry-run output looks right.

Validate

Check local config parsing:

pd-auto-ack doctor --env-file ~/.pd-auto-ack.env

Check PagerDuty access and current state:

pd-auto-ack check --env-file ~/.pd-auto-ack.env

Example healthy output:

PagerDuty API token is valid for user@example.com.
On call now: EU Support Escalation Policy / EU Support Escalation / level 1
Open incidents assigned to user: 0
Triggered incidents eligible for acknowledgement: 0

That means the token works, the CLI identified the PagerDuty user, the user is currently on call, and there are no open incidents assigned to them right now.

Run

One dry-run cycle:

pd-auto-ack run --env-file ~/.pd-auto-ack.env --once

Continuous dry-run:

pd-auto-ack run --env-file ~/.pd-auto-ack.env --watch --interval 30

Continuous live mode:

pd-auto-ack run --env-file ~/.pd-auto-ack.env --watch --interval 30 --apply

Optional terminal dashboard:

pd-auto-ack tui --env-file ~/.pd-auto-ack.env