Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Output & logging

Vyges follows the Unix output contract, so its output composes cleanly with pipes, redirection, and other tools:

  • stdout — data. Command results: tables, JSON, resolved paths, URLs. This is what you capture, pipe, or parse.
  • stderr — diagnostics. Progress notes, hints, warnings, and errors. This is what you read while a command runs, or send to a log.

Because the two streams are separate, you control logging with the shell — there is no --log-file flag, and you don’t need one.

Redirecting output

vyges catalog search uart > results.txt      # data only → file
vyges catalog search uart 2> run.log         # diagnostics only → file
vyges catalog search uart > out.txt 2>&1     # both → one file (data + diagnostics)
vyges catalog search uart 2>&1 | tee run.log # both to screen AND a log
vyges catalog search uart --json | jq '.[]'  # data is clean JSON → pipe to a parser

Because data and diagnostics are separated, ... > results.txt gives you a file with only the results — no progress chatter mixed in — while 2> run.log keeps a clean log of what happened. This is the recommended way to “save a log”: let the shell do it.

Tip: for machine consumption, prefer --json (supported by most commands) over scraping human output. Combined with 2>/dev/null you get a pure JSON stream.

Verbosity

How much goes to stderr is controlled by a level. It never affects stdout — your data is never suppressed.

FlagLevelShows on stderr
-q -q -qoffnothing (exit code still signals errors)
-q -qerrorerrors only
-qwarnerrors + warnings
(default)infoerrors + warnings + info/hints
-vdebug+ debug detail
-v -vtrace+ trace detail

-v and -q are repeatable and combine (the net of the two steps from info).

The VYGES_LOG environment variable

Set the level by name or number (05) without flags:

export VYGES_LOG=debug      # or: off | error | warn | info | trace | 0..5
vyges pdk-store resolve sky130A lib --corner tt_025C_1v80

VYGES_LOG is inherited by child processes, so when vyges <tool> … dispatches to a vyges-<tool> binary, the whole command tree runs at the same level — set it once.

Precedence (highest first): -v/-q flags → VYGES_LOG → default (info). So a flag on an invocation overrides the environment for that process; the environment configures everything else, including dispatched tools.

A flag binds to the process you give it to. vyges -v <tool> … makes vyges verbose; the flag is consumed before dispatch, so the child tool is unaffected. To make the child verbose, either set VYGES_LOG (it covers the whole tree) or pass the flag after the tool name so it goes through to the child:

VYGES_LOG=debug vyges pdk-store list    # whole tree verbose (env — simplest)
vyges -v modules                        # the `vyges` command itself, verbose
vyges pdk-store -v list                 # flag passes through → vyges-pdk-store verbose