Paste a link. Keep the video.

yt-dlp in a full-screen terminal UI. 1,800+ sites, mp4 or audio-only mp3, straight to your ~/Downloads folder.

install

npx yoinks

Or npm install -g yoinks to keep it. Node 18+ is the only prerequisite — yt-dlp is fetched to ~/.yoinks/bin on first run (no Python), and ffmpeg falls back to a bundled binary.

youtube · x · instagram · threads · tiktok · +1800 more

The yoinks home screen: the pixel wordmark, a framed “Paste a link” input with a placeholder youtube url, a yoink button, and footer hints reading “↵ yoink · ↑ history · ^c quit”.
Home. It takes over the terminal, then restores your scrollback on exit.

paste. yoink. done.

No popups, no fake download buttons, no sketchy redirects — and nothing to unlearn. Three moves, and the second one is picking a number.

  1. paste

    Run yoinks and paste a url, or pass one straight in: yoinks https://youtu.be/… jumps directly to the picker.

  2. yoink

    Resolutions arrive with estimated file sizes attached. Choose one — or take the audio-only mp3 — with the arrow keys, j/k, a number key, or the mouse.

  3. done

    The file lands in ~/Downloads and the full path prints to your terminal, ready to open or pipe onward.

The yoinks format picker: the resolved video title and source on the left, and a framed “Download” list on the right showing 2160p through 144p as mp4 with estimated sizes, plus an audio-only mp3 row.

The picker.

  1. An estimated size sits on every row, so you decide before you commit — not after 232 MB has already moved.
  2. Audio-only mp3 is the last row of the same list. There is no separate mode to remember.
  3. The footer hints are clickable, and so are the format rows, the yoink button and the logo. It is a TUI that expects a mouse.

or jk to move · enter to yoink · esc to go back · ^c to quit · ^t cycles auto, light and dark.

Specs.

What yoinks handles, what it needs, and where each piece comes from.
Sites1,800+whatever yt-dlp supports
Videomp4, to source resolutionstreams merged with ffmpeg
Audiomp3, audio-onlyextracted with ffmpeg
RuntimeNode 18+the only prerequisite
Extractoryt-dlpstandalone binary → ~/.yoinks/bin, no Python; yours is used if you have one
Mergerffmpegfound on PATH, ffmpeg-static as fallback
Output~/Downloadspath printed on exit
InterfaceInkReact for the terminal; keyboard and mouse
Themesauto · light · dark^t, or --theme at launch
LicenceMITsource on GitHub