diff --git a/cli/cmd/context/use.go b/cli/cmd/context/use.go
index 09126685a..7b1c75524 100644
--- a/cli/cmd/context/use.go
+++ b/cli/cmd/context/use.go
@@ -33,7 +33,7 @@ import (
 
 	"github.com/spf13/cobra"
 
-	cliconfig "github.com/docker/api/cli/config"
+	"github.com/docker/api/config"
 	"github.com/docker/api/context/store"
 )
 
@@ -56,7 +56,7 @@ func runUse(ctx context.Context, name string) error {
 			return err
 		}
 	}
-	if err := cliconfig.WriteCurrentContext(cliconfig.Dir(ctx), name); err != nil {
+	if err := config.WriteCurrentContext(config.Dir(ctx), name); err != nil {
 		return err
 	}
 	fmt.Println(name)
diff --git a/cli/config/flags.go b/cli/config/flags.go
index b9b3b3ffc..25c2405e5 100644
--- a/cli/config/flags.go
+++ b/cli/config/flags.go
@@ -32,15 +32,8 @@ import (
 	"path/filepath"
 
 	"github.com/spf13/pflag"
-)
 
-const (
-	// ConfigFileName is the name of config file
-	ConfigFileName = "config.json"
-	// ConfigFileDir is the default folder where the config file is stored
-	ConfigFileDir = ".docker"
-	// ConfigFlagName is the name of the config flag
-	ConfigFlagName = "config"
+	"github.com/docker/api/config"
 )
 
 // ConfigFlags are the global CLI flags
@@ -51,7 +44,7 @@ type ConfigFlags struct {
 
 // AddConfigFlags adds persistent (global) flags
 func (c *ConfigFlags) AddConfigFlags(flags *pflag.FlagSet) {
-	flags.StringVar(&c.Config, ConfigFlagName, confDir(), "Location of the client config files `DIRECTORY`")
+	flags.StringVar(&c.Config, config.ConfigFlagName, confDir(), "Location of the client config files `DIRECTORY`")
 }
 
 func confDir() string {
@@ -60,5 +53,5 @@ func confDir() string {
 		return env
 	}
 	home, _ := os.UserHomeDir()
-	return filepath.Join(home, ConfigFileDir)
+	return filepath.Join(home, config.ConfigFileDir)
 }
diff --git a/cli/main.go b/cli/main.go
index 5a2d88d55..ef84a534c 100644
--- a/cli/main.go
+++ b/cli/main.go
@@ -38,10 +38,6 @@ import (
 	"syscall"
 	"time"
 
-	"github.com/docker/api/cli/cmd/login"
-
-	"github.com/docker/api/cli/dockerclassic"
-
 	"github.com/pkg/errors"
 	"github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
@@ -54,9 +50,11 @@ import (
 	"github.com/docker/api/cli/cmd"
 	"github.com/docker/api/cli/cmd/compose"
 	contextcmd "github.com/docker/api/cli/cmd/context"
+	"github.com/docker/api/cli/cmd/login"
 	"github.com/docker/api/cli/cmd/run"
-	cliconfig "github.com/docker/api/cli/config"
+	"github.com/docker/api/cli/dockerclassic"
 	cliopts "github.com/docker/api/cli/options"
+	"github.com/docker/api/config"
 	apicontext "github.com/docker/api/context"
 	"github.com/docker/api/context/store"
 )
@@ -151,7 +149,7 @@ func main() {
 		fatal(errors.New("config path cannot be empty"))
 	}
 	configDir := opts.Config
-	ctx = cliconfig.WithDir(ctx, configDir)
+	ctx = config.WithDir(ctx, configDir)
 
 	currentContext, err := determineCurrentContext(opts.Context, configDir)
 	if err != nil {
@@ -206,7 +204,7 @@ func newSigContext() (context.Context, func()) {
 func determineCurrentContext(flag string, configDir string) (string, error) {
 	res := flag
 	if res == "" {
-		config, err := cliconfig.LoadFile(configDir)
+		config, err := config.LoadFile(configDir)
 		if err != nil {
 			return "", err
 		}
diff --git a/cli/main_test.go b/cli/main_test.go
index b0448b4b2..e616c3169 100644
--- a/cli/main_test.go
+++ b/cli/main_test.go
@@ -40,7 +40,7 @@ import (
 
 	"github.com/stretchr/testify/require"
 
-	"github.com/docker/api/cli/config"
+	"github.com/docker/api/config"
 )
 
 var contextSetConfig = []byte(`{
diff --git a/cli/config/config.go b/config/config.go
similarity index 100%
rename from cli/config/config.go
rename to config/config.go
diff --git a/cli/config/config_test.go b/config/config_test.go
similarity index 100%
rename from cli/config/config_test.go
rename to config/config_test.go
diff --git a/cli/config/keys.go b/config/keys.go
similarity index 82%
rename from cli/config/keys.go
rename to config/keys.go
index 5ac2f5982..21ef56f35 100644
--- a/cli/config/keys.go
+++ b/config/keys.go
@@ -27,6 +27,15 @@
 
 package config
 
+const (
+	// ConfigFileName is the name of config file
+	ConfigFileName = "config.json"
+	// ConfigFileDir is the default folder where the config file is stored
+	ConfigFileDir = ".docker"
+	// ConfigFlagName is the name of the config flag
+	ConfigFlagName = "config"
+)
+
 const (
 	// currentContextKey is the key used in the Docker config file to set the
 	// default context