26 Unix tools. One binary. Zero dependencies. · the missing coreutils for AI pipelines · vrk mcp - expose all 26 tools to any AI agent · brew install vrk - ready in 5 seconds · 26 Unix tools. One binary. Zero dependencies. · the missing coreutils for AI pipelines · vrk mcp - expose all 26 tools to any AI agent · brew install vrk - ready in 5 seconds

vrk pct

About

Percent-encodes and decodes strings following RFC 3986. Handles the difference between path encoding (spaces become %20) and form encoding (spaces become +) so you don’t have to remember which is which. Processes one result per line for batch use.

The problem

You build a URL with a query parameter that contains spaces and special characters. You use printf with manual %20 substitution, miss an ampersand, and the API returns a 400. The rules for path encoding vs form encoding differ and you always pick the wrong one.

Before and after

Before

QUERY=$(python3 -c "import urllib.parse; print(urllib.parse.quote_plus('$USER_INPUT'))")
curl "https://api.example.com/search?q=$QUERY"
# quote() for paths, quote_plus() for forms - easy to mix up
# breaks if $USER_INPUT contains single quotes

After

QUERY=$(echo "$USER_INPUT" | vrk pct --encode --form)
curl "https://api.example.com/search?q=$QUERY"

Example

echo 'hello world' | vrk pct --encode

Exit codes

CodeMeaning
0Success
1Invalid percent sequence during decode, I/O error
2Neither –encode nor –decode specified, both specified, interactive TTY

Flags

FlagShortTypeDescription
--encodeboolPercent-encode input (RFC 3986 unless –form)
--decodeboolPercent-decode input
--formboolUse application/x-www-form-urlencoded rules (spaces / +)
--json-jboolEmit JSON per line: {input, output, op, mode}
--quiet-qboolSuppress stderr output