shyaml
YAML for command line
What it is and what it does
Shyaml is a command-line utility that reads YAML from stdin and exposes its structure and values through shell-friendly commands. It is designed for shell scripts and command pipelines that need to extract or inspect YAML data without writing separate parsing code. The tool supports nested key access using dot notation, type inspection, sequence indexing, and iteration over keys and values with optional null-termination for safe handling of values containing newlines.
The package depends only on pyyaml and provides read-only access to YAML structures. It does not support write operations or all YAML specification subtleties, but handles common use cases like extracting configuration values, iterating over lists, and inspecting document structure. Output can be formatted for shell consumption, including null-terminated variants for robust piping.
Use it for:
- Extract configuration values from YAML files in shell scripts without external parsing logic.
- Iterate over YAML sequences or object keys in bash loops with proper null-termination to handle special characters.
- Inspect YAML document structure and data types from the command line for debugging or validation.
- Query nested YAML paths using dot notation in one-liners within CI/CD pipelines or deployment scripts.
- Convert YAML data into shell-friendly formats (newline or null-separated) for further processing with standard Unix tools.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Command-line tool for querying and extracting data from YAML files via stdin, supporting read-only access to nested values, keys, and sequences.
Yes, if you need lightweight YAML querying in shell scripts. The package is stable, has low install friction, and carries no security vulnerabilities. However, the aging maintenance status (last release 2020-12-15) means it is unlikely to gain new features or adapt to future Python versions—install it for established use cases, not as a foundation for new tooling.
Install
shyaml on PyPI
pip
pip install shyamluv
uv add shyamlpoetry
poetry add shyamlInstalling shyaml
Before you install
Low install friction with a single runtime dependency (pyyaml). The package is aging—last release was 2020-12-15 and the repository shows no recent activity—but remains stable and archived-free, suggesting it is maintained in a minimal-change mode rather than actively developed.
License in practice
BSD 3-Clause License (permissive) places no significant restrictions on use, modification, or distribution in most contexts.
Quickstart
pip install shyaml
cat data.yaml | shyaml get-value key.nested.path
cat data.yaml | shyaml get-values sequence.items
cat data.yaml | shyaml keys root_object
Verify before relying
- Whether the package works reliably with modern Python versions beyond those listed in classifiers (3.7 is the highest listed).
- Current status of libyaml C implementation support and whether it is automatically selected or requires manual configuration.
Package facts
| License | BSD 3-Clause License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — pyyaml |
| Maintenance | aging — 2,068 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,789,233/month — #3,558 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: shyaml-0.6.2-py2.py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
nietA command-line tool that extracts and…
permissive · top 15,000 on PyPI
ruamel.yaml.clibProvides a C-based YAML 1.2 reader, parser, and…
permissive · top 1,000 on PyPI
PyYAML-ftPyYAML-ft is a YAML parser and emitter for…
permissive · top 5,000 on PyPI
yamlcoreAdds YAML 1.2 Core Schema support to PyYAML,…
permissive · top 15,000 on PyPI
yamlpathQuery, retrieve, update, merge, validate, and…
permissive · top 15,000 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
bashlexbashlex parses bash shell syntax into an…
copyleft · top 5,000 on PyPI
yqyq is a command-line processor that applies jq…
permissive · top 5,000 on PyPI
cantoolsCantools parses automotive CAN bus database…
permissive · top 5,000 on PyPI
tree-sitter-yamlA tree-sitter parser grammar for YAML files…
permissive · top 5,000 on PyPI