IPFS Desktop gives you all the power of IPFS in a convenient desktop app: a complete IPFS node, plus handy OS menubar/taskbar shortcuts and an all-in-one file manager, peer map, and content explorer.
Use IPFS Desktop to get acquainted with IPFS without needing to touch the terminal — or, if you're already experienced, use the powerful menubar/taskbar shortcuts alongside the command line to make your IPFS workflow faster.
Files screen | Explore screen | Peers screen | Settings screen | Menubar/taskbar |
---|---|---|---|---|
When in doubt, pick one of package formats with built-in automatic update mechanism:
- Mac: IPFS-Desktop-0.20.6.dmg
- Windows: IPFS-Desktop-Setup-0.20.6.exe
- Linux: ipfs-desktop-0.20.6-linux-x86_64.AppImage
- If you prefer to manage updates on your own, see other package formats below.
IPFS Desktop combines a complete IPFS node (running go-ipfs) and the IPFS Web UI into a single, convenient desktop app — plus adds a menu to your OS menubar/system tray for easy access to a variety of common IPFS tasks.
If you already have an IPFS node on your computer, IPFS Desktop will act as a control panel and file browser for that node. If you don't have a node, it'll install one for you. And either way, IPFS Desktop will automatically check for updates.
IPFS Desktop enables you to stop or restart your node straight from the IPFS logo menu in your OS menubar/system tray. For Mac and Windows users, IPFS Desktop can be also be set to launch at system startup, ensuring that your node is running whenever your computer is on.
Import files and folders to your IPFS node in a variety of convenient ways:
- Drag and drop items onto IPFS Desktop's
Files
screen - Click the
Import
button on theFiles
screen to add items from your computer or an IPFS content ID (CID) - (Windows) Right-click a file/folder's icon to add it to IPFS from the pop-up menu
- (Mac) Drag and drop a file/folder onto the IPFS logo in your menubar
Plus, you can use the Take Screenshot
command under the IPFS logo menu to take a screenshot, import it to your node, and copy a shareable link to your clipboard with one click.
IPFS Desktop's Files
screen gives you an easy, familiar interface for working with the contents of your node:
- Easily rename, move, or remove files and folders
- Preview many common file formats directly in IPFS Desktop
- Copy a file/folder's IPFS content ID (CID) or a shareable link to your clipboard
- "Pin" files to your IPFS node or (coming soon!) to a third-party pinning service
Visit the Peers
screen to see what nodes you're connected to, where they are, the connections they're using, and more.
Use the Explore
screen to explore some example datasets — or your own files — and see firsthand how items stored on IPFS are broken down into content-addressed pieces.
IPFS Desktop enables most operating systems (Mac, Windows and some Linux flavors) to support protocols including ipfs://
and ipns://
. This means that if an app on your computer tries to open a link starting with one of those protocol identifiers (for example, if your web browser encounters a link to ipns://en.wikipedia-on-ipfs.org
), it'll automatically open in IPFS Desktop.
For an even better experience with ipfs://
, and ipns://
addresses, we also recommend installing IPFS Companion to add support in your favorite browser!
If you're interested in learning how to use IPFS from the command line, IPFS Desktop's CLI Tutor Mode can show you common IPFS commands as you go. Just check the CLI Tutor Mode
box on the Settings
screen to switch on this feature.
Release notes and older versions of IPFS Desktop can be found on the releases page.
Don't see your favorite package manager? Visit our package managers page and help us add support for it!
- Installer: IPFS-Desktop-0.20.6.dmg
- Homebrew (community-maintained):
brew install --cask ipfs
- Installer: IPFS-Desktop-Setup-0.20.6.exe
- Chocolatey (community-maintained):
choco install ipfs-desktop
- Scoop (community-maintained):
scoop bucket add extras; scoop install extras/ipfs-desktop
- WinGet (community-maintained):
winget install IPFS.IPFS-Desktop
- AppImage: ipfs-desktop-0.20.6-linux-x86_64.AppImage
- Tarball (use this for building packages for distros): ipfs-desktop-0.20.6-linux-x64.tar.xz
- Debian (experimental): ipfs-desktop-0.20.6-linux-amd64.deb
- Red Hat (experimental): ipfs-desktop-0.20.6-linux-x86_64.rpm
- FreeBSD (experimental): ipfs-desktop-0.20.6-linux-x64.freebsd (requires Linux Binary Compatibility to be enabled)
- Snapcraft is discouraged due to confinement issues, use
.AppImage
instead - AUR (maintained by @RubenKelevra) Use the
ipfs-desktop
package
To install and run IPFS Desktop from source, you'll also need:
- Node.js – pick the current LTS
- Any platform-specific dependencies required by
node-gyp
Then, follow the steps below to clone the source code, install dependencies, and run the app.
git clone https://github.com/ipfs/ipfs-desktop.git
cd ipfs-desktop
npm ci
npm run build
npm start
We welcome all contributions to IPFS Desktop! The best way to get started is to check the current open issues (or drill down specifically for issues labeled "help wanted") and find something interesting. All issues are categorized by the standard label taxonomy used across the IPFS project, so you can also drill by topic (for example, UX-related issues).
No matter how you contribute, please be sure you read and follow the IPFS Contributing Guidelines and the IPFS Community Code of Conduct.
Contributing translations in your language is particularly valuable! We use Transifex to manage internationalization, which means you don't need to change a single line of code to add your translations — just sign up for a Transifex account.
Because IPFS Desktop app includes text from IPFS Web UI and IPLD Explorer, you'll want to join all three Transifex projects in order to see all the text:
- https://www.transifex.com/ipfs/ipfs-desktop/
- https://www.transifex.com/ipfs/ipfs-webui/
- https://www.transifex.com/ipfs/ipld-explorer/
Note for developers: We use English as our source of truth. This means that if you add any new text, make those additions in ./assets/locales/en.json
and they will automatically propagate in Transifex for other languages.
For more detailed information about hacking on IPFS Desktop, including a release checklist, please see the full developer notes.
IPFS Desktop is built using Electron, and unfortunately, poor system tray support has been a longstanding problem with Electron apps.
You may wish to try troubleshooting according to the Electron v9.3.0 docs:
- On Linux, the app indicator will be used if it is supported; otherwise
GtkStatusIcon
will be used - On Linux distributions that only have app indicator support, you must install
libappindicator1
to make the tray icon work
If you've noticed that the old system tray is back in IPFS Desktop v0.13, this is because the Electron team removed support for StatusNotifier
and restored the old tray interface on Linux called XEmbed
.
Debian package depends on libappindicator3-1
which does not exist in Debian 11 anymore.
You need to install this missing dependency on your own, or use .AppImage
instead.
Some Linux users may see one of the following errors when trying to launch IPFS Desktop:
When launching by double-clicking the app icon:
The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that chrome-sandbox is owned by root and has mode 4755.
When launching from the terminal:
$ ipfs-desktop
$Trace/breakpoint trap
This is a known issue with Electron/Chrome and some hardened kernels. More details can be found here, but a fix is to start IPFS Desktop from the terminal with the following additional parameter:
$ ipfs-desktop --no-sandbox
You can open these files from the IPFS logo menu by selecting Open Logs Directory
or Open Configuration File
from the Advanced
submenu. Or, find them in your OS as follows:
- Mac:
~/Library/Application Support/IPFS Desktop/
- Windows:
%appdata%/IPFS Desktop/
- Linux:
~/.config/IPFS Desktop/
IPFS Desktop uses ipfsd-ctl, which, by default, checks the IPFS_PATH
environment variable. If that isn't set, it falls back to $HOME/.ipfs
. As soon as the first run has succeded, repository location info is saved in the configuration file, which becomes the source of truth.
To open your repo directory from the IPFS logo menu, select Open Repository Directory
from the Advanced
submenu.
IPFS Desktop includes its own embedded binary (with version defined in package.json
); this is the latest version of go-ipfs that has passed QA for IPFS Desktop use.
You can check which version of IPFS you're running from the IPFS logo menu by looking in the About
submenu.
By default, IPFS Desktop starts the IPFS daemon with the flags --migrate=true --routing=dhtclient ----enable-gc=true
.
You can change this in the IPFS Desktop config file by selecting Open Configuration File
from the Advanced
submenu.
In general, this means that a previous process was unable to remove the repository lock (indicator that file is in use) from the repository directory. This is supposed to be handled automatically, but sometimes it isn't. If you get this error, you can generally safely delete this file after shutting down any running IPFS daemon's or applications. Simple process is as follows:
- Stop ipfs processes
- Manually delete lock file, located within the repository
- Attempt to start ipfs desktop (or other process that received the
repo.lock
error) again.
If you need help with using IPFS Desktop, the quickest way to get answers is to post them in the official IPFS forums.
If you think you've found a bug or other issue with IPFS Desktop itself, please open an issue.