Yoinks makes yt-dlp easier by giving it a format picker
Yoinks takes a job that often starts with copying flags from a search result and turns it into a full-screen terminal flow. Paste a URL, choose a resolution or MP3, and the file lands in your Downloads folder. The interface accepts arrow keys, j and k, number keys, mouse clicks, and three theme modes. It restores terminal scrollback on exit. For an occasional download, that is a nicer experience than remembering yt-dlp's format syntax.
The site coverage comes from yt-dlp, which the README says handles more than 1,800 sites. On first run, Yoinks downloads the standalone yt-dlp binary to ~/.yoinks/bin, unless your machine already has it. High-resolution stream merging and MP3 extraction use ffmpeg from your PATH or the packaged ffmpeg-static fallback. Node 18 or newer is the only prerequisite the install section asks you to bring.
The interface is the feature, and automation is still a roadmap item
The current command can accept a URL directly, but it still opens the picker. The roadmap leaves --best and --mp3 flags unchecked, alongside -o <dir> for a custom destination, playlists, multi-video threads, clipboard detection, and self-updating yt-dlp. Those are important absences if you want a downloader inside a cron job or shell pipeline. Yoinks 0.3.1, the version in the checked-in manifest, is best understood as an interactive front end.
Files go to ~/Downloads, which is simple until the folder is elsewhere. Issue 22 reports that Windows users who redirect Downloads to another drive still get files under the profile path on C. Pull request 27 proposes a fix, but it was open on October 1, 2026. A separate open issue records a requested YouTube format being unavailable. Since supported sites can change behavior upstream, keeping direct yt-dlp knowledge nearby remains useful.
What happened when we ran it
Our sandbox cloned commit 6f03720 into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The checkout contained 31 files, about 1,973 source lines, and occupied 0.4 MB. Npm installed 121 packages in 15 seconds, taking 172 MB on disk. The TypeScript bundle then built successfully in 6 seconds. Npm audit reported 0 known vulnerabilities at every severity.
The test command failed after 7 seconds. Node's test runner reported 5 passed and 1 failed out of 6. The supplied log tail showed that tests 2 through 6 passed, covering URL and theme parsing, invalid options, supported modes, and color ownership. It did not include the name or assertion from the failed first test. We can report the red result, but the excerpt does not support blaming a particular feature or dependency.
The repository scan found 0 CI workflow files, no Dockerfile, and no tests directory. Tests do exist beside source files because the package script runs src/**/*.test.ts; the directory signal only says there is no top-level tests folder. The 172 MB installed footprint is also worth noticing beside a 0.4 MB checkout. Most of that practical cost arrives through the Node dependencies and bundled media tooling, not through Yoinks' 1,973 lines.
A tiny wrapper still inherits the hard parts of media downloading
Yoinks does not reimplement hundreds of video sites. It asks yt-dlp for formats, presents them through an Ink and React interface, then relies on ffmpeg when streams need merging or audio extraction. That division keeps the application small and gives it wide coverage. It also means a site change, authentication wall, missing format, or stale downloaded binary can surface inside a UI that has fewer recovery controls than yt-dlp itself.
The README's fair-use note is short and necessary. Yoinks calls itself a personal-archiving tool and warns that downloading can violate a platform's terms. The absence of ads or deceptive buttons does not confer rights to a video. Before using it in a workplace, decide which sources and content are permitted, where files may be stored, and whether download records need to be retained. The software cannot make those policy choices.
October pull requests show interest, while the main branch remains on July 17
GitHub showed 2,683 stars and 19 combined open issues and pull requests. Separate searches counted 9 issues and 10 pull requests. The last push to the repository was July 17, 2026, and there was no GitHub release marked latest. Contributor activity continued: October 1 brought open pull requests for Docker deployment and redirected Windows Downloads folders. That is interest around the project, though it is not the same as merged maintainer work on the main branch.
Yoinks is easy to like because its taste is visible: centered screens, clickable controls, terminal-aware colors, and a short path from pasted URL to file. Our run also found the limit of that polish. One of 6 tests failed, automation flags are unfinished, and 121 packages sit behind a narrow task. Install it when the picker itself saves you friction. If you soon need flags, queues, cookies, or repeatable jobs, move down one layer to yt-dlp.

