webtorrent
webtorrent-cli
JavaScript

WebTorrent, the streaming torrent client. For the command line.

Last updated Jul 6, 2026
1.4k
Stars
151
Forks
12
Issues
+1
Stars/day
Attention Score
94
Language breakdown
JavaScript 98.5%
Shell 1.5%
โ–ธ Files click to expand
README


WebTorrent
WebTorrent CLI

The streaming torrent client. For the command line.

ci npm version npm downloads javascript style guide


WebTorrent is the first BitTorrent client that works in the browser, but webtorrent-cli, i.e. THIS PACKAGE, is for using WebTorrent from the command line.

webtorrent-cli is a simple torrent client for use in node.js, as a command line app. It uses TCP, UDP and WebRTC to talk to other torrent clients.

To use WebTorrent in the browser, see webtorrent.

Features

  • Use WebTorrent from the command line!
  • Insanely fast
  • Streaming
- Stream to AirPlay, Chromecast, VLC player, IINA, and many other devices/players - Fetches pieces from the network on-demand so seeking is supported (even before torrent is finished) - Seamlessly switches between sequential and rarest-first piece selection strategy
  • Supports advanced torrent client features
- magnet uri support via ut_metadata - peer discovery via dht, tracker, and ut_pex - protocol extension api for adding new extensions - Check all the supported BEPs here

Install

To install a webtorrent command line program, run:

npm install webtorrent-cli -g

Usage

$ webtorrent --help
                                                _
       | | | |          | |
 \ \ /\ / /  \ ' \| /  \| '| '/  \ '_ \| |
  \ V  V /  / |) | || () | |  | | |  / | | | |_
   \/\/ \|./ \\/||  ||  \|| ||\|

Usage: webtorrent [command] <torrent-id> [options]

Examples: webtorrent download "magnet:..." --vlc webtorrent "magnet:..." --vlc --player-args="--video-on-top --repeat"

Default output location: * when streaming: Temp folder * when downloading: Current directory

Specify <torrent-id> as one of: * magnet uri * http url to .torrent file * filesystem path to .torrent file * info hash (hex string)

Commands: webtorrent download [torrent-ids...] Download a torrent [default] webtorrent downloadmeta <torrent-ids...> Download metadata of torrent webtorrent seed <inputs...> Seed a file or a folder webtorrent create <input> Create a .torrent file webtorrent info <torrent-id> Show torrent information webtorrent version Show version information webtorrent help Show help information

Options (streaming): --airplay Apple TV [boolean] --chromecast Google Chromecast [default: all] --dlna DLNA [boolean] --mplayer MPlayer [boolean] --mpv MPV [boolean] --omx OMX [default: hdmi] --vlc VLC [boolean] --iina IINA [boolean] --smplayer SMPlayer [boolean] --xbmc XBMC [boolean] --stdout Standard out (implies --quiet) [boolean]

Options (simple): -o, --out Set download destination [string] -s, --select Select specific file in torrent [default: List files] -i, --interactive-select Interactively select specific file in torrent [boolean] -t, --subtitles Load subtitles file [string] -h, --help Show help information [boolean] -v, --version Show version information [boolean]

Options (advanced) -p, --port Change the http server port [number] [default: 8000] -b, --blocklist Load blocklist file/url [string] -a, --announce Tracker URL to announce to [string] -q, --quiet Don't show UI on stdout [boolean] -d, --download-limit Maximum download speed in kb/s [number] [default: unlimited] -u, --upload-limit Maximum upload speed in kb/s [number] [default: unlimited] --pip Enter Picture-in-Picture if supported by the player [boolean] --verbose Show torrent protocol details [boolean] --playlist Open files in a playlist if supported by the player [boolean] --player-args Add player specific arguments (see example) [string] --torrent-port Change the torrent seeding port [number] [default: random] --dht-port Change the dht port [number] [default: random] --not-on-top Don't set "always on top" option in player [boolean] --keep-seeding Don't quit when done downloading [boolean] --no-quit Don't quit when player exits [boolean] --on-done Run script after torrent download is done [string] --on-exit Run script before program exit [string]

To download a torrent:

$ webtorrent magnet_uri

To stream a torrent to a device like AirPlay or Chromecast, just pass a flag:

$ webtorrent magnet_uri --airplay

In addition to magnet uris, webtorrent supports many ways to specify a torrent:

  • magnet uri (string)
  • torrent file (buffer)
  • info hash (hex string or buffer)
  • parsed torrent (from parse-torrent)
  • http/https url to a torrent file (string)
  • filesystem path to a torrent file (string)

License

MIT. Copyright (c) Feross Aboukhadijeh and WebTorrent, LLC.

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท webtorrent/webtorrent-cli ยท Updated daily from GitHub