yup> 

Type shell pipelines. Get typed streams.

Yup Shell is an interactive REPL that composes gloo-foo's typed-stream pipeline from 40+ type-safe Go commands — in-process, no subprocesses.

yup> playground
yupsh REPL — browser playground (no JavaScript: static example below)
yup> seq 1 100 | grep 7 | wc -l
19
yup> echo hello world | tr a-z A-Z
HELLO WORLD
yup> cat access.log | grep 503 | cut -d' ' -f1 | sort | uniq -c | sort -rn | head -3
3 203.0.113.7
1 198.51.100.4
1 192.168.1.10
enable JavaScript to type your own pipelines

↑/↓ history · type help · sample files: access.log · server.log · data.txt · *.go

What it is

A familiar shell interface, backed entirely by type-safe Go.

Typed streams, not text pipes

Every command is a gloo.Command. The pipe operator composes them through gloo-foo's streaming API.

In-process, no subprocesses

Core commands resolve to Go functions and run in one process — no fork/exec for the built-ins.

Familiar by design

Pipes with |, flags like -v, *.go globs, ~ expansion, history, and in-line editing.

40+ tools, escape hatches included

Sources, filters, and transforms — plus exec, git, and perl when you need a real subprocess.

Commands

The built-in toolbox. Full reference →  playground commands run live above.

Sources

echo emit arguments as a line playground
emit emit literal text
yes repeat a line until interrupted playground
seq generate a numeric sequence playground
ls list directory entries
find walk a directory tree

Search & filter

grep filter lines matching a pattern playground
comm compare sorted streams
uniq drop adjacent duplicate lines playground

Transform

tr translate playground
sed apply an s/// substitution playground
cut select fields playground
paste merge lines
split split fields onto lines
join join lines on a common field
nl number lines playground
cat concatenate (optional numbering) playground
tac reverse line order playground
head output the first lines playground
tail output the last lines playground
rev reverse each line playground
base64 base64 encode or decode
hexdump hex dump of input

Summarize & order

wc count lines playground
sort sort lines playground
shuf shuffle lines randomly
diff compare streams line by line
json pretty-print JSON

Paths

basename strip directory and suffix playground
dirname strip the last path component playground

External escape hatches

exec run an external program
git run git
perl run a perl one-liner

Install

Go 1.26+. One command.

$ go install github.com/yupsh/repl/yupsh@latest

Then run yupsh to open the prompt, or pipe a script: yupsh < pipeline.txt.