Podkeeper · A2 Digital Products

Pods that turn themselves off.

Launches a GPU pod when there's work, kills it when the queue empties, watches your balance, texts your phone. No more paying for a pod that sat idle all night.

podkeeper · pool
Podkeeper pool view: one pod running for three queued ComfyUI jobs, two terminated after idle, cost per pod today, balance with alert threshold

Podkeeper is a small self-hosted daemon with a web panel that sits between your job queue and RunPod. When jobs are waiting it launches or adopts a pod from your template, waits for it to boot healthy, runs the work, and terminates the pod the moment the queue is empty for longer than your idle limit. It caps how many pods can exist at once, watches your RunPod balance and sends alerts to your phone. Sold by A2 Digital as a one-time purchase.

Launch on demandIdle killMax-pod capBalance watchTelegram alertsYour own RunPod key
Why people run it

The GPU bill is the whole cost. Control the GPU.

No idle hours

An H100 forgotten overnight is a car payment. Podkeeper terminates on an empty queue, every time, with a per-pod idle timer you set.

Work still starts fast

Queue a job and a pod comes up from your template within the normal RunPod boot time, health-checked before work is sent. Adopts a pod you started by hand, too.

A cap you can't blow through

Maximum pods, low-balance alert, template and GPU fallback when your first choice is sold out. Unattended, verified end to end.

How it works

Install once, forget it exists

1

Point it at your queue

Podkeeper watches a folder or an HTTP queue for jobs. The reference setup is ComfyUI; any job that can be expressed as a file or a POST works.

2

Add your RunPod key and template

Your own API key, your pod template, GPU preference and fallbacks, maximum pod count, idle seconds. One config file.

3

Let it tick

Every 20 seconds: queued work with no pod → launch; pod healthy → dispatch; queue empty past idle limit → terminate. Balance checked on each tick.

4

Get told, not surprised

Launch, terminate, low balance and boot failures go to Telegram. The panel shows the pool, costs today and what it saved you.

20s tick
from empty queue to terminate command, plus your idle grace period.
0 idle overnights
on the reference install since the watchdog went in. The log shows every stop.
1 file
of config: key, template, caps, alerts. No dashboard account, no SaaS.
Pricing

One-time. Less than one forgotten pod.

Podkeeper
$89one-time
Daemon, web panel, config template, install guide. Runs anywhere Python runs.
  • Pod launch / adopt / terminate with max-pod cap
  • Idle watchdog with per-pod grace period
  • Boot health polling before dispatch
  • Balance check and low-balance alert
  • Telegram notifications
  • Template and GPU fallback
  • Pool panel with cost today and savings
  • 30 days email support
  • Not a hosted service; your key never leaves your machine
Get Podkeeper
Updates
$5/month
Optional. RunPod API changes, new queue adapters, fixes.
  • Daemon and panel updates
  • New queue adapters
  • Email support
Ask about updates

Prices in USD. Requires Python 3.10+ on any always-on machine (a $5 VPS, a home server, or the same box that runs your queue) and your own RunPod account and API key.

ComfyUI creatorsAI video studiosLoRA trainersAgencies running pod fleets
Questions

What pod users ask first

Doesn't RunPod serverless already do this?

For some workloads. Serverless means a different packaging model, cold starts, and per-second pricing that isn't always cheaper for long ComfyUI jobs. Podkeeper keeps you on normal pods and templates you already have, and simply stops paying for idle time.

What counts as the queue?

Out of the box: a folder of job files, or an HTTP endpoint that reports pending jobs. The reference adapter is ComfyUI's own queue. Other adapters are small Python classes; the guide shows one.

Where does Podkeeper itself run?

Anywhere Python runs, always on. A cheap VPS, a home server, or the machine that already hosts your queue. It needs outbound HTTPS to RunPod and Telegram, nothing inbound.

Can it run more than one pod?

Yes, up to the maximum you set. It scales up when the queue is deep and back down as pods go idle.

What if my preferred GPU is sold out?

Configure fallbacks in order (template and GPU type). Podkeeper tries them in sequence and tells you which one it got.

Does it see my jobs?

Only their existence and count. It never reads job contents or outputs.

Stop paying for idle GPUs

One config file. Pods start when there's work and stop when there isn't.

Get Podkeeper