Vyges CLI
vyges is the single command-line entry point to the Vyges hardware-IP toolchain.
It promotes a small set of tools and dispatches, git-style, to external
vyges-<name> binaries on your PATH:
| Command | Binary | What it does |
|---|---|---|
vyges | vyges | Top-level CLI: list modules, agent guide, bug/feature/sponsor |
vyges pdk-store | vyges-pdk-store | Consistent PDK presentation + resolution |
vyges catalog | vyges-catalog | Search and fetch IPs from the Vyges IP catalog |
All three binaries ship together in a single release, so installing vyges
installs the whole suite (see Installation).
This documentation is built from the CLI itself — the command reference pages are generated from each binary’s
--helpoutput.
Installation
Vyges is distributed as prebuilt binaries (the source is private). Every release
bundles all three binaries — vyges, vyges-pdk-store, vyges-catalog — and installs
them into ~/.vyges/bin.
These instructions describe the intended public install flow. The public release repo (
vyges/cli) and Homebrew tap (vyges/homebrew-tap) go live with the first published release.
Homebrew (macOS / Linux)
brew install vyges/tap/vyges
This installs all three binaries in one shot.
curl installer (macOS / Linux)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/vyges/cli/releases/latest/download/vyges-installer.sh | sh
The installer places the binaries in ~/.vyges/bin. Add it to your PATH if it isn’t
already:
export PATH="$HOME/.vyges/bin:$PATH"
Windows (PowerShell)
irm https://github.com/vyges/cli/releases/latest/download/vyges-installer.ps1 | iex
Verify
vyges --version
vyges modules # shows which Vyges modules are installed
Supported platforms
- macOS (Apple Silicon and Intel)
- Linux (x86-64 and arm64)
- Windows (x86-64)
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 with2>/dev/nullyou 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.
| Flag | Level | Shows on stderr |
|---|---|---|
-q -q -q | off | nothing (exit code still signals errors) |
-q -q | error | errors only |
-q | warn | errors + warnings |
| (default) | info | errors + warnings + info/hints |
-v | debug | + debug detail |
-v -v | trace | + 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 (0–5) 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
vyges
Generated from vyges --help. Do not edit by hand — run scripts/gen-cli-reference.sh.
Vyges — one CLI for the Vyges hardware-IP toolchain.
`vyges modules` lists the promoted tools; `vyges agents` prints the agent guide. An
unknown subcommand dispatches to an external `vyges-<name>` binary on PATH (e.g.
`vyges pdk-store …` runs vyges-pdk-store). Report bugs/features centrally with
`vyges --bug-report` / `--feature-request`, or support Vyges with `vyges --sponsor`.
Usage: vyges [OPTIONS] [COMMAND]
Commands:
modules List the promoted Vyges modules and whether each is installed
agents Print the operating guide for AI IDE agents
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose...
Increase diagnostic verbosity (stderr): -v debug, -vv trace. Repeatable
-q, --quiet...
Reduce diagnostics (stderr): -q warnings-only, -qq errors-only, -qqq silent. Repeatable. Overrides VYGES_LOG. (Data on stdout is never suppressed.)
--bug-report
File a bug report (central — vyges/community issues)
--feature-request
File a feature request (central — vyges/community issues)
--sponsor
Sponsor Vyges (github.com/sponsors/vyges-ip)
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
vyges pdk-store
Generated from vyges-pdk-store --help. Do not edit by hand — run scripts/gen-cli-reference.sh.
vyges-pdk-store — consistent PDK presentation + resolution
usage:
vyges-pdk-store list list registered PDKs
vyges-pdk-store show <name|file.pdk.json> show a PDK + its collateral
vyges-pdk-store validate <file.pdk.json> schema-validate a descriptor
vyges-pdk-store add <file.pdk.json> [--force] register into the user store
vyges-pdk-store deregister <name> remove a registration (keeps data)
vyges-pdk-store use <name> [--local] set the selected (*) PDK (global, or ./.vyges)
vyges-pdk-store resolve <name|file> <key> [--corner C] [--library L]
print collateral path(s) for a flow
vyges-pdk-store verify <name|file> check collateral paths exist
vyges-pdk-store fetch <name|file> [--dry-run] materialize PDK data (git mirror / Ciel)
vyges-pdk-store refresh [--dry-run] refresh the catalog from vyges-tools/pdk-catalog
keys for resolve: tech_lef | extract_rules | drc_deck | lvs_deck | primitives_spice |
models (per --corner) | lib (per --corner + --library) |
spice | gds | lef | verilog (per --library) | <any collateral key>
flags: --corner <name> · --library <name> · --force · --dry-run · --local · -h/--help · -V/--version
-v/--verbose · -q/--quiet (stderr diagnostics; or set VYGES_LOG=off|error|warn|info|debug|trace)
vyges catalog
Generated from vyges-catalog --help. Do not edit by hand — run scripts/gen-cli-reference.sh.
vyges-catalog — search the Vyges IP catalog
usage:
vyges-catalog search <query> [--category C] [--keyword K] [--json]
find IPs by name / category / keyword
vyges-catalog show <name> [--json] show one IP (incl. license)
vyges-catalog license <name> print one IP's license (SPDX)
vyges-catalog categories [--json] list categories (with counts)
vyges-catalog sources [--json] list configured sources + cache status
vyges-catalog refresh [--source N] [--dry-run]
fetch source indexes (like `apt update`)
vyges-catalog fetch <ip[@version]> [--force] [--dry-run]
materialize an open IP into ~/.vyges/catalog/ip/<name>/<version>
vyges-catalog fetch --private <url|path>[@version]
materialize a private/NDA IP into ~/.vyges/catalog/private_ip/ (segregated)
from a repo URL/org-repo (clone) or a local directory (import);
version optional — derived from vyges-metadata.json if omitted
vyges-catalog cached [--json] list locally installed (cached) IPs + versions
(aliases: installed, ls)
vyges-catalog path <ip[@version]> print a cached IP's path (for flows)
vyges-catalog verify <ip[@version]> check a cached IP is intact
vyges-catalog rm <ip[@version]> remove cached version(s) of an IP
vyges-catalog prune [--dry-run] remove the whole local IP cache
Search-first by design (no bulk dump). Sources: a built-in `oss` catalog plus any
enterprise catalogs in ~/.vyges/catalog/sources.conf (line: `name url [TOKEN_ENV]`).
flags: --category <c> · --keyword <k> · --source <n> · --private · --force · --json · --dry-run · -h · -V
-v/--verbose · -q/--quiet (stderr diagnostics; or set VYGES_LOG=off|error|warn|info|debug|trace)