Transparent Pipe (tp)

March 24, 2026 · View on GitHub

Go Report Card build GitHub release (latest by date) GitHub go.mod Go version GitHub

This project is inspired by akavel/up. tp is a terminal-based application that displays the result of commands at every keystroke. It makes it easy to chain commands for tasks like text manipulation.

It provides two displays:

  1. The stdout of the last pipe.
  2. A live preview of the current command's result.

Installation

Homebrew (macOS / Linux):

brew install minefuto/tap/tp

AUR (Arch Linux):

yay -S tp-bin

Go:

go install github.com/minefuto/tp@latest

Keybindings

OperationKey
Move left (one char) / Ctrl-B
Move right (one char) / Ctrl-F
Move left (one word)Alt← / Alt-B
Move right (one word)Alt→ / Alt-F
Move to beginning of lineHome / Ctrl-A
Move to end of lineEnd / Ctrl-E
Delete one char before the cursorBackspace / Ctrl-H
Delete one char after the cursorDelete / Ctrl-D
Delete one word before the cursorCtrl-W
Delete from the cursor to end of lineCtrl-K
Delete entire lineCtrl-U

Sandbox

tp executes commands at every keystroke, so all preview commands run inside a sandbox that restricts file system access to read-only. This prevents destructive operations such as rm or any other write to the file system.

OSSandbox mechanismRequirement
macOSApple Seatbelt (sandbox-exec)sandbox-exec must be available
LinuxLandlockKernel with Landlock v3+ support

tp will exit with an error if the required sandbox is not available.

Shell Integration

You can synchronize your shell's line buffer with tp's input field. The following config enables zsh integration with the keybinding ctrl + |:

function transparent-pipe() {
  BUFFER="$(tp -c "${BUFFER}|")"
  CURSOR=$#BUFFER
}
zle -N transparent-pipe
bindkey "^|" transparent-pipe