Yoga video selection TUI app
- Go 57.5%
- HTML 42.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Amp-Thread-ID: https://ampcode.com/threads/T-019cc858-2bdd-716d-8668-e1fb47137cf3 Co-authored-by: Amp <amp@ampcode.com> |
||
| cmd/yoga | ||
| internal | ||
| AGENTS.md | ||
| coverage.html | ||
| coverage.out | ||
| go.mod | ||
| go.sum | ||
| Magefile.go | ||
| plan.md | ||
| README.md | ||
| yoga | ||
| yoga.png | ||
Yoga
⚠️ DEPRECATED: This project is no longer maintained. No further updates, bug fixes, or feature additions will be made. Use at your own risk.
Yoga is a TUI for browsing local yoga videos with quick filtering, duration probing, and one-key playback via VLC. It has been vibe coded.
Usage
yoga [--root PATH] [--crop WxH] [--version]
--rootsets the directory to scan for videos. When omitted, Yoga uses~/Yogaand creates it on first launch.--cropsupplies an optional VLC crop string (for example5:4). Toggle the crop at runtime with theckey.--versionprints the current version and exits.
Yoga recognises common video extensions (.mp4, .mkv, .mov, .avi, .wmv, .m4v) and follows symlinks when scanning. Duration metadata is cached per directory in .video_duration_cache.json.
Keyboard Shortcuts
↑/↓– Navigate the tableenter– Play the selected video in VLC/orf– Open the filter dialogtab/shift+tab– Move between fields in filter/tag dialogsr– Reset filtersn,l,a– Sort by name, length, or agec– Toggle VLC cropt– Edit tags for the selected videox– Select a random video from filtered resultsH/h– Hide or re-show the help footerq– Quit
Filter Dialog
- Focus starts on the name filter when you press
/. - Use
tabandshift+tabto move to Min minutes, Max minutes, or Tags contain. - Type numeric values for the minute bounds; leave them blank to disable that side of the range.
- Press
enterto apply the filters orescto cancel. - Status text reflects how many videos remain after filtering.
Development
The project uses Mage for common tasks. Targets live in magefile.go.
mage build # go build ./cmd/yoga
mage test # go test ./...
mage install # go install ./cmd/yoga
mage coverage # go test with coverage (fails if <85%)
Before sending changes:
- Format Go code with
gofumpt. - Run
mage testandmage coverageto ensure the suite passes and coverage stays above 85%. - Update documentation when flags or behaviour change.
Licensing
This repository is released under the terms specified in the accompanying license file (if present).
