52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
---
|
|
name: yq
|
|
description: Extract specific fields from YAML files efficiently using qq instead of reading entire files, saving 80-95% context.
|
|
---
|
|
|
|
# yq: YAML Query and Extraction Tool
|
|
|
|
Use yq to extract specific fields from YAML files without reading entire file contents, saving 80-95% context usage.
|
|
|
|
## When to Use yq
|
|
|
|
**Use yq when:**
|
|
- Need specific field(s) from structured YAML file
|
|
- File is large (>50 lines) and only need subset of data
|
|
- Querying nested structures in YAML
|
|
- Filtering/transforming YAML data
|
|
- Working with docker-compose.yml, GitHub Actions workflows, K8s configs
|
|
|
|
**Just use Read when:**
|
|
- File is small (<50 lines)
|
|
- Need to understand overall structure
|
|
- Making edits (need full context anyway)
|
|
|
|
## Tool Selection
|
|
|
|
**JSON files** → Use `jq`
|
|
- Common: package.json, tsconfig.json, lock files, API responses
|
|
|
|
**YAML files** → Use `yq`
|
|
- Common: docker-compose.yml, GitHub Actions, CI/CD configs
|
|
|
|
Both tools extract exactly what you need in one command - massive context savings.
|
|
|
|
## Quick Examples
|
|
|
|
```bash
|
|
# Get version from package.json
|
|
jq -r .version package.json
|
|
|
|
# Get service ports from docker-compose
|
|
yq '.services.*.ports' docker-compose.yml
|
|
```
|
|
|
|
## Detailed Reference
|
|
|
|
For comprehensive yq patterns, syntax, and examples, load [yq guide](./reference/yq-guide.md):
|
|
- Core patterns (80% of use cases)
|
|
- Real-world workflows (Docker Compose, GitHub Actions, Kubernetes)
|
|
- Advanced patterns and edge case handling
|
|
- Output formats and pipe composition
|
|
- Best practices and integration with other tools
|