diff --git a/boilr.go b/boilr.go
index 4ffd243e6606f4540d59b0403d453d4c14653d64..3a4438298425d8ef247e346af92d7c02332714ee 100644
--- a/boilr.go
+++ b/boilr.go
@@ -1,7 +1,22 @@
 package main
 
-import "github.com/tmrts/boilr/pkg/cmd"
+import (
+  "fmt"
+  "github.com/tmrts/boilr/pkg/boilr"
+  "github.com/tmrts/boilr/pkg/cmd"
+  "github.com/tmrts/boilr/pkg/util/exit"
+  "github.com/tmrts/boilr/pkg/util/osutil"
+)
 
 func main() {
-	cmd.Run()
+  if exists, err := osutil.DirExists(boilr.Configuration.TemplateDirPath); ! exists {
+    if err := osutil.CreateDirs(boilr.Configuration.TemplateDirPath); err != nil {
+      exit.Error(fmt.Errorf("Tried to initialise your template directory, but it has failed: %s", err))
+    }
+  } else if err != nil {
+    exit.Error(fmt.Errorf("Failed to init: %s", err))
+  }
+
+  cmd.Run()
 }
+