Download, install, manage, debug your IPFS node
Clone or download
Latest commit 7718f84 Oct 6, 2018

🌍 Download, install, manage, debug your IPFS node 🌍

DownloadFeaturesScreenshotsVideosScriptingJoin us!


You need Java (It works with Java 8, Java 9 and Java 10)


  • It can start a new IPFS node or connect to an already running IPFS node

  • You can use multiple IPFS repositories and manage them without actually start them

  • It supports all IPFS actions with Command-Line or Graphical interfaces

  • You can modify your node configuration

  • You can create scripts and tasks in Kotlin

  • You can drag and drop files and hashes

  • You can manage keys and pins

  • It generates QR codes

  • It has a Clear & Minimalist design



Roscoe's IPFS: Creating multiple keys

Roscoe's IPFS: Connect and share with IPFS-Manager 1.2

IPFS-Manager #1 : Compiling & Running a script


Scripts and tasks are written in Kotlin, an awesome programming language for manipulating nullable objects, callbacks, and types.

You can learn it here:

They use Java-IPFS-API for interacting with IPFS

You can compile them easily with Kotlin-Compiler-GUI

Here is a video: IPFS-Manager #1 : Compiling & Running a script


A script is a simple class that is enabled when the manager is connected

import fr.rhaz.ipfs.KScript
import fr.rhaz.ipfs.append

public class ExampleScript: KScript("script"){

    override fun onEnabled() = log.append("Hello world!")


This script will write "Hello world!" to the console


A task is a script that can be run when you type its name in the console

You can use tasks to automate actions like adding files, retrieve domains, publish IPNS, ...

import fr.rhaz.ipfs.Task
import fr.rhaz.ipfs.append

public class ExampleTask: Task("example"){

    override fun onEnabled() = log.append("ExampleTask enabled!")

    override fun onCall(line: String){

        val version = ipfs.version() ?: return
        // Request the version. If there is an error, do not continue
        // Write the version

        val args = line.split(" ")
        // Split the line in multiple arguments
        if(args.size > 1) log.append(args[1])
        // If there is at least two arguments (the command + the first argument)
        // then write the first argument

This task writes "ExampleTask enabled!" in the console when the manager is connected

When you type "example" (its name), it writes the IPFS version

When you type "example anything" ("anything" can be anything), it will write the IPFS version followed by what you wrote

This app is built with the help of

Join us!