DR. MOHD ISKANDAR PUTRA, PH.DMOHD ISKANDAR PUTRA, PH.D
HOMEABOUTPROJECTSTOOLSBLOG
COFFEE
Iskandar Putra
MOHD ISKANDAR PUTRA

Architecting the invisible layer between hardware and possibility. Building systems that bridge the gap between physical reality and digital precision.

EXPLORE

  • About
  • Projects
  • Blog
  • Roadmap

RESEARCH

  • Google Scholar
  • Scopus
  • Substack Insights
  • Tools & Gear

CONNECT

  • Get in Touch
© 2026 MOHD ISKANDAR PUTRA, PH.D — All Rights Reserved.|Penang, Malaysia
Engineered on First Principles, Control Theory & Deterministic Logic.
All Projects
Documentation

Engineering · Reader

⌘K
Modules05
  • 01ccmon · A live dashboard for Claude Code
  • 02Docs Component Showcase
  • 03zy · A shell built from scratch in C
  • 04zyterm. A serial terminal.
  • 05Zyvrix Project
Tagged
CLinuxShellSystems ProgrammingParserRuntimeTUIDeveloper Tools
Projects/ZY Shell

Command Reference

Complete documentation for all 336 builtin commands in the ZY shell, organized across 27 categories. Search, browse, and explore with syntax and examples.

336 Commands27 Categoriesv1.0.9
⬇Download v1.0.9
Installsudo dpkg -i zy_1.0.9_amd64.deb
336 results
📂

Navigation

9
cd
📂 Navigation

Change working directory. Supports ~, -, .., and absolute or relative paths.

cd <dir>
<dirname>
📂 Navigation

Auto-cd: type a directory name directly to change into it without the cd command.

<dirname>
pushd
📂 Navigation

Push the current directory onto the stack and change to the given directory.

pushd <dir>
popd
📂 Navigation

Pop the top directory from the stack and cd into it.

popd
dirs
📂 Navigationlist<path>

Display the current directory stack. Entries are in pushd order.

dirs
pwd
📂 Navigationstring

Print the absolute path of the current working directory.

pwd
ls
📂 Navigationtable

List directory contents as a structured table with name, type, size, and modified columns.

ls [-al] [path ...]
z
📂 Navigation

Smart jump to a directory using frecency-based fuzzy matching. Learns from your cd history.

z <query...>
zi
📂 Navigation

Interactive fuzzy directory picker powered by fzf-style UI. Shows all visited directories.

zi [query]
⚙️

Variables & Environment

11
export
⚙️ Variables & Environmenttable

Set or list environment variables. Without arguments, prints all exported variables.

export [name=val]
unset
⚙️ Variables & Environment

Remove a shell variable or function from the current environment.

unset <name>
readonly
⚙️ Variables & Environment

Mark a variable as read-only. Any subsequent assignment will fail.

readonly <name>
const
⚙️ Variables & Environment

Declare a constant (immutable) variable. Cannot be reassigned after creation.

const <name>=<val>
with-env
⚙️ Variables & Environmentany

Execute a block with scoped environment variables. Variables revert after block ends.

with-env { KEY: val } { cmd }
local
⚙️ Variables & Environment

Declare a variable scoped to the current function. Not visible outside the function.

local <name>=<val>
declare
⚙️ Variables & Environment

Declare variables with type attributes. Supports arrays, associative arrays, exports, and dedup.

declare [-xaAU] var
typeset
⚙️ Variables & Environment

Set variable attributes (zsh-compatible). Often used with -U for deduplication.

typeset [-U] var
set
⚙️ Variables & Environment

Set shell runtime options. Controls error handling, tracing, and safety behaviors.

set [options]
umask
⚙️ Variables & Environmentstring

Display or set the file creation permission mask. Affects permissions of newly created files.

umask [mode]
ulimit
⚙️ Variables & Environmentstring | table

Get or set resource limits for the current shell process (file size, open files, memory, etc).

ulimit [opts] [val]
🎨

Aliases & Customization

5
alias
🎨 Aliases & Customizationtable

Create, list, or remove command aliases. Supports suffix aliases with -s.

alias [-s] [n=cmd]
unalias
🎨 Aliases & Customization

Remove one or all aliases from the current session.

unalias [-a] <name>
customize
🎨 Aliases & Customization

Launch the interactive configuration wizard. Shorthand for 'config wizard'.

customize
config
🎨 Aliases & Customizationrecord

Manage shell configuration. Subcommands include wizard, show, reset, edit, save, and set.

config <sub> [key] [value]
set-theme
🎨 Aliases & Customization

Apply a built-in color theme to the shell prompt and UI.

set-theme <name>
📝

I/O & Evaluation

16
echo
📝 I/O & Evaluation

Print arguments to stdout. Supports escape sequences with -e and raw mode with -E.

echo [-neE] [str]
printf
📝 I/O & Evaluation

Format and print data using C-style format specifiers (%s, %d, %f, %x).

printf <fmt> [...]
print
📝 I/O & Evaluation

zsh-style print with options for per-line output, raw mode, and prompt expansion.

print [-nlrP] [...]
read
📝 I/O & Evaluation

Read a line of input from stdin into a variable.

read [-rsp] <var>
source
📝 I/O & Evaluationany

Execute commands from a file in the current shell context. Variables and functions persist.

source <file>
.
📝 I/O & Evaluationany

Execute commands from a file in the current shell (alias for source).

. <file>
eval
📝 I/O & Evaluationany

Evaluate a string as a shell command. Useful for dynamically constructed commands.

eval <string>
exec
📝 I/O & Evaluation

Replace the current shell process with the given command. Does not return.

exec <cmd>
test
📝 I/O & Evaluation

Evaluate a conditional expression. Returns exit code 0 (true) or 1 (false).

test <expr>
[
📝 I/O & Evaluation

Evaluate a conditional expression (alias for test). Must end with ].

[ <expr> ]
type
📝 I/O & Evaluationstring

Show how a command name is interpreted (alias, function, builtin, or external).

type <name>
do
📝 I/O & Evaluationany

Execute a command string or block. Useful for inline command evaluation.

do { cmd }
ignore
📝 I/O & Evaluation

Silently discard all output from the pipeline. Useful for suppressing noisy commands.

... | ignore
input
📝 I/O & Evaluationstring

Prompt the user for interactive text input and return the entered string.

input [prompt]
input-list
📝 I/O & Evaluationstring

Present an interactive menu of items and return the user's selection.

input-list [items]
use
📝 I/O & Evaluation

Import a module or file into the current scope. Brings exported commands and variables.

use <module>
📜

History

3
history
📜 Historytable

View command history or clear it. Shows numbered entries with timestamps.

history [-c] [-n N]
fc
📜 History

List or re-edit recent history commands. Opens in $EDITOR for editing before re-execution.

fc [-l] [-r] [range]
!!
📜 Historyany

History expansion shortcuts. !! repeats last command, !n repeats command N, ^old^new substitutes.

!! / !n / !str / ^old^new
🔧

Job Control

9
jobs
🔧 Job Controltable

List all active background jobs with their status, PID, and command.

jobs
fg
🔧 Job Control

Bring a background job to the foreground. Resumes a stopped job.

fg [%job]
bg
🔧 Job Control

Continue a stopped job in the background.

bg [%job]
wait
🔧 Job Control

Wait for one or all background jobs to complete before continuing.

wait [job|pid]
disown
🔧 Job Control

Remove a job from the job table so it is not killed when the shell exits.

disown [%job]
kill
🔧 Job Control

Send a signal to a process or job. Default signal is SIGTERM (15).

kill [-sig] target
trap
🔧 Job Control

Set or display signal handlers. Run a command when a specific signal is received.

trap [cmd] [sig]
sched
🔧 Job Control

Schedule a command for future execution after a delay or at a specific time.

sched [+s|HH:MM] cmd
suspend
🔧 Job Control

Suspend the current shell process (send SIGTSTP to self).

suspend
🔀

Flow Control

12
if
🔀 Flow Controlany

Conditional execution with if/elif/else branches. Executes the block whose condition is true.

if cond; then ... fi
for
🔀 Flow Control

Iterate over a list of values, executing the body block for each item.

for VAR in LIST; do ... done
while
🔀 Flow Control

Loop while a condition is true. Also supports until (loop until true).

while cond; do ... done
case
🔀 Flow Controlany

Pattern matching on a value. Each branch is a glob pattern followed by commands.

case WORD in ...) ;; esac
match
🔀 Flow Controlany

Modern pattern matching expression. More powerful than case with structured pattern support.

match VAL { pat => expr }
try
🔀 Flow Controlany

Error handling with try/catch/finally blocks. Catch block receives the error.

try { } catch { } finally { }
def
🔀 Flow Control

Define a custom command with named and typed parameters.

def name [...params] { body }
select
🔀 Flow Control

Present a numbered menu of items for the user to choose from.

select VAR in LIST
[[
🔀 Flow Control

Extended conditional test with pattern matching and logical operators. More powerful than [.

[[ expression ]]
return
🔀 Flow Control

Return from the current function with an optional exit status code.

return [status]
break
🔀 Flow Control

Exit from the innermost loop (for, while, until). Optional N exits N levels.

break [n]
continue
🔀 Flow Control

Skip the rest of the current loop iteration and jump to the next one.

continue [n]
🛠️

Scripting

15
getopts
🛠️ Scripting

Parse positional parameters according to an option string. Used in scripts for argument handling.

getopts optstr var
shift
🛠️ Scripting

Shift positional parameters left by N positions (default: 1). $2 becomes $1, etc.

shift [n]
hash
🛠️ Scriptingtable

Manage the shell's command hash table. Speeds up command lookups by caching paths.

hash [name | -r]
times
🛠️ Scriptingstring

Print accumulated CPU times for the shell and all child processes.

times
time
🛠️ Scripting

Measure the wall-clock and CPU execution time of a command.

time <command>
true
🛠️ Scripting

Return exit code 0 (success). Useful as a no-op condition in loops.

true
false
🛠️ Scripting

Return exit code 1 (failure). Useful for testing error paths.

false
:
🛠️ Scripting

No-op command that returns success (exit 0). Used as a placeholder in scripts.

:
bindkey
🛠️ Scriptingtable

List or set custom keybindings for the line editor. Bind key sequences to widgets.

bindkey [seq] [widget]
command
🛠️ Scriptingany | string

Run a command bypassing shell functions and aliases. With -v, show command location.

command [-v] cmd
builtin
🛠️ Scriptingany

Run a shell builtin command explicitly, bypassing any functions or aliases with the same name.

builtin <cmd>
autoload
🛠️ Scripting

Mark a function for lazy-loading from $fpath. Function is loaded on first call.

autoload [-U] fn
repeat
🛠️ Scripting

Execute a command N times in sequence.

repeat N cmd
which
🛠️ Scriptingstring

Locate a command and show its full path, or indicate if it is a builtin/alias/function.

which <name>
whence
🛠️ Scriptingstring

Locate a command (zsh-compatible alias for which). Shows how a name resolves.

whence <name>
🔒

Security

2
audit
🔒 Securitytable

Tamper-evident audit logging with SHA-256 hash chain. Records all command executions.

audit <sub>
policy
🔒 Securitytable

Command execution policy engine. Allow, deny, or require confirmation for specific commands.

policy <sub>
💻

System

22
sys
💻 Systemrecord | table

System information dashboard showing host, CPU, memory, disk, network, and battery.

sys [tools]
uninstall
💻 System

Interactive wizard to cleanly uninstall zy shell, removing configs and restoring default shell.

uninstall
exit
💻 System

Exit the shell with an optional exit code. Running jobs are warned about.

exit [code]
help
💻 Systemstring

Show general help or detailed per-command help with syntax, examples, and flags.

help [command]
feature
💻 Systemstring

Toggle runtime feature gates on or off. Controls experimental or optional behaviors.

feature <name> [on|off]
hook
💻 System

Register shell lifecycle hooks that run on events like precmd, preexec, chpwd, and exit.

hook <event> <cmd>
http
💻 Systemrecord | string

Built-in HTTP client supporting GET, POST, HEAD, PUT, DELETE methods.

http <method> <url>
plugin
💻 Systemtable

Plugin management system. List, enable, disable, and reload shell plugins.

plugin <sub>
skill
💻 Systemany

Execute and manage shell skills (reusable task automation scripts).

skill <name>
stats
💻 Systemtable

Show command usage statistics including most-used commands, session time, and command counts.

stats
clear
💻 System

Clear the terminal screen and move cursor to the top-left.

clear
is-admin
💻 Systembool

Check if the current shell is running with root/administrator privileges.

is-admin
port
💻 Systemint

Find and return a free TCP port number on the local machine.

port
ps
💻 Systemtable

List all running processes as a structured table with PID, name, CPU, and memory.

ps
sleep
💻 System

Pause execution for a specified duration. Supports units like sec, ms, min.

sleep <duration>
term-size
💻 Systemrecord

Get the terminal dimensions (columns and rows) as a record.

term-size
uname
💻 Systemstring | record

Display system and kernel information (OS name, version, architecture).

uname [-a]
url-decode
💻 Systemstring

Decode a percent-encoded URL string back to its original form.

url-decode <str>
url-encode
💻 Systemstring

Percent-encode a string for safe use in URLs.

url-encode <str>
url-parse
💻 Systemrecord

Parse a URL into its components (scheme, host, port, path, query, fragment).

url-parse <url>
version
💻 Systemrecord

Show the zy shell version, build date, commit hash, and feature flags.

version
whoami
💻 Systemstring

Print the current username.

whoami
🔗

ZSH Compatibility

16
setopt
🔗 ZSH Compatibility

Set a zsh-style shell option. Silently accepted for compatibility with .zshrc files.

setopt <option>
unsetopt
🔗 ZSH Compatibility

Unset a zsh-style shell option.

unsetopt <option>
emulate
🔗 ZSH Compatibility

Emulate another shell's behavior mode. Used for zsh/sh/ksh compatibility layers.

emulate <shell>
zmodload
🔗 ZSH Compatibility

Load or unload zsh modules. Stub for compatibility — silently succeeds.

zmodload <module>
zstyle
🔗 ZSH Compatibility

Configure completion and other style settings. Zsh-compatible stub.

zstyle <pattern> <style> [values...]
compinit
🔗 ZSH Compatibility

Initialize the completion system. Zsh-compatible stub — zy auto-initializes completions.

compinit
compdef
🔗 ZSH Compatibility

Associate a completion function with one or more commands.

compdef <function> <command...>
zle
🔗 ZSH Compatibility

Access and manipulate the Zsh Line Editor widgets. Stub for widget compatibility.

zle <widget>
strftime
🔗 ZSH Compatibilitystring

Format a Unix timestamp or the current time using strftime format specifiers.

strftime <format> [timestamp]
zstat
🔗 ZSH Compatibilityrecord

Display detailed file status information (size, permissions, timestamps).

zstat <file>
pcre_match
🔗 ZSH Compatibilitybool

Match a string against a Perl-compatible regular expression.

pcre_match <pattern> <string>
zparseopts
🔗 ZSH Compatibility

Parse command-line options from an argument array into associative arrays.

zparseopts <spec...>
zftp
🔗 ZSH Compatibilitystring

Built-in FTP client. Zsh-compatible stub for basic FTP operations.

zftp <subcommand> [args]
ztcp
🔗 ZSH Compatibilityint

Open, listen, or close raw TCP socket connections.

ztcp <host> <port>
zpty
🔗 ZSH Compatibility

Start and manage commands in pseudo-terminal sessions.

zpty <name> <command>
watch
🔗 ZSH Compatibilitytable

Monitor user login and logout events on the system.

watch
⌨️

Completion

4
compadd
⌨️ Completion

Add completion candidates to the current completion reply array.

compadd [options] <words...>
compgen
⌨️ Completionlist<string>

Generate completion matches. Bash-compatible interface for generating word lists.

compgen [-W wordlist] [-A action] [prefix]
_arguments
⌨️ Completion

Parse and define argument/option completion specs for a command (zsh-style).

_arguments <specs...>
complete
⌨️ Completion

Register a completion function for a command. Bash-compatible interface.

complete [-F function] [-W wordlist] <command>
🔍

Filters

65
all
🔍 Filtersbool

Check if every item in a list satisfies a condition. Returns true only if all match.

input | all { |it| condition }
any
🔍 Filtersbool

Check if at least one item in a list satisfies a condition.

input | any { |it| condition }
append
🔍 Filterslist

Add one or more items to the end of a list. Scalars are promoted to a list first.

input | append <value...>
chunk
🔍 Filterslist<list>

Split a list into fixed-size chunks. The last chunk may be smaller.

input | chunk <size>
collect
🔍 Filtersany

Collect streaming pipeline data into a single in-memory value.

input | collect
columns
🔍 Filterslist<string>

Extract the list of column names from a table or keys from a record.

input | columns
compact
🔍 Filterslist | table

Remove null values and empty strings from a list. For tables, removes rows containing any null.

input | compact
count
🔍 Filtersint

Count the number of items in a list, rows in a table, or characters in a string.

input | count
default
🔍 Filtersany

Provide a fallback value for null or missing fields.

input | default <value>
describe
🔍 Filtersstring

Describe the type and structure of a pipeline value.

input | describe
drop
🔍 Filterslist | table

Drop the last n items from a list or rows from a table. Defaults to 1.

input | drop [n]
drop-column
🔍 Filterstable

Remove the last N columns from a table.

input | drop-column [n]
drop-nth
🔍 Filterslist | table

Remove a specific row by its 0-based index.

input | drop-nth <index>
each
🔍 Filterslist

Apply a shell command to every item in a list. Returns a list of results.

input | each <command>
each-while
🔍 Filterslist

Apply a closure to each item while the closure returns a non-null value. Stops on first null.

input | each-while { |it| expr }
empty
🔍 Filtersbool

Check if a value is empty (empty string, list, or null).

input | empty
enumerate
🔍 Filterstable

Add a 0-based index to each item, returning records with index and item fields.

input | enumerate
every
🔍 Filterslist

Select every Nth item from a list, starting at the first.

input | every <n>
filter
🔍 Filterslist | table

Filter items by a boolean condition expression.

input | filter <condition>
find
🔍 Filterslist | table

Search for items containing a substring. Matches against any cell in tables, or string value in lists.

input | find <pattern>
first
🔍 Filtersany | list | table

Get the first N items from a list or table (default: 1).

input | first [N]
flatten
🔍 Filterslist

Flatten nested lists by one level. Non-list items and tables pass through unchanged.

input | flatten
get
🔍 Filtersany

Get a field value from a record or a full column from a table.

input | get <field>
group-by
🔍 Filtersrecord

Group table rows into a record keyed by the distinct values of a specified column.

input | group-by <column>
headers
🔍 Filterstable

Treat the first row of a table as column headers, re-keying the remaining rows.

input | headers
insert
🔍 Filterstable | record

Insert a new column with a fixed value into every row of a table, or add a key to a record.

input | insert <column> <value>
is-empty
🔍 Filtersbool

Check if a value is empty or null. Returns true for empty strings, lists, records, and null.

input | is-empty
is-not-empty
🔍 Filtersbool

Check if a value is non-empty and non-null.

input | is-not-empty
items
🔍 Filterslist

Iterate over key-value pairs of a record, applying a closure to each.

input | items { |key, val| expr }
join
🔍 Filterstable

SQL-style inner join of two tables on a matching column.

input | join <right-table> <on-column>
last
🔍 Filtersany | list | table

Get the last N items from a list or table (default: 1).

input | last [N]
length
🔍 Filtersint

Count items in a list, rows in a table, keys in a record, or characters in a string.

input | length
lines
🔍 Filterslist<string>

Split a string into a list of lines (split on newlines).

input | lines
merge
🔍 Filtersrecord | table

Merge two records (second wins on conflict) or concatenate two tables column-wise.

input | merge <other>
move
🔍 Filterstable

Move a column to a new position (before or after another column) in a table.

input | move <column> --before <ref> | --after <ref>
nth
🔍 Filtersany

Get the item at a specific 0-based index.

input | nth <index>
par-each
🔍 Filterslist

Apply a closure to each item in parallel. Order is not guaranteed.

input | par-each { |it| expr }
prepend
🔍 Filterslist

Add one or more items to the beginning of a list. Scalars are promoted to a list.

input | prepend <value...>
range
🔍 Filterslist<int>

Generate a range of numbers as a list.

range <start>..<end>
reduce
🔍 Filtersany

Reduce a list to a single value by applying an accumulator expression.

input | reduce { <closure> }
reject
🔍 Filterstable

Remove one or more columns from a table. Rows are preserved with remaining columns.

input | reject <column...>
rename
🔍 Filterstable

Rename one or more columns in a table. Arguments are provided as old/new pairs.

input | rename <old> <new> [...]
reverse
🔍 Filterslist

Reverse the order of items in a list.

input | reverse
rotate
🔍 Filterstable

Rotate (transpose) table columns to rows and vice versa.

input | rotate
sel
🔍 Filterstable

Select (project) specific columns from a table, discarding all others.

input | sel <columns...>
shuffle
🔍 Filterslist

Randomly shuffle the items in a list.

input | shuffle
skip
🔍 Filterslist | table

Skip the first n items from a list or rows from a table. Defaults to 1.

input | skip [n]
skip-until
🔍 Filterslist

Skip items until the condition first becomes true, then pass through all remaining.

input | skip-until { |it| condition }
skip-while
🔍 Filterslist

Skip items while the condition is true, then pass through all remaining.

input | skip-while { |it| condition }
slice
🔍 Filterslist

Extract a slice of a list by start and end index.

input | slice <start>..<end>
sort
🔍 Filterslist

Sort a list in ascending order. Supports strings, numbers, and booleans.

input | sort [--reverse]
sort-by
🔍 Filterstable

Sort a table by one or more column values in ascending or descending order.

input | sort-by <column> [--reverse]
take
🔍 Filterslist | table

Take the first n items from a list or rows from a table. If n exceeds length, all items are returned.

input | take [n]
take-until
🔍 Filterslist

Take items until the condition first becomes true. Stops collecting on first match.

input | take-until { |it| condition }
take-while
🔍 Filterslist

Take items while the condition holds. Stops collecting on first non-match.

input | take-while { |it| condition }
transpose
🔍 Filterstable

Transpose a table's rows and columns (pivot).

input | transpose
uniq
🔍 Filterslist

Remove consecutive duplicate values from a list. Sort first for full deduplication.

input | uniq
uniq-by
🔍 Filterstable

Remove duplicate rows from a table based on a specific column's values.

input | uniq-by <column>
update
🔍 Filterstable | record

Update the value of an existing column in every row of a table, or update a key in a record.

input | update <column> <value>
upsert
🔍 Filterstable | record

Insert a column if missing, or update it if it exists.

input | upsert <column> <value>
values
🔍 Filterslist

Extract all values from a record as a list.

input | values
where
🔍 Filterslist | table

Filter rows from a table or items from a list by a condition expression.

input | where <condition>
window
🔍 Filterslist<list>

Create a sliding window of fixed size over a list.

input | window <size>
wrap
🔍 Filtersrecord

Wrap a scalar value into a single-field record.

input | wrap <name>
zip
🔍 Filterslist<list>

Zip two lists together into a list of pairs.

input | zip <other>
🔤

Strings

33
ansi
🔤 Stringsstring

Output an ANSI escape code by name. Useful for coloring or styling text.

ansi <name>
ansi-strip
🔤 Stringsstring

Remove all ANSI escape codes from a string, leaving plain text.

input | ansi-strip
char
🔤 Stringsstring

Output a special character by name (newline, tab, etc.) or by Unicode code point.

char <name>
decode
🔤 Stringsstring

Decode a base64-encoded string back to plain text.

input | decode base64
detect-columns
🔤 Stringstable

Auto-detect column boundaries from whitespace-aligned text and convert to a table.

input | detect-columns
encode
🔤 Stringsstring

Encode a string to base64.

input | encode base64
parse
🔤 Stringstable

Parse a string using a pattern with named capture groups. Returns a table of matches.

input | parse <pattern>
split-chars
🔤 Stringslist<string>

Split a string into a list of individual characters.

input | split-chars
split-column
🔤 Stringstable

Split a string into columns by a separator, assigning column names.

input | split-column <separator> [names...]
split-list
🔤 Stringslist<list>

Split a list into sub-lists of a fixed size.

input | split-list <size>
split-row
🔤 Stringslist<string>

Split a string into a list of substrings using a delimiter.

input | split-row <separator>
split-words
🔤 Stringslist<string>

Split a string into a list of words (split on whitespace).

input | split-words
str-camel-case
🔤 Stringsstring

Convert a string to camelCase. Splits on underscores, hyphens, and spaces.

input | str-camel-case
str-capitalize
🔤 Stringsstring

Capitalize the first letter of a string, leaving the rest unchanged.

input | str-capitalize
str-contains
🔤 Stringsstring

Check if a string contains a given substring. Returns "true" or "false" as a string.

input | str-contains <needle>
str-distance
🔤 Stringsint

Compute the Levenshtein edit distance between two strings.

str-distance <a> <b>
str-downcase
🔤 Stringsstring

Convert all characters in a string to lowercase.

input | str-downcase
str-ends-with
🔤 Stringsstring

Check if a string ends with a given suffix. Returns "true" or "false".

input | str-ends-with <suffix>
str-index-of
🔤 Stringsint

Find the 0-based index of the first occurrence of a substring. Returns -1 if not found.

input | str-index-of <needle>
str-join
🔤 Stringsstring

Join a list of items into a single string using an optional separator.

list | str-join [separator]
str-kebab-case
🔤 Stringsstring

Convert a string to kebab-case (lowercase words separated by hyphens).

input | str-kebab-case
str-length
🔤 Stringsint

Get the number of characters in a string.

input | str-length
str-pascal-case
🔤 Stringsstring

Convert a string to PascalCase (UpperCamelCase).

input | str-pascal-case
str-replace
🔤 Stringsstring

Replace occurrences of a pattern in a string. Replaces only the first match by default.

input | str-replace <pattern> <replacement> [--all]
str-reverse
🔤 Stringsstring

Reverse the characters in a string.

input | str-reverse
str-screaming-snake-case
🔤 Stringsstring

Convert a string to SCREAMING_SNAKE_CASE (uppercase with underscores).

input | str-screaming-snake-case
str-snake-case
🔤 Stringsstring

Convert a string to snake_case. Splits on hyphens, spaces, and camelCase boundaries.

input | str-snake-case
str-starts-with
🔤 Stringsstring

Check if a string starts with a given prefix. Returns "true" or "false".

input | str-starts-with <prefix>
str-stats
🔤 Stringsrecord

Count lines, words, characters, and bytes in a string.

input | str-stats
str-substring
🔤 Stringsstring

Extract a substring by start and end character indices.

input | str-substring <start> <end>
str-title-case
🔤 Stringsstring

Convert a string to Title Case (capitalize the first letter of each word).

input | str-title-case
str-trim
🔤 Stringsstring

Remove leading and trailing whitespace from a string.

input | str-trim
str-upcase
🔤 Stringsstring

Convert all characters in a string to uppercase.

input | str-upcase
📐

Math

26
math
📐 Mathint | float

Evaluate a mathematical expression string. Supports +, -, *, /, %, **, parentheses.

math <expression>
math-abs
📐 Mathint | float

Return the absolute value (magnitude without sign) of a number.

value | math-abs
math-arccos
📐 Mathfloat

Compute the inverse cosine (arccosine) in radians.

value | math-arccos
math-arcsin
📐 Mathfloat

Compute the inverse sine (arcsine) in radians.

value | math-arcsin
math-arctan
📐 Mathfloat

Compute the inverse tangent (arctangent) in radians.

value | math-arctan
math-avg
📐 Mathfloat

Compute the arithmetic mean (average) of all values in a list.

list | math-avg
math-ceil
📐 Mathint

Round a float up to the nearest integer.

value | math-ceil
math-cos
📐 Mathfloat

Compute the cosine of an angle in radians.

value | math-cos
math-e
📐 Mathfloat

Return Euler's number (e ≈ 2.71828). A mathematical constant.

math-e
math-exp
📐 Mathfloat

Compute e raised to the power of the input value (e^x).

value | math-exp
math-floor
📐 Mathint

Round a float down to the nearest integer.

value | math-floor
math-ln
📐 Mathfloat

Compute the natural logarithm (base e) of a value.

value | math-ln
math-log
📐 Mathfloat

Compute the base-10 logarithm of a value.

value | math-log
math-max
📐 Mathint | float

Return the maximum value from a list.

list | math-max
math-median
📐 Mathint | float

Compute the median (middle value) of a sorted list. Averages two middle values for even-length lists.

list | math-median
math-min
📐 Mathint | float

Return the minimum value from a list.

list | math-min
math-mode
📐 Mathany | list

Find the most frequently occurring value(s) in a list.

list | math-mode
math-pi
📐 Mathfloat

Return the mathematical constant Pi (π ≈ 3.14159).

math-pi
math-product
📐 Mathint | float

Compute the product of all values in a list (multiply all together).

list | math-product
math-round
📐 Mathint

Round to the nearest integer (half rounds up).

value | math-round
math-sin
📐 Mathfloat

Compute the sine of an angle in radians.

value | math-sin
math-sqrt
📐 Mathfloat

Compute the square root of a non-negative number.

value | math-sqrt
math-stddev
📐 Mathfloat

Compute the standard deviation of a list of numbers.

list | math-stddev
math-sum
📐 Mathint | float

Sum all values in a list. Supports integers and floats.

list | math-sum
math-tan
📐 Mathfloat

Compute the tangent of an angle in radians.

value | math-tan
math-variance
📐 Mathfloat

Compute the variance of a list of numbers.

list | math-variance
🔄

Conversions

10
fill
🔄 Conversionsstring

Pad a value to a minimum width using a fill character.

input | fill --width <n> [--char <c>] [--alignment <side>]
fmt
🔄 Conversionsrecord

Format a number as binary, hex, octal, or scientific notation.

input | fmt
into-binary
🔄 Conversionsbinary

Convert a value to its binary (byte sequence) representation.

input | into-binary
into-bool
🔄 Conversionsbool

Convert a value to boolean. Truthy: non-zero, non-empty. Falsy: 0, empty, null.

input | into-bool
into-duration
🔄 Conversionsduration

Convert a value (int or string) to a duration type.

input | into-duration
into-filesize
🔄 Conversionsfilesize

Convert a number (bytes) to a human-readable filesize.

input | into-filesize
into-float
🔄 Conversionsfloat

Convert a value to a floating-point number.

input | into-float
into-int
🔄 Conversionsint

Convert a value to an integer. Strings are parsed, floats truncated.

input | into-int
into-record
🔄 Conversionsrecord

Convert a list of key-value pairs or a table row into a record.

input | into-record
into-string
🔄 Conversionsstring

Convert any value to its string representation.

input | into-string
⚡

Bits

8
bits-and
⚡ Bitsint

Perform a bitwise AND operation between two integers.

a | bits-and <b>
bits-not
⚡ Bitsint

Perform a bitwise NOT (complement) on an integer.

input | bits-not
bits-or
⚡ Bitsint

Perform a bitwise OR operation between two integers.

a | bits-or <b>
bits-rol
⚡ Bitsint

Bitwise rotate left by n positions.

input | bits-rol <n>
bits-ror
⚡ Bitsint

Bitwise rotate right by n positions.

input | bits-ror <n>
bits-shl
⚡ Bitsint

Bitwise shift left by n positions (multiply by 2^n).

input | bits-shl <n>
bits-shr
⚡ Bitsint

Bitwise shift right by n positions (divide by 2^n, truncated).

input | bits-shr <n>
bits-xor
⚡ Bitsint

Perform a bitwise XOR (exclusive OR) between two integers.

a | bits-xor <b>
📦

Bytes

11
bytes-add
📦 Bytesbinary

Append bytes to the end of a byte sequence.

input | bytes-add <bytes>
bytes-at
📦 Bytesbinary

Extract byte(s) at a specific index or range from a byte sequence.

input | bytes-at <index>
bytes-build
📦 Bytesbinary

Build a byte sequence from a list of integers (0–255).

bytes-build [integers...]
bytes-collect
📦 Bytesbinary

Collect individual bytes from a pipeline into a single byte sequence.

input | bytes-collect
bytes-ends-with
📦 Bytesbool

Check if a byte sequence ends with a given suffix.

input | bytes-ends-with <suffix>
bytes-index-of
📦 Bytesint

Find the index of the first occurrence of a byte pattern.

input | bytes-index-of <pattern>
bytes-length
📦 Bytesint

Get the number of bytes in a byte sequence.

input | bytes-length
bytes-remove
📦 Bytesbinary

Remove a range of bytes from a byte sequence.

input | bytes-remove <start> <end>
bytes-replace
📦 Bytesbinary

Replace a byte pattern with another in a byte sequence.

input | bytes-replace <old> <new>
bytes-reverse
📦 Bytesbinary

Reverse the order of bytes in a byte sequence.

input | bytes-reverse
bytes-starts-with
📦 Bytesbool

Check if a byte sequence starts with a given prefix.

input | bytes-starts-with <prefix>
📁

Path

9
path-basename
📁 Pathstring

Extract the filename component from a path string.

input | path-basename
path-dirname
📁 Pathstring

Extract the directory component from a path string.

input | path-dirname
path-exists
📁 Pathbool

Check if a filesystem path exists.

input | path-exists
path-expand
📁 Pathstring

Expand a path to its absolute form, resolving ~ and symlinks.

input | path-expand
path-join
📁 Pathstring

Join path components into a single path using the OS separator.

path-join <parts...>
path-parse
📁 Pathrecord

Parse a path string into a record with dir, stem, and extension components.

input | path-parse
path-relative-to
📁 Pathstring

Compute the relative path from a base directory.

input | path-relative-to <base>
path-split
📁 Pathlist<string>

Split a path into a list of its components.

input | path-split
path-type
📁 Pathstring

Determine the type of a filesystem path (file, dir, symlink).

input | path-type
🔐

Hash

2
hash-md5
🔐 Hashstring

Compute the MD5 hash of a string (hexadecimal digest).

input | hash-md5
hash-sha256
🔐 Hashstring

Compute the SHA-256 hash of a string (hexadecimal digest).

input | hash-sha256
📅

Date & Time

7
date-format
📅 Date & Timestring

Format a date value using strftime-style format specifiers.

input | date-format <format>
date-humanize
📅 Date & Timestring

Convert a date to a human-friendly relative string (e.g. '2 hours ago').

input | date-humanize
date-list-timezone
📅 Date & Timetable

List all available timezone names.

date-list-timezone
date-now
📅 Date & Timedatetime

Get the current date and time as a datetime value.

date-now
date-to-record
📅 Date & Timerecord

Convert a datetime to a record with year, month, day, hour, minute, second fields.

input | date-to-record
date-to-table
📅 Date & Timetable

Convert a datetime to a table with year, month, day, etc. as columns.

input | date-to-table
date-to-timezone
📅 Date & Timedatetime

Convert a datetime to a different timezone.

input | date-to-timezone <timezone>
🎲

Random

6
random-bool
🎲 Randombool

Generate a random boolean (true or false) with optional bias.

random-bool [--bias <float>]
random-chars
🎲 Randomstring

Generate a random string of alphanumeric characters.

random-chars [--length <n>]
random-dice
🎲 Randomlist<int>

Simulate rolling dice. Returns a list of results.

random-dice [--dice <n>] [--sides <s>]
random-float
🎲 Randomfloat

Generate a random floating-point number within an optional range.

random-float [min..max]
random-int
🎲 Randomint

Generate a random integer within a range.

random-int <min>..<max>
random-uuid
🎲 Randomstring

Generate a random UUID v4 string.

random-uuid
🏭

Generators

4
cal
🏭 Generatorstable

Display a calendar for the current month or a specified month/year.

cal [--month <m>] [--year <y>] [--full-year]
generate
🏭 Generatorslist<any>

Generate an infinite or bounded sequence by repeatedly applying a closure to an accumulator.

generate <initial> { |acc| ... }
seq
🏭 Generatorslist<number>

Generate a numeric sequence from start to end with an optional step.

seq <start> [step] <end>
seq-date
🏭 Generatorslist<string>

Generate a sequence of dates from start to end at a given interval.

seq-date --begin <date> --end <date> --increment <dur>
📄

Formats

14
from-csv
📄 Formatstable

Parse CSV text from the pipeline into structured table data.

input | from-csv [--separator <char>] [--noheaders]
from-json
📄 Formatsany

Parse JSON text from the pipeline into structured data.

input | from-json
from-toml
📄 Formatsrecord

Parse TOML text from the pipeline into a record.

input | from-toml
from-tsv
📄 Formatstable

Parse TSV (tab-separated values) text from the pipeline into a table.

input | from-tsv [--noheaders]
from-xml
📄 Formatsrecord

Parse XML text from the pipeline into structured data.

input | from-xml
from-yaml
📄 Formatsany

Parse YAML text from the pipeline into structured data.

input | from-yaml
to-csv
📄 Formatsstring

Convert structured data to CSV text.

input | to-csv [--separator <char>] [--noheaders]
to-html
📄 Formatsstring

Convert structured data to an HTML table.

input | to-html [--partial]
to-json
📄 Formatsstring

Convert structured data to JSON text.

input | to-json [--indent <n>] [--raw]
to-md
📄 Formatsstring

Convert structured data to a Markdown table.

input | to-md [--pretty]
to-toml
📄 Formatsstring

Convert a record to TOML text.

input | to-toml
to-tsv
📄 Formatsstring

Convert structured data to TSV (tab-separated values) text.

input | to-tsv [--noheaders]
to-xml
📄 Formatsstring

Convert structured data to XML text.

input | to-xml [--indent <n>]
to-yaml
📄 Formatsstring

Convert structured data to YAML text.

input | to-yaml
🌐

Environment

2
env-list
🌐 Environmenttable

List all environment variables as a structured table with name and value columns.

env-list
load-env
🌐 Environment

Load a record of key-value pairs into the environment as variables.

input | load-env
🐛

Debug

6
debug
🐛 Debugstring

Show a debug text representation of pipeline data, useful for inspecting types and structure.

input | debug [--raw]
debug-info
🐛 Debugrecord

Display detailed shell build and runtime information (version, features, OS, etc.).

debug-info
inspect
🐛 Debugany

Inspect the pipeline value in an interactive detailed view.

input | inspect
metadata
🐛 Debugrecord

Show metadata about a pipeline value including its type, span, and source origin.

input | metadata
timeit
🐛 Debugduration

Measure and report the wall-clock execution time of an expression or block.

timeit { <block> }
view-source
🐛 Debugstring

View the source code of a user-defined command, alias, or function.

view-source <name>
🗃️

Files

9
cp
🗃️ Files

Copy files and directories from source to destination.

cp [flags] <src> <dst>
du
🗃️ Filestable

Calculate and display disk usage for a path.

du [path] [--max-depth <n>] [--all]
glob
🗃️ Fileslist<string>

Expand a glob pattern into a list of matching file paths.

glob <pattern> [--depth <n>]
mkdir
🗃️ Files

Create one or more directories, including intermediate parents.

mkdir <dir...>
mv
🗃️ Files

Move or rename files and directories.

mv <src> <dst>
open
🗃️ Filesany

Open and auto-parse a file based on its extension (JSON, TOML, YAML, CSV, etc.).

open <file> [--raw]
rm
🗃️ Files

Remove files and directories.

rm [flags] <path...>
save
🗃️ Files

Save pipeline data to a file, optionally appending.

input | save <file> [--append] [--raw]
touch
🗃️ Files

Create a new empty file or update the timestamp of an existing file.

touch <file...>