mrkeyoor.com_
Thu 01 Oct 15:37 UTC
Dev Toolsevaluationupdated 01 Oct 2026

yoinks review

Yoinks is a full-screen terminal app for downloading video or audio from YouTube, X, Instagram, TikTok, and the other sites handled by yt-dlp. It replaces downloader websites with a keyboard-and-mouse format picker that saves straight to your Downloads folder.

Verdict

Our Yoinks run installed 121 packages and used 172 MB, then 5 of its 6 tests passed, so the friendly terminal interface comes with more weight and less release confidence than the 0.4 MB checkout suggests. Use it for occasional, rights-respecting downloads when choosing a format visually is the main attraction. Use yt-dlp directly for scripts, custom destinations, playlists, or difficult sites.

We ran it

Lab card: what happened when we ran yoinksScreenshot of yoinks (github.com/pablostanley/yoinks)
Install✓ · 15s121 packages · 172 MB
Build✓ · 6s
Tests✗ · 7s5 passed · 1 failed of 6 (node:test)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo31 files~1,973 lines of source · 0.4 MB · 0 CI workflows

Answers from our run

Does yoinks build from source?

Dependencies installed in 15 seconds (121 packages), and the build succeeded in 6 seconds. We cloned commit 6f03720 into a clean Debian container with 3 CPUs and no project-specific setup.

Do yoinks's tests pass?

Not all of them: 5 of 6 passed and 1 failed when we ran the project's own test command (node:test). Some failures need services or credentials a bare container does not have.

Does yoinks have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use yoinks?

Shell scripts and unattended jobs: --best, --mp3, and a custom output directory are still unchecked roadmap items, so the current flow expects interaction.

What are the alternatives to yoinks?

yt-dlp, Cobalt, Lux. Our Yoinks run installed 121 packages and used 172 MB, then 5 of its 6 tests passed, so the friendly terminal interface comes with more weight and less release confidence than the 0.

Setup3/515-second install, but 172 MB on disk and one failed test
Docs4/5Clear install, controls, dependency behavior, roadmap, and limits
Community3/52,683 stars and October PR activity, but no push since July 17
Maturity2/5Manifest says 0.3.1, with no tagged release, CI, or green lab run

Who it’s for

People who already live in a terminal but prefer a visual format picker to yt-dlp flags.
Creators and researchers archiving media they have the right to keep.
Node users who want yt-dlp and an ffmpeg fallback handled by one npm command.
Light and dark terminal users who care about a tidy full-screen interface.

Who it’s NOT for

Shell scripts and unattended jobs: --best, --mp3, and a custom output directory are still unchecked roadmap items, so the current flow expects interaction.
Playlist or multi-video thread archiving: the README lists both as unfinished work.
Windows users with a redirected Downloads folder: issue 22 says Yoinks still writes to the profile's default C-drive path, though a fix is open as pull request 27.
Teams requiring a clean test gate and visible CI: our run failed 1 of 6 tests, and the repository had 0 CI workflow files.
Anyone who assumes a supported site guarantees a working download: open issue 8 records a YouTube format-selection failure.
Users downloading media without permission: the project warns that downloads may violate platform terms and limits its purpose to personal archiving.

Setup reality

Our sandbox installed commit 6f03720 in 15 seconds, adding 121 packages and using 172 MB. The build passed in 6 seconds. Node's test runner finished in 7 seconds with 5 passed and 1 failed out of 6; the provided log tail did not show the failed assertion. Npm audit found 0 known vulnerabilities.

Yoinks needs Node 18 or newer. The first run downloads a standalone yt-dlp binary into ~/.yoinks/bin unless one already exists, and it uses ffmpeg from the PATH or a bundled fallback. Downloads go to ~/Downloads; there is no current -o option in the documented release.

The repository is only 31 files and about 1,973 source lines, but its 0.4 MB checkout expanded to 172 MB after installation. We found no CI workflow, Dockerfile, or tests directory. The terminal UI takes over the screen, and the useful noninteractive flags remain roadmap items.

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.

Alternatives

ProjectWhat it isPick it when
yt-dlp gh↗The feature-rich downloader CLI that Yoinks uses underneath its interface.pick this instead when you need scripting, format expressions, authentication options, or the full downloader surface.
CobaltA media-saving service with a web interface and a self-hostable API.pick this instead when a browser workflow or shared service suits your users better than a terminal app.
LuxA Go video downloader available as a library and command-line tool.pick this instead when you want a direct CLI or Go API without a React terminal interface.

What people are saying

  1. [github-trending] pablostanley/yoinks

Sources

  1. Yoinks repository
  2. Yoinks README
  3. Yoinks commit history
  4. Windows Downloads folder issue
  5. YouTube format issue

More dev tools reviews

nyaterm · tilelang · vintage-latex · NavierStokesAndEuler · UMR · vista · the whole board →