Home

Awesome

<h1 align="center">IPFS Companion Browser Extension</h1> <p align="center" style="font-size: 1.2rem;">Harness the power of <a href="https://ipfs.tech">IPFS</a> in your browser!</p> <p align="center"> <a href="https://ipfs.tech"><img src="https://img.shields.io/badge/project-IPFS-blue.svg?style=flat-square" alt="Official Part of IPFS Project"></a> <a href="https://discuss.ipfs.tech"><img alt="Discourse Forum" src="https://img.shields.io/discourse/posts?server=https%3A%2F%2Fdiscuss.ipfs.tech&amp;color=blue"></a> <a href="https://matrix.to/#/#ipfs-space:ipfs.io"><img alt="Matrix Chat" src="https://img.shields.io/matrix/ipfs-space%3Aipfs.io?server_fqdn=matrix.org&amp;color=blue"></a> <a href="https://github.com/ipfs/ipfs-companion/releases"><img alt="GitHub release" src="https://img.shields.io/github/v/release/ipfs/ipfs-companion?filter=!*rc*"></a> <a href="https://github.com/ipfs-shipyard/ipfs-companion/blob/main/docs/LOCALIZATION-NOTES.md"><img src="https://img.shields.io/badge/i18n-translated-blue.svg" alt="i18n status"></a> <a href="https://github.com/ipfs/ipfs-companion/actions"><img src="https://img.shields.io/github/actions/workflow/status/ipfs/ipfs-companion/ci.yml?branch=main" alt="ci"></a> </p>

<a href="https://docs.ipfs.tech/install/ipfs-companion/"><img src="https://gateway.ipfs.io/ipfs/QmSsGphTN1eWMhkFFNFb23jWTXyhNbo47PF9FbmC6ZaRNg" alt="Companion UX demo" title="Companion UX demo" width="100%"></a>

<div align="center">
<img src="https://unpkg.com/@browser-logos/firefox/firefox_16x16.png" width="16" height="16"> Firefox | Firefox for Android<img src="https://unpkg.com/@browser-logos/chrome/chrome_16x16.png" width="16" height="16"> Chrome | <img src="https://unpkg.com/@browser-logos/brave/brave_16x16.png" width="16" height="16"> Brave | <img src="https://unpkg.com/@browser-logos/opera/opera_16x16.png" width="16" height="16"> Opera | <img src="https://unpkg.com/@browser-logos/edge/edge_16x16.png" width="16" height="16"> Edge
Install From AMO<br>Install from Chrome Store<br>
</div> <hr />

Table of contents

About IPFS Companion

IPFS Companion harnesses the power of your locally running IPFS node (either through the IPFS Desktop app or the command-line daemon) directly inside your favorite Chromium-based or Firefox browser, enabling support for ipfs:// addresses, redirecting content-addressed websites and file paths to your local Gateway, easy IPFS file import and sharing, and more.

IPFS is a peer-to-peer hypermedia protocol designed to make the web faster, safer, more resilient, and more open. It enables the creation and dissemination of completely distributed sites and applications that don’t rely on centralized hosting and stay true to the original vision of an open, flat web. Visit the IPFS Project website to learn more.

IPFS Companion features

Automatically detect and redirect IPFS resources

Detect URLs with IPFS paths

IPFS Companion detects and tests requests for IPFS-like paths ( such as /ipfs/{cid} or /ipns/{peerid_or_host-with-dnslink}) on any website. If a path is a valid IPFS address, it is redirected to load from your local gateway. The gateway at localhost will also automatically switch to a subdomain to provide a unique origin for each website:

https://ipfs.io/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnRhttp://localhost:8080/ipfs/QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnRhttp://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi.ipfs.localhost:8080

Detect DNSLink-enabled URLs

IPFS Companion detects DNSLink info in the DNS records of websites. If a site uses DNSLink (a few examples are https://docs.ipfs.io, https://ipld.io, and http://tr.wikipedia-on-ipfs.org), IPFS Companion redirects the HTTP request to your local gateway:

http://docs.ipfs.techhttp://localhost:8080/ipns/docs.ipfs.techhttp://docs.ipfs.tech.ipns.localhost:8080/

Detect pages with x-ipfs-path headers

IPFS Companion also upgrades transport to IPFS if it finds the x-ipfs-path in any HTTP response headers; this also acts as a fallback for cases when an IPFS path is not present in the URL. Learn more.

Toggle redirects globally or per site

You can disable and re-enable local gateway redirects by several means:

Access frequently-used IPFS actions from your browser bar

IPFS Companion enables you to quickly and easily access common actions from your browser bar with just a few clicks:

Toggle gateway redirects on a per-website basis

You can toggle redirects (of any IPFS sub-resources) for an individual website under the Current Tab section of the main menu. If that site uses DNSLink, toggling off will restore the site's original URL, too.

Toggle per-site opt-out

Switch all IPFS Companion features on/off

To temporarily suspend all IPFS integrations (redirects, API status content scripts, protocol handlers, etc.), use the on/off button at the top of the IPFS Companion menu.

Turn IPFS Companion off and on again

Try out experiments!

IPFS Companion ships with a variety of experimental features. Some are disabled by default, so be sure to check out IPFS Companion's Preferences to see them all.

Install IPFS Companion

Latest stable release

<img src="https://unpkg.com/@browser-logos/firefox/firefox_16x16.png" width="16" height="16"> Firefox | Firefox for Android<img src="https://unpkg.com/@browser-logos/chrome/chrome_16x16.png" width="16" height="16"> Chrome | <img src="https://unpkg.com/@browser-logos/brave/brave_16x16.png" width="16" height="16"> Brave | <img src="https://unpkg.com/@browser-logos/opera/opera_16x16.png" width="16" height="16"> Opera | <img src="https://unpkg.com/@browser-logos/edge/edge_16x16.png" width="16" height="16"> Edge
Install From AMO<br>Install from Chrome Store<br>

Important! Make sure you have IPFS installed on your computer as well. Because IPFS Companion (in its standard configuration) talks to your computer’s local IPFS node to work its browser magic, you’ll need to have IPFS running on your computer, too.

It's also possible to grab vendor-specific packages for each release, but these builds are not signed, nor will automatically update. .zip bundles are meant only to be manually loaded via chrome://extensions (Chromium) or about:debugging (Firefox) for smoke-testing.

Development

To work on IPFS Companion's code, you'll need to install it from source. Quick steps are below, but see the full developer notes for more detailed instructions and tips.

  1. Clone https://github.com/ipfs-shipyard/ipfs-companion.git
  2. Run this all-in-one dev build to install dependencies, build, and launch in the browser of your choice:
    • Chromium
      $ npm run dev-build chromium
      
    • Firefox
      $ npm run dev-build firefox    # firefox:nightly works too!
      

Contribute

All are welcome to help make IPFS Companion even better!

Release Process

The release process has been documented here.

Help & troubleshooting

Ask a question

The best place to ask about IPFS Companion (or IPFS in general!) is in the official IPFS Forums, where you can search past discussions for others who may have had the same questions, too. There's also an active #ipfs community on IRC.

Common troubleshooting steps

These frequently encountered troubleshooting situations may be helpful:

# Enable IPFS redirect to LOCAL
Site ^http://127.0.0.1:8080/(ipfs|ipns)*
Anonymize

# Prevent Internet sites from requesting LAN resources.
Site LOCAL
Accept from LOCAL
Deny

Privacy & license info