diff --git a/build/make.go b/build/make.go
index c094249..ac8936b 100644
--- a/build/make.go
+++ b/build/make.go
@@ -59,6 +59,9 @@ func main() {
 	case "build":
 		setupDeps()
 		buildBinaries()
+	case "build-single":
+		setupPecoInGopath()
+		buildSingleBinary()
 	default:
 		panic("Unknown action: " + action)
 	}
@@ -201,6 +204,17 @@ func buildBinaryFor(osname, arch string) {
 	run("mv", file, filepath.Join(getBuildDir(), "artifacts"))
 }
 
+func buildSingleBinary() {
+	buildDir := getBuildDir()
+	var goPath = fmt.Sprintf("%s:%s", buildDir, os.Getenv("GOPATH"))
+	os.Setenv("GOPATH", goPath)
+
+	run("go", "build", "-o",
+		filepath.Join("peco", "peco"),
+		filepath.Join("cmd", "peco", "peco.go"),
+	)
+}
+
 func run(name string, args ...string) error {
 	splat := []string{name}
 	splat = append(splat, args...)
