diff --git a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/db.go b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/db.go
index 24fffb911e736a72d811119fb37ee0ebfbb34747..6dcea7b4c887abcb7bea6aca02ae1905243bc746 100644
--- a/packages/flamenco-manager-go/src/flamenco-manager/flamenco/db.go
+++ b/packages/flamenco-manager-go/src/flamenco-manager/flamenco/db.go
@@ -1,6 +1,10 @@
 package flamenco
 
 import (
+	"bufio"
+	"fmt"
+	"os"
+
 	log "github.com/Sirupsen/logrus"
 	mgo "gopkg.in/mgo.v2"
 	"gopkg.in/mgo.v2/bson"
@@ -98,3 +102,22 @@ func SaveSettings(db *mgo.Database, settings *SettingsInMongo) {
 		log.Errorf("db.SaveSettings: Unable to save settings: ", err)
 	}
 }
+
+/* Erases all tasks in the flamenco_tasks collection. */
+func CleanSlate(db *mgo.Database) {
+	fmt.Println("")
+	fmt.Println("Performing Clean Slate operation, this will erase all tasks from the local DB.")
+	fmt.Println("After performing the Clean Slate, Flamenco-Manager will shut down.")
+	fmt.Println("Press [ENTER] to continue, [Ctrl+C] to abort.")
+	bufio.NewReader(os.Stdin).ReadLine()
+
+	info, err := db.C("flamenco_tasks").RemoveAll(bson.M{})
+	if err != nil {
+		log.WithError(err).Panic("unable to erase all tasks")
+	}
+	log.Warningf("Erased %d tasks", info.Removed)
+
+	settings := GetSettings(db)
+	settings.DepsgraphLastModified = nil
+	SaveSettings(db, settings)
+}
diff --git a/packages/flamenco-manager-go/src/flamenco-manager/main.go b/packages/flamenco-manager-go/src/flamenco-manager/main.go
index 3858dbbcbc91072cdb74121e529e48a4fff5c048..b64408fd92ff83634314b033cf768cfa500e42a0 100644
--- a/packages/flamenco-manager-go/src/flamenco-manager/main.go
+++ b/packages/flamenco-manager-go/src/flamenco-manager/main.go
@@ -47,7 +47,7 @@ func http_schedule_task(w http.ResponseWriter, r *auth.AuthenticatedRequest) {
 
 func http_kick(w http.ResponseWriter, r *http.Request) {
 	upstream.KickDownloader(false)
-	w.WriteHeader(204)
+	fmt.Fprintln(w, "Kicked task downloader")
 }
 
 func http_task_update(w http.ResponseWriter, r *auth.AuthenticatedRequest) {
@@ -120,15 +120,17 @@ func shutdown(signum os.Signal) {
 }
 
 var cliArgs struct {
-	verbose bool
-	debug   bool
-	jsonLog bool
+	verbose    bool
+	debug      bool
+	jsonLog    bool
+	cleanSlate bool
 }
 
 func parseCliArgs() {
 	flag.BoolVar(&cliArgs.verbose, "verbose", false, "Enable info-level logging")
 	flag.BoolVar(&cliArgs.debug, "debug", false, "Enable debug-level logging")
 	flag.BoolVar(&cliArgs.jsonLog, "json", false, "Log in JSON format")
+	flag.BoolVar(&cliArgs.cleanSlate, "cleanslate", false, "Start with a clean slate; erases all tasks from the local MongoDB")
 	flag.Parse()
 }
 
@@ -178,6 +180,13 @@ func main() {
 	log.Info("Listening at            :", config.Listen)
 
 	session = flamenco.MongoSession(&config)
+
+	if cliArgs.cleanSlate {
+		flamenco.CleanSlate(session.DB(""))
+		log.Warning("Shutting down after performing clean slate")
+		return
+	}
+
 	upstream = flamenco.ConnectUpstream(&config, session)
 	task_scheduler = flamenco.CreateTaskScheduler(&config, upstream, session)
 	task_update_pusher = flamenco.CreateTaskUpdatePusher(&config, upstream, session)