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
Use pd-auto-ack --help to see all commands.
pd-auto-ack initCreates a starter configuration file.
pd-auto-ack init --env-file ~/.pd-auto-ack.env
What it does:
0600 where supported.Useful flags:
--env-file PATH: choose where to create the config file.--force: overwrite an existing config file.pd-auto-ack doctorValidates local configuration without calling PagerDuty.
pd-auto-ack doctor --env-file ~/.pd-auto-ack.env
What it does:
Use this first when debugging a config file.
pd-auto-ack checkValidates PagerDuty API access and shows current on-call/incident state without acknowledging anything.
pd-auto-ack check --env-file ~/.pd-auto-ack.env
What it does:
Use this after doctor and before run.
pd-auto-ack runRuns the auto-ack decision flow.
Dry-run one 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
What it does:
triggered incidents as eligible for acknowledgement.acknowledged incidents as visible but not eligible for acknowledgement.--apply, acknowledges matching incidents.Useful flags:
--env-file PATH: load config from a specific env file.--once: run one poll cycle and exit. This is the default for run.--watch: keep polling until stopped with Ctrl-C.--interval SECONDS: wait this many seconds between polls in --watch mode.--apply: live mode. Actually acknowledge matching incidents.--dry-run: force dry-run mode even if PD_APPLY=true is set in the env file.pd-auto-ack tuiOpens an optional k9s-style terminal dashboard.
Install the dashboard extra for a fresh install:
pipx install "pagerduty-oncall-ack[tui]"
For an existing pipx install:
pipx inject pagerduty-oncall-ack textual
Dry-run dashboard:
pd-auto-ack tui --env-file ~/.pd-auto-ack.env
Live dashboard:
pd-auto-ack tui --env-file ~/.pd-auto-ack.env --apply
What it does:
run.--apply or PD_APPLY=true is set.Keys:
r: refresh now.p: pause or resume polling.q: quit.Useful flags:
--env-file PATH: load config from a specific env file.--interval SECONDS: wait this many seconds between refreshes.--apply: live mode. Actually acknowledge matching incidents.--dry-run: force dry-run mode even if PD_APPLY=true is set in the env file.--env-file PATH: path to the config file. Example: ~/.pd-auto-ack.env.--user-id USER_ID: override PD_USER_ID from the env file.--from-email EMAIL: override PD_FROM_EMAIL from the env file.--service-id SERVICE_ID: restrict incident lookup to a service. Can be repeated.--team-id TEAM_ID: restrict incident lookup to a team. Can be repeated.--escalation-policy-id POLICY_ID: restrict on-call checks to an escalation policy. Can be repeated.--schedule-id SCHEDULE_ID: restrict on-call checks to a schedule. Can be repeated.--timeout SECONDS: PagerDuty API request timeout.--max-pages COUNT: pagination safety limit for list requests.--quiet: only print errors.