---
name: "pipectl"
section: "1"
platform: "linux"
package: "pipectl"
version: "0.5.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pipectl"
---

# pipectl(1)

a simple named pipe management utility

## NAME

pipectl - a simple named pipe management utility

## SYNOPSIS

**pipectl** \[-h,-o,-i,-n N,-p P,-f,-l\]

## DESCRIPTION

**pipectl** is a tool to create and manage short-lived named pipes that can be used to feed stdin to a longer-lived program from elsewhere in the system without needing a complex IPC mechanism such as UNIX domain sockets.

**pipectl** is intended to be used in pairs, one call to **pipectl** opens the pipe (**-o**) and feeds it to a process, and all others with the same name or path will write to the stdin of that process:

$ pipectl -o \| daemon-process

$ echo "do-the-thing --color red" \| pipectl -i

$ echo "quit" \| pipectl -i

The daemon process process will never observe an EOF on its stdin. **pipectl** will instead block until another input pipe (**-i**) is openend and will then feed the stdin of that process to the daemon process asynchronously.

When the daemon process exits or closes its stdin, **pipectl** will clean up and remove the created named pipe automatically.

## OPTIONS

- **-h, --help**

  Show help message and exit.

- **-o, --out**

  Create a named pipe and print its contents to stdout.

- **-i, --in**

  Write stdin to an open named pipe created with **-o**.

- **-n N, --name N**

  Create named pipe with a custom name. See **PATHS**.

- **-p P, --path P**

  Create a names pipe at a custom path. See **PATHS**.

- **-f, --force**

  Force overwrite an existing named pipe event if it already exists (only usable with **-o**).

- **-l, --lock**

  Use [**flock**(2)](/flock/2.md) to synchronize writes to the pipe (only usable with **-i**).

## PATHS

By default, **pipectl** will create the named pipe in a temporary directory (**TMP**). The first available directory of these will be used:

- •

  **$XDG\_RUNTIME\_DIR**

- •

  **$TMPDIR**

- •

  /tmp

The resulting path of the named pipe is as follows:

**default**

**TMP**/pipectl.**UID**.pipe

**with --name NAME**

**TMP**/pipectl.**UID**.**NAME**.pipe

**with --path PATH**

**PATH**

where **UID** is the real user id of the **pipectl** process (see **getuid**(3)).

## AUTHORS

Maintained by Ferdinand Bachmann \<ferdinand.bachmann@yrlf.at\>. More information on **pipectl** can be found at \<https://github.com/Ferdi265/pipectl\>.

## SEE ALSO

[**pipectl**(1)](/pipectl/1.md) [**mkfifo**(1)](/mkfifo/1.md) [**flock**(2)](/flock/2.md) **getuid**(3)
