We stand with Ukraine to help keep people safe. Join us
EN
When you purchase through links on our site, we may earn an affiliate commission

FrostWire for Mac

Open-Source BitTorrent search tool.

Free
In English
Version 7.0.4
2.5
Based on 38 user rates

FrostWire overview

FrostWire performs a smart search upon the most relevant torrent search results that come from BitTorrent search engines, meaning it remembers every file contained by every torrent it scans, increasing greatly the odds of finding what you are looking for, super-fast.

As FrostWire fetches search results from the search engines, it uses these results to crawl the Azureus DHT to learn about the contents indexed by these torrents. FrostWire will not use the bandwidth of the search engines in this process; it will only use the torrent info hash to perform DHT queries, meaning .torrent files are fetched only from the DHT, not from the search engines' Web servers. Its search power will not depend upon a central entity.

FrostWire is also capable of downloading directly from cloud sources [YouTube, Soundcloud], has a full file library and file player built in. There's also an Android app that can transfer files easily [on Wi-Fi] between their Macs and their phones using the FrostWire application.

Note: While the software is classified as freeware, it is actually donationware. Please consider making a donation to help support development.

What's new in version 7.0.4

  • New: Built-in Model Context Protocol (MCP) server with 38 desktop tools across 8 categories, settings-pane controls, and client configuration support for Copilot, Codex, Claude Desktop, OpenCode, Qwen, and ChatGPT Desktop
  • New: Restart button dialog — when settings changes require a restart, users can now click "Restart Now" instead of manually closing and reopening FrostWire
  • New: Per-torrent file download control — transfer detail Files tab now shows a "Show skipped files" checkbox (persisted globally, default ON) for partial downloads; skipped files appear dimmed in gray with a Download button to resume them individually
  • New: Per-torrent file priority control — transfer detail Files tab now includes a Priority column with an 8-level popup menu (from libtorrent's IGNORE to SEVEN), allowing users to adjust bandwidth allocation per file within a torrent
  • Fix: Transfer detail Files tab now refreshes correctly after priority changes — file progress no longer shows stale 0% after adjusting priority
  • Fix: Transfer detail priority popup menu now uses FrostWire's themed SkinMenuItem/SkinMenu components for consistent dark theme rendering
  • Fix: Transfer detail Files tab no longer flickers or corrupts saved settings when the user toggles the "Show skipped files" checkbox — eliminated race condition between the 1-second refresh timer and user-initiated checkbox clicks
  • Fix: Transfer detail Files tab "Show skipped files" checkbox now responds instantly — checkbox clicks spawn a dedicated thread (matching Android's HIGH_PRIORITY pattern) instead of queuing on any shared pool, eliminating double-queueing with the 1-second refresh timer that caused multi-second UI lag
  • Fix: Transfer detail Files tab "Show skipped files" checkbox is now truly instant — cached holder list means checkbox click is a pure-EDT filter with zero JNI calls; previously it re-fetched all file metadata from libtorrent on every click
  • Fix: Transfer detail Files tab table rebuild no longer blocks the EDT for seconds on large torrents — replaced per-row fireTableRowsInserted storm with a single bulk model replacement (setHolders) that fires fireTableDataChanged once
  • Fix: BTDownload.getItems() no longer performs redundant 10,000-piece JNI loop on every call — piecesTracker initialization now happens once, eliminating thousands of th.havePiece() JNI calls per refresh for large torrents
  • Fix: Transfer detail Files tab now correctly switches content when selecting a different torrent — replaced broken target-vs-btDownload guard with a monotonic sequence counter so stale background completions are skipped without blocking legitimate torrent switches
  • Fix: Library Audio/Video tree nodes now show all files on disk — SearchByMediaTypeRunnable no longer skips disk search when the cache is non-empty, preventing missing files that were on disk before startup or in directories not covered by scanInternal()
  • Fix: FileUtils.listFiles() now returns absolute paths so library file discovery, cache deduplication, and canonical path resolution work correctly across all platforms
  • Fix: Transfer detail Files tab now rebuilds the table with fresh data on every refresh instead of calling tableMediator.update() which was a no-op for immutable pre-computed holder objects
  • Fix: Transfer detail panel now populates correctly on first view — added HierarchyListener to detect when the Transfers tab becomes visible and trigger an initial selection update, fixing the empty detail panel on first open
  • Update: Refresh default tracker lists across desktop torrent creation, magnet URLs, and CreateTorrentDialog with current reliable public trackers (opentrackr, openbittorrent, stealth.si, exodus, torrent.eu.org, moeking, explodie, coppersurfer)
  • Edt Freeze: Fix macOS EDT deadlock in FramedDialog where AppKit held awtLock during modal JDialog creation while EDT needed it for text rendering
  • Edt Freeze: Preload language flag images before showing the setup wizard so JComboBox layout no longer blocks the EDT with MediaTracker.waitForID() on startup
  • Edt Freeze: Load UI theme off-EDT during startup — Nimbus/FlatLaf initialization moved to the main thread before any Swing components exist, eliminating a >2 second EDT block on every launch
  • Edt Freeze: Change APPLICATION_MODAL to MODELESS in CreateTorrentDialog, SendFileProgressDialog, and EditTrackerDialog to prevent nested modal dialog deadlocks
  • Fix: Race condition crash after audio extraction — selecting library table row 0 before the file is scanned no longer throws IllegalArgumentException; bounds check added to LimeJTable.setSelectedRow()
  • Fix: Library Audio/Video tree nodes now show files — MediaTypeSavedFilesDirectoryHolder.getFiles() was returning empty array instead of cached files; also fixed scanInternal to add new downloads to empty caches and added torrent data dir fallback when DIRECTORIES_TO_INCLUDE is empty
  • Edt Freeze: Preload ApplicationHeader button background images on the main thread before MainFrame construction to avoid MediaTracker.waitForID() blocking the EDT during startup
  • Edt Freeze: Move IconManager.instance() initialization from EDT to the main thread in Initializer.loadLateTasksForUI()
  • Fix: Desktop.open() no longer blocks the EDT when opening files — Launcher.launchFile() now delegates to DesktopParallelExecutor to prevent Linux X11 Desktop integration stalls during playback
  • Fix: Sanitize and de-HTML external text across search results, transfer names, locale labels, tooltips, and renderers to prevent broader macOS Java 21 SunLayoutEngine JNI crashes from malformed Unicode content
  • Fix: Add 30s timeout to LifecycleManager shutdown latch to prevent indefinite hang
  • Fix: BTDownload getSize() return type double->long to prevent precision loss above 2GB
  • Fix: Library files showing 0.0KB — file.length()/lastModified() wrapped in try-catch to prevent silent background task failure, and size/modtime cached cells invalidated after background load completes so UI repaints with correct values
  • Fix: Library refresh (F5) now properly re-sorts files after async lastModified load completes without flooding the resort executor — resolved file metadata updates now synchronize with the table model and coalesce resort requests so new downloads appear by date without RejectedExecutionException or comparator contract failures
  • Fix: TransferDetailGeneral now discards stale async metadata updates when switching transfers quickly, preventing mismatched or stuck detail fields
  • Fix: TransferDetailPieces now ignores late selection updates so piece counts and the cached hive image stay in sync with the currently selected transfer
  • Fix: Wire IP Filter UI to BTEngine so clear/import actually updates libtorrent ip_filter
  • Fix: Enable IP Filter options pane tab in settings (was commented out)
  • Fix: SlideDownload.onComplete() now extracts .zip downloads with zip-slip protection
  • Fix: YCCK JPEG color inversion using Adobe APP14 marker Transform field
  • Fix: CreateTorrentDialog bottom buttons now visible on first open without requiring manual resize
  • Edt Freeze: Defer native libtorrent.make_magnet_uri() call off EDT in TransferDetailGeneral — JNI magnet URI generation can block >2 seconds on large torrents
  • Edt Freeze: Offload TransferDetailComponent.updateData() to background thread — all transfer detail panels (General, Trackers, Peers, Pieces) now gather JNI data off EDT and update UI on EDT
  • Edt Freeze: Move BTDownload resume-data generation off EDT in pause()/resume() so libtorrent need_save_resume_data() no longer stalls transfer actions
  • Edt Freeze: Pre-compute TransferDetailFiles completion/progress on a background thread so table painting no longer calls libtorrent file_progress() JNI on the EDT
  • Edt Freeze: Defer file I/O and torrent parsing off EDT in LibraryFilesTableDataLine.initialize()
  • Edt Freeze: Run directory scanning off EDT in LibraryFilesTableMediator.updateTableFiles()
  • Edt Freeze: Don't block EDT on Future.get() in LibraryFilesTableMediator.removeSelection()
  • Edt Freeze: Add EDT guards to DirectoryHolder.getFiles() to prevent recursive I/O on EDT
  • Edt Freeze: Fix DNDUtils.containsPlayableFile using extension-only check to avoid file.exists() syscall on EDT during drag-and-drop
  • Edt Freeze: Add pack() before setVisible(true) in SendFileProgressDialog to prevent macOS awtLock contention
  • Edt Freeze: Add pack() before setVisible(true) in EditTrackerDialog to prevent macOS awtLock contention
  • Edt Freeze: Add pack() before setVisible(true) in Options dialog to prevent macOS awtLock contention
  • Edt Freeze: Add pack() before setVisible(true) in About dialog to prevent macOS awtLock contention
  • Fix: Normalize and sanitize library text before Swing/Nimbus measures it, stripping Unicode format/control glyphs that could trigger macOS Java 21 font-layout JNI warnings when switching to the library
  • Fix: Replace LineBreakMeasurer with JTextArea preferred-size calculation in SkinMultilineToolTipUI to avoid JNI font-layout warnings during torrent search tooltips
  • Fix: Sanitize transfer detail table strings (Files, Peers, Trackers) before Swing paints them, preventing macOS Java 21 font-layout JNI warnings from malformed torrent or peer text
  • Fix: Implement UI notification in SettingsWarningManager for settings load/save failures
  • Fix: PerformersHelper now filters hidden files alongside pad files in search results
  • Fix: QuotedStringTokenizer now supports backslash quote escaping
  • Fix: TorrentFileFilter i18nize 'Torrents' display string
  • Fix: TelluridePlaylistPartialUISearchResult now reports mp4 extension so Video tab shows YouTube playlist results — getExtension() override returns "mp4" to fix null NamedMediaType that blocked both tab counter and media type filter
  • Fix: SoundCloud search now excludes tracks not marked as downloadable, so common search results only expose content the platform explicitly allows for download
  • Fix: Idope search integration now uses the new idope.pics domain and filters placeholder "No results returned" API responses when the backend is unavailable
  • Fix: MagnetDL search parser now accepts both raw JSON arrays and quoted JSON-array payloads, preventing CI/live failures when the API response is wrapped as a JSON string
  • Fix: TransferDetailPieces/HexHivePanel now use consistent hex tiling math and the fast flat-hex path for large swarms, eliminating overlapping piece cells and improving cached rendering speed
  • Fix: Restore the 3D cube-shaded HexHive look in TransferDetailPieces while keeping the corrected tiling math and off-EDT cached rendering
  • Fix: HexHivePanel now wraps rows against the full viewport width instead of the last occupied row width, and drops stale async bitmaps to prevent missing right-edge cubes and blinking
  • Fix: HexHivePanel no longer cancels queued renders before rasterization starts, preventing refresh starvation where the Pieces panel could stay completely blank
  • Fix: HexHivePanel now coalesces rapid refresh requests through a single background render loop so 1-second detail updates no longer invalidate cube rendering before any bitmap reaches the screen
  • Fix: HexHivePanel now merges retained viewport batches using non-overlapping seam bands plus neighbor-row context, preventing moving white gaps between groups of rendered cube rows
  • Fix: Add download/upload speed limit adjustment buttons to TransferDetailGeneral
  • Fix: Tip of the Day "Show Tips at Startup" checkbox now saves immediately when toggled, so the setting survives force-quit or IDE stop before the normal exit save path runs
  • Fix: Setup wizard now saves its completion state synchronously instead of asynchronously — prevents infinite setup wizard loops when the JVM is force-killed (e.g., IDE red button) before the background save task executes
  • Fix: Setup wizard no longer unconditionally resets "Show Tips at Startup" to true on every run — it only resets tips on actual version updates, not when the wizard appears for other reasons (intent window, associations, etc.)
  • Fix: Add -Dsun.java2d.fontlayout=0 JVM argument to suppress JDK 21 SunLayoutEngine JNI warning spam during SynthComboBoxUI font layout on startup
  • Fix: VPN detection now properly detects Private Internet Access (PIA) on Linux
  • Performance: HexHivePanel now renders and publishes the visible viewport cubes first, so the Pieces tab paints quickly before the full scrollable bitmap finishes in the background
  • Performance: HexHivePanel now tracks viewport movement and resizes, rendering only the visible region plus directional lookahead margins instead of repainting off-screen thousands of cubes
  • Performance: HexHivePanel now keeps a retained full-size backing bitmap and incrementally patches newly needed viewport batches into it, so previously drawn cubes remain visible when scrolling back
  • Performance: HexHivePanel now prioritizes a smaller visible-band render with directional buffer and shorter row batches before backfilling wider lookahead, reducing transient blank patches while scrolling
  • Performance: Cache PlayableCell objects in LibraryFilesTableDataLine.getValueAt() to reduce GC pressure
  • Performance: Use BILINEAR instead of BICUBIC interpolation in LibraryCoverArtPanel for faster cover art scaling
  • Performance: Remove redundant updatePlayButton() from AbstractActionsRenderer.paintComponent()
  • Performance: Remove 3 redundant stat() syscalls per file in AbstractDirectoryHolder.isFileVisible()

FrostWire for Mac

Free
In English
Version 7.0.4
Write a detailed review about FrostWire

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
2.5

(71 Reviews of FrostWire)

  • Comments

  • User Ratings

Derekcurrie
Derekcurrie
Dec 10, 2025
7.0.1
1.0
Dec 10, 2025
1.0
Version: 7.0.1
v7.0.1 ARM is DOA, at least on macOS 15.7.2. It is blocked by Apple, presumably due to its security certificate. I am unable to find any new compatibility restrictions. I've reported the problem to their FacePlantBook group.
Derekcurrie
Derekcurrie
Oct 18, 2023
6.13.0
1.0
Oct 18, 2023
1.0
Version: 6.13.0
The download links here at MU go 404. New links: (1) ARM version: https://www.frostwire.com/download/?os=mac_arm64& (2) x86 version: https://www.frostwire.com/download/?os=mac_x86_64&
Derekcurrie
Derekcurrie
Apr 30, 2022
6.9.8
1.0
Apr 30, 2022
1.0
Version: 6.9.8
Note there is an ARM M1 native version available at the developer website.
anonymous-beaver-549265
anonymous-beaver-549265
Dec 31, 2020
6.8.10
0.0
Dec 31, 2020
0.0
Version: 6.8.10
Since years the time is over for p2p - my opinion
nlsges-1
nlsges-1
Jul 15, 2020
6.8.5
0.0
Jul 15, 2020
0.0
Version: 6.8.5
it opens and crashes since june previously used for past seven years
Derekcurrie
Derekcurrie
Dec 10, 2025
7.0.1
1.0
Dec 10, 2025
1.0
Version: 7.0.1
stew-1
stew-1
May 10, 2024
6.13.2
1.0
May 10, 2024
1.0
Version: 6.13.2
The_Blinded
The_Blinded
Mar 12, 2023
6.9.10
5.0
Mar 12, 2023
5.0
Version: 6.9.10
Castle-Rose
Castle-Rose
Oct 28, 2021
6.9.5
4.0
Oct 28, 2021
4.0
Version: 6.9.5
scornelius68
scornelius68
May 15, 2015
0.5
May 15, 2015
0.5
Version: null
Michael-Vilain
Michael-Vilain
May 11, 2015
3.0
May 11, 2015
3.0
Version: null
WetNet
WetNet
Feb 19, 2015
0.5
Feb 19, 2015
0.5
Version: null
Aargl
Aargl
Jan 13, 2015
3.0
Jan 13, 2015
3.0
Version: null
BradMacPro
BradMacPro
Nov 12, 2014
1.0
Nov 12, 2014
1.0
Version: null
WDS
WDS
Oct 3, 2014
1.0
Oct 3, 2014
1.0
Version: null
MalinaJ6283
MalinaJ6283
Dec 11, 2013
4.5
Dec 11, 2013
4.5
Version: null
Andrew8042
Andrew8042
Sep 27, 2013
2.0
Sep 27, 2013
2.0
Version: null
PinkyDinky
PinkyDinky
Sep 25, 2013
5.0
Sep 25, 2013
5.0
Version: null
Joser147
Joser147
Aug 14, 2013
3.0
Aug 14, 2013
3.0
Version: null
iPoopStore
iPoopStore
Jun 21, 2013
0.5
Jun 21, 2013
0.5
Version: null
Macs-Pain
Macs-Pain
Mar 11, 2013
2.5
Mar 11, 2013
2.5
Version: null
Sir-Sixty-Nine
Sir-Sixty-Nine
May 24, 2012
0.5
May 24, 2012
0.5
Version: null
Quiiick
Quiiick
Apr 19, 2012
0.5
Apr 19, 2012
0.5
Version: null
anonymous-dingo-653
anonymous-dingo-653
Mar 27, 2012
2.0
Mar 27, 2012
2.0
Version: null
Yoshinatsu
Yoshinatsu
Feb 20, 2012
0.5
Feb 20, 2012
0.5
Version: null
Koukoish
Koukoish
Dec 28, 2011
2.0
Dec 28, 2011
2.0
Version: null
Alexdlaird
Alexdlaird
Oct 4, 2011
3.0
Oct 4, 2011
3.0
Version: null
LizBo
LizBo
Aug 25, 2011
0.5
Aug 25, 2011
0.5
Version: null
iPhonePhobia
iPhonePhobia
Aug 7, 2011
2.0
Aug 7, 2011
2.0
Version: null
binniebabi
binniebabi
Jun 7, 2011
5.0
Jun 7, 2011
5.0
Version: null
Guest
Guest
Jan 21, 2011
3.0
Jan 21, 2011
3.0
Version: null
Crazy-Larrry
Crazy-Larrry
Sep 30, 2010
1.0
Sep 30, 2010
1.0
Version: null
26cab40
26cab40
Jul 4, 2010
1.0
Jul 4, 2010
1.0
Version: null
SickTeddyBear
SickTeddyBear
May 13, 2010
5.0
May 13, 2010
5.0
Version: null
Roaming-Nomad
Roaming-Nomad
Apr 16, 2010
1.0
Apr 16, 2010
1.0
Version: null
Shadymac
Shadymac
Mar 14, 2010
4.0
Mar 14, 2010
4.0
Version: null
Bezierboy
Bezierboy
Nov 28, 2009
4.0
Nov 28, 2009
4.0
Version: null
Madsenj
Madsenj
Mar 13, 2007
4.0
Mar 13, 2007
4.0
Version: null
Doug-S-
Doug-S-
Dec 28, 2006
2.0
Dec 28, 2006
2.0
Version: null
Doc-Renaud
Doc-Renaud
Dec 9, 2006
5.0
Dec 9, 2006
5.0
Version: null
Mauc
Mauc
Feb 24, 2006
4.0
Feb 24, 2006
4.0
Version: null
Nihilism4U
Nihilism4U
Jan 18, 2006
2.3
Jan 18, 2006
2.3
Version: null
Guest
Guest
Oct 19, 2005
4.3
Oct 19, 2005
4.3
Version: null