diff --git a/build b/build
index 564232fa422500dcd146d8185f5287dc7caa2f63..eec8fd488cc52b5cc43071c4c1b61a0defe93a85 100755
--- a/build
+++ b/build
@@ -11,7 +11,7 @@ mkdir -p $GOPATH/src/github.com/coreos/
 
 LD_FLAGS="-X main.version=$(./git-version)"
 go build -o bin/dex-worker -ldflags="$LD_FLAGS" github.com/coreos/dex/cmd/dex-worker
-go build -o bin/dexctl github.com/coreos/dex/cmd/dexctl
+go build -o bin/dexctl -ldflags="$LD_FLAGS" github.com/coreos/dex/cmd/dexctl
 go build -o bin/dex-overlord -ldflags="$LD_FLAGS" github.com/coreos/dex/cmd/dex-overlord
 go build -o bin/example-app github.com/coreos/dex/examples/app
 go build -o bin/example-cli github.com/coreos/dex/examples/cli
diff --git a/cmd/dexctl/command_version.go b/cmd/dexctl/command_version.go
new file mode 100644
index 0000000000000000000000000000000000000000..37443f58afa2e48842ca52aaa07b9021a19b3abd
--- /dev/null
+++ b/cmd/dexctl/command_version.go
@@ -0,0 +1,21 @@
+package main
+
+import "github.com/spf13/cobra"
+
+var (
+	// set by the top level build script
+	version = ""
+
+	cmdVersion = &cobra.Command{
+		Use:   "version",
+		Short: "Print the dexctl version.",
+		Long:  "Print the dexctl version.",
+		Run: func(cmd *cobra.Command, args []string) {
+			stdout(version)
+		},
+	}
+)
+
+func init() {
+	rootCmd.AddCommand(cmdVersion)
+}