diff --git a/README.md b/README.md
index 5437b5b66e5b5f1ff6de72eb94a2939b7e183ab7..bc26d59d843c7ce6107ab91db0e4edba2b23deb1 100644
--- a/README.md
+++ b/README.md
@@ -18,3 +18,11 @@ Configure workspace
 go install dfss/...
 ```
 
+Run dfss modules
+----------------
+
+```bash
+dfssc help # Client
+dfssp help # Plaform
+dfssd help # Demonstrator
+```
diff --git a/dfssd/main.go b/dfssd/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..d08e24ba7b45c4c3e663be91e05c497ed8b7baa7
--- /dev/null
+++ b/dfssd/main.go
@@ -0,0 +1,46 @@
+package main
+
+import (
+	"dfss"
+	"flag"
+	"fmt"
+	"runtime"
+)
+
+var (
+	verbose bool
+)
+
+func init() {
+
+	flag.BoolVar(&verbose, "v", false, "Print verbose messages")
+
+	flag.Usage = func() {
+		fmt.Println("DFSS demonstrator v" + dfss.Version)
+		fmt.Println("Debug tool to check remote transmissions")
+
+		fmt.Println("\nUsage:")
+		fmt.Println("  dfssd command [flags]")
+
+		fmt.Println("\nThe commands are:")
+		fmt.Println("  help     print this help")
+		fmt.Println("  version  print dfss client version")
+
+		fmt.Println("\nFlags:")
+		flag.PrintDefaults()
+
+		fmt.Println()
+	}
+}
+
+func main() {
+	flag.Parse()
+	command := flag.Arg(0)
+
+	switch command {
+	case "version":
+		fmt.Println("v"+dfss.Version, runtime.GOOS, runtime.GOARCH)
+	default:
+		flag.Usage()
+	}
+}
diff --git a/dfssp/main.go b/dfssp/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..6e6fbbbd5f84495f09e2601341aa66376eecc664
--- /dev/null
+++ b/dfssp/main.go
@@ -0,0 +1,46 @@
+package main
+
+import (
+	"dfss"
+	"flag"
+	"fmt"
+	"runtime"
+)
+
+var (
+	verbose bool
+)
+
+func init() {
+
+	flag.BoolVar(&verbose, "v", false, "Print verbose messages")
+
+	flag.Usage = func() {
+		fmt.Println("DFSS platform v" + dfss.Version)
+		fmt.Println("Users and contracts manager")
+
+		fmt.Println("\nUsage:")
+		fmt.Println("  dfssp command [flags]")
+
+		fmt.Println("\nThe commands are:")
+		fmt.Println("  help     print this help")
+		fmt.Println("  version  print dfss client version")
+
+		fmt.Println("\nFlags:")
+		flag.PrintDefaults()
+
+		fmt.Println()
+	}
+}
+
+func main() {
+	flag.Parse()
+	command := flag.Arg(0)
+
+	switch command {
+	case "version":
+		fmt.Println("v"+dfss.Version, runtime.GOOS, runtime.GOARCH)
+	default:
+		flag.Usage()
+	}
+}