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 emit

About

Wraps any command’s output into structured JSONL log records. Each line gets a timestamp, a level, and a msg field. Pipe a script through emit and you get logs you can actually filter and search, instead of grepping through plain text.

The problem

Your script writes plain text to stdout. When something breaks at 3am, you grep through unstructured logs trying to find the error. No timestamps, no levels, no structured fields to filter on.

Before and after

Before

./deploy.sh >> pipeline.log 2>&1
# later: grep "ERROR" pipeline.log
# no timestamps, no structured fields, no level filtering
# good luck finding what failed at 3am

After

./deploy.sh | vrk emit --tag deploy --parse-level

Example

some-script.sh | vrk emit --level info --tag my-script

Exit codes

CodeMeaning
0All non-empty lines emitted as JSONL records
1Stdin scanner error or write failure
2Interactive TTY with no positional arg, or unknown –level value

Flags

FlagShortTypeDescription
--level-lstringLog level: debug, info, warn, error
--tagstringValue for the tag field on every record
--msgstringFixed message override; stdin lines parsed as JSON and merged
--parse-levelboolAuto-detect level from ERROR/WARN/INFO/DEBUG line prefixes