> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipedata.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage pipes

> List, pause, resume, and delete pipes.

`pd ls` shows every pipe in your workspace with its state and stats. `pause` / `resume` toggle whether a pipe accepts new data or delivers records. `delete` requests removal.

## TL;DR

```bash theme={null}
$ pd ls                       # all pipes, all-time stats
$ pd ls --range 1h            # rates over the last hour
$ pd pause  events            # stop accepting / delivering
$ pd resume events            # start again
$ pd delete events            # interactive confirm; pass --yes to skip
```

## `pd ls`

```bash theme={null}
$ pd ls
NAME       KIND         FROM    STATUS   REC      BACKLOG  NOTES
orders     source:http  —       running  12,304   0        —
clean      uniq         orders  running  12,180   0        —
webhook    dest:http    clean   running  12,180   0        —
old-test   source:http  —       paused   500      0        —
```

`--range` controls the window for stats (`15m`, `1h`, `24h`, `7d`, `30d`, `all`). Default is `all`.

The `NOTES` column shows transient delivery failures (`* fails`, retried automatically) and permanent `undelivered` counts (records that exceeded the retry budget). See [Forward to a webhook](/guides/forward) for retry behavior.

## Pipe states

| Status    | Meaning                                                                       |
| --------- | ----------------------------------------------------------------------------- |
| `running` | Reading / accepting / delivering.                                             |
| `paused`  | Stopped. Producers can't push to a paused source; downstream pipes pause too. |

## `pd pause` / `pd resume`

Both take a pipe name and toggle its running flag. Works for any pipe kind (`source:http`, `dest:http`, `uniq`).

```bash theme={null}
$ pd pause  events
$ pd resume events
```

<Tip>Pausing a source pauses everything downstream too — pipes that depend on it. Resume the source first, then the downstream pipes.</Tip>

## `pd delete`

```bash theme={null}
$ pd delete events           # prompts: type the pipe name to confirm
$ pd delete events --yes     # skip the prompt (scripts, CI)
```

<Warning>Deletion is irreversible. Records are purged within **72 hours** and cannot be recovered. Pipes downstream of the deleted pipe are paused.</Warning>

## See also

* [`pd ls`](/reference/commands#pd-ls), [`pd pause`](/reference/commands#pd-pause), [`pd resume`](/reference/commands#pd-resume), [`pd delete`](/reference/commands#pd-delete) in the command reference.
