# :warning: [DRAFT] The future of Companion and IPFS-enabled extensions IPFS Companion is our way of providing access to IPFS content in browsers that do not _yet_ support IPFS. It's built using the web extension API, specifically Manifest v2. The latest specification for new web extensions, manifest v3, changes the core functionality of how IPFS Companion is built. Being that Companion is going through a major rewrite to maintain compatability, we've decided to take this opportunity to rethink how the user experience for companion should be. We have some ideas but would like community involvment in the process going forward. ## IPFS Companion manifest v3 After taking a fresh look at the features provided by Companion, and how the IPFS tooling landscape has changed, we would like to simplify the feature set of companion, while moving (and expanding) existing features into separate extensions. As of now we are thinking the list of companion features will look like the following: - Handle redirects from IPFS Public Gateways to local nodes - Ability to choose which domains redirect to local nodes or stay pinned to gateways - Global on/off for redirects - Detect and handle redirects for DNSLINK and X-IPFS-PATH headers - An added interstitial state for when a user's local node has not yet downloaded content to their node - Open webui for local node information - Open webui for quick uploads - Copy shareable public gateway links, IPFS content paths, or CIDs ## IPFS-enabled extensions IPFS-Enabled extensions will be a way for users to use and build single-feature extensions that demonstrate the power of IPFS. We plan to build an library/template for these extensions so the community can harness these features in browser contexts. An example of what an IPFS-Enabled extension could look like: #### Pin tweet to IPFS An extension which would use [WebRecorder](https://webrecorder.net/) to create a [WebARChive](https://www.loc.gov/preservation/digital/formats/fdd/fdd000236.shtml) file of the tweet, pin to the user's local node. Allowing full network playback of the tweet (even offline!) Some other ideas: * record and pin audio/video directly to IPFS * Write a publish a blogpost directly to IPFS (integrations with [Fleek](https://fleek.co/)) ## IPFS Toolbox. While working on the rewrite to companion, we've identified how useful diagnostics/tooling could be in a single place. We are working with other teams across the Protocol Labs network to bring a tooling and diagnostics into a single, developer friendly extension called IPFS Toolbox. Some examples of features that IPFS Toolbox could include: - cid explorer (cid.ipfs.io) - regex matches for cid - is-ipfs (check to see if CID or links are valid) - quick links to ipfs related resources - inspect dnslink/x-ipfs-path - peer count - view local node config - REPL ### We want your Input If you are interested in contributing join the #browsers-and-platforms channel on [Filecoin Slack](https://filecoinproject.slack.com/?redir=%2Fmessages%2FCEHHJNJS3%2F) or matrix NEED LINK :warning: