The missing coreutils
for AI pipelines.
one binary • small composable tools • zero silent failures
vrk grab https://api.example.com/docs \
| vrk tok --check 8000 \
| vrk prompt --system "extract the breaking changes" \
| vrk validate --schema changes.json \
| vrk kv set changelogbrew install vrk
try it now - no API key needed
$ curl -fsSL vrk.sh/install.sh | sh
$ echo "The quick brown fox jumps over the lazy dog" | vrk tok
9before
import anthropic, json, sys
client = anthropic.Anthropic()
with open('article.md') as f:
text = f.read()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user",
"content": text}]
)
print(response.content[0].text)after
cat article.md \
| vrk prompt --system 'Summarize'batch jobs at scale
cat 10000-docs/*.md \
| vrk chunk --size 4000 \
| vrk throttle --rate 60/m \
| vrk prompt --model gpt-4 --jsonchunked. paced. structured output. safe to rerun.
every vrk tool: stdin in, stdout out, exit 0/1/2
| over token limit? | exit 1 | ← pipeline stops |
| bad JSON schema? | exit 1 | ← nothing downstream runs |
| wrong flags? | exit 2 | ← usage error, never silent |
no more pipelines that look like they worked.
Install
brew install vrkgo install github.com/vrksh/vrksh@latestcurl -sSL https://vrk.sh/install.sh | shCore
vrk chunkToken-aware text splitter - JSONL chunks within a token budget
cat long-doc.md | vrk chunk --size 4000vrk promptLLM prompt - Anthropic/OpenAI, --schema, --retry, --explain.
cat article.md | vrk prompt --system 'Summarize this' --model claude-sonnet-4-6 --jsonvrk tok
start hereCount tokens. Gate pipelines before they fail.
cat prompt.txt | vrk tokPipeline
vrk coaxRetry wrapper - --times, --backoff, --on, --until
vrk grabURL fetcher - clean markdown, plain text, or raw HTML.
vrk kvKey-value store - SQLite-backed, namespaces, TTL, atomic counters.
vrk maskSecret redactor - entropy + pattern-based, streaming
vrk sseSSE stream parser - text/event-stream to JSONL
vrk validateJSONL schema validator - --schema, --strict, --fix, --json
Works with Claude Code and Cursor via MCP. See agent integration →