diff --git a/cmd/resources.go b/cmd/resources.go
index 20f66522a..a03595053 100644
--- a/cmd/resources.go
+++ b/cmd/resources.go
@@ -11,7 +11,7 @@ import (
 )
 
 // ResourcesCreate create a resource for the application
-func (d *DryccCmd) ResourcesCreate(appID, name string, plan string, params []string) error {
+func (d *DryccCmd) ResourcesCreate(appID, plan string, name string, params []string) error {
 	s, appID, err := load(d.ConfigFile, appID)
 
 	if err != nil {
@@ -109,7 +109,7 @@ func (d *DryccCmd) ResourceDelete(appID, name string) error {
 }
 
 // ResourcePut update a resource for the application
-func (d *DryccCmd) ResourcePut(appID, name string, plan string, params []string) error {
+func (d *DryccCmd) ResourcePut(appID, plan string, name string, params []string) error {
 	s, appID, err := load(d.ConfigFile, appID)
 
 	if err != nil {
@@ -193,7 +193,7 @@ func printResources(d *DryccCmd, appID string, resources api.Resources, wOut io.
 	fmt.Fprintf(wOut, "=== %s resources\n", appID)
 
 	for _, resource := range resources {
-		fmt.Fprintf(wOut, "--- %s\t%s\n", resource.Name, resource.Plan)
+		fmt.Fprintf(wOut, "%s\t%s\n", resource.Name, resource.Plan)
 	}
 }
 
diff --git a/cmd/resources_test.go b/cmd/resources_test.go
index 5605e09c9..7083a58f8 100644
--- a/cmd/resources_test.go
+++ b/cmd/resources_test.go
@@ -29,7 +29,7 @@ func TestResourcesCreate(t *testing.T) {
 		w.Write([]byte("{}"))
 	})
 
-	err = cmdr.ResourcesCreate("example-go", "mysql", "mysql:5.6", nil)
+	err = cmdr.ResourcesCreate("example-go", "mysql:5.6", "mysql", nil)
 	assert.NoErr(t, err)
 
 	assert.Equal(t, testutil.StripProgress(b.String()), "Creating mysql to example-go... done\n", "output")
@@ -73,7 +73,7 @@ func TestResourcesList(t *testing.T) {
 	assert.NoErr(t, err)
 
 	assert.Equal(t, b.String(), `=== example-go resources
---- mysql	mysql:5.6
+mysql	mysql:5.6
 `, "output")
 }
 
@@ -159,7 +159,7 @@ func TestResourcePut(t *testing.T) {
 		w.Write([]byte("{}"))
 	})
 
-	err = cmdr.ResourcePut("example-go", "mysql", "mysql:5.7", nil)
+	err = cmdr.ResourcePut("example-go", "mysql:5.7", "mysql", nil)
 	assert.NoErr(t, err)
 
 	assert.Equal(t, testutil.StripProgress(b.String()), "Updating mysql to example-go... done\n", "output")
diff --git a/drycc.go b/drycc.go
index b1a94879d..4ee522163 100644
--- a/drycc.go
+++ b/drycc.go
@@ -164,6 +164,8 @@ Use 'git push drycc master' to deploy to an application.
 		err = parser.Whitelist(argv, &cmdr)
 	case "volumes":
 		err = parser.Volumes(argv, &cmdr)
+	case "resources":
+		err = parser.Resources(argv, &cmdr)
 	default:
 		env := os.Environ()
 
diff --git a/go.mod b/go.mod
index 60fbf350a..5f226d611 100644
--- a/go.mod
+++ b/go.mod
@@ -5,7 +5,7 @@ go 1.13
 require (
 	github.com/arschles/assert v1.0.1-0.20191213221312-71f210f9375a
 	github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
-	github.com/drycc/controller-sdk-go v0.0.0-20200901021526-471d3aa9862b
+	github.com/drycc/controller-sdk-go v0.0.0-20200910051502-0b84631ba397
 	github.com/drycc/pkg v0.0.0-20200811173146-1f2b2781a852
 	github.com/olekukonko/tablewriter v0.0.4
 	golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
diff --git a/go.sum b/go.sum
index b79c13b96..ae6684bac 100644
--- a/go.sum
+++ b/go.sum
@@ -36,6 +36,8 @@ github.com/drycc/controller-sdk-go v0.0.0-20200813035713-e73ce53533e7 h1:8tlFlmR
 github.com/drycc/controller-sdk-go v0.0.0-20200813035713-e73ce53533e7/go.mod h1:mF8/kZ/E4oDHCtfUVS790Frm8oVzZkoCGCKYT2eWQro=
 github.com/drycc/controller-sdk-go v0.0.0-20200901021526-471d3aa9862b h1:scZpGVSBX32HcCQcqwGmH1TKuy1xEczyF0fDH0XP1xA=
 github.com/drycc/controller-sdk-go v0.0.0-20200901021526-471d3aa9862b/go.mod h1:mF8/kZ/E4oDHCtfUVS790Frm8oVzZkoCGCKYT2eWQro=
+github.com/drycc/controller-sdk-go v0.0.0-20200910051502-0b84631ba397 h1:MbpNwDOmS0+YxR0S8AsmygAj2qsOy9PjmLUzI76OhZs=
+github.com/drycc/controller-sdk-go v0.0.0-20200910051502-0b84631ba397/go.mod h1:mF8/kZ/E4oDHCtfUVS790Frm8oVzZkoCGCKYT2eWQro=
 github.com/drycc/pkg v0.0.0-20190129033019-bcdffff0fcb3 h1:QRAbL97/hJecXQzaSONMCiwt1JjBKAAMKK0qJW5sgIM=
 github.com/drycc/pkg v0.0.0-20190129033019-bcdffff0fcb3/go.mod h1:zNgTT6kuGZOKMIdSrjskIw5fctdbbszqiTPEt3ffxHw=
 github.com/drycc/pkg v0.0.0-20200811173146-1f2b2781a852 h1:OsWH7jrv2i32rkvHFuj3yVpGMR+A6heRge9tm01XR/U=
diff --git a/parser/resources.go b/parser/resources.go
index 33cf4b671..9432315af 100644
--- a/parser/resources.go
+++ b/parser/resources.go
@@ -55,7 +55,7 @@ func resourcesCreate(argv []string, cmdr cmd.Commander) error {
 	usage := `
 Create a resource for the application.
 
-Usage: drycc resources:create <plan> <name> <param>=<value>... [options]
+Usage: drycc resources:create <plan> <name> [<param>=<value>...] [options]
 
 Arguments:
   <plan>
@@ -148,7 +148,7 @@ func resourcePut(argv []string, cmdr cmd.Commander) error {
 	usage := `
 update a resource from the application
 
-Usage: drycc resources:update <plan> <name> <param>=<value>... [options]
+Usage: drycc resources:update <plan> <name> [<param>=<value>...] [options]
 
 Arguments:
   <plan>
