diff --git a/.gitignore b/.gitignore
index c800a52..23c107f 100755
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,7 @@
 war/WEB-INF
 *.old
 .DS_Store
+.helper
 
 ### IntelliJ Idea
 .idea
diff --git a/MAINTAINERS.md b/MAINTAINERS.md
new file mode 100644
index 0000000..b7a9881
--- /dev/null
+++ b/MAINTAINERS.md
@@ -0,0 +1,33 @@
+# Apache Wave
+
+Welcome Apache Wave Maintainer.
+
+This document is your cheat sheet to the resources which are spread around the Apache Wave
+repositories and websites. Many of the Apache specific documentation will be on the Wiki linked
+below while non-apache related items will be on the website.
+
+### Helpful Links
+
+- [Confluence Wiki](https://cwiki.apache.org/confluence/display/WAVE/Maintainer+Documentation)
+- [Maintainer Website](https://incubator.apache.org/wave/maintainers)
+
+
+### Helper Tool
+
+In the Apache Wave repository is a helper tool which is designed to make our lives easier. The 
+tool is ever growing to meet the demands of the project. The maintainers website is the stable 
+location for documentation on the tool.
+
+**Required: You must have go 1.7+ installed.**
+
+With go installed you can run the tool with: 
+
+- `go run helper/cli.go`
+- `go run helper/cli.go -h`
+- `go run helper/cli.go -help`
+
+It will produce files in the `.helper` directory which should not be used for permanent storage
+ as `-clean` will remove the entire folder.
+
+**Note: Once new website has been made and published formal docs will be located in the 
+maintainers section.**
\ No newline at end of file
diff --git a/helper/cli.go b/helper/cli.go
new file mode 100644
index 0000000..fb836b7
--- /dev/null
+++ b/helper/cli.go
@@ -0,0 +1,84 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+/*
+A Simple helper program to help maintainers run the project.
+
+Current Feature List:
+	- Runs style checkers
+	- Runs style formatters ( todo )
+	- Runs build tools ( todo )
+	- Runs pre installers ( todo )
+	- Branch pull requests ( todo )
+ 	- Publishes website ( todo )
+
+Command line Flags:
+
+	-h | --help 	: shows the help.
+	-clean 		: removes all temporary files.
+
+@author: wisebaldone@apache.org ( Evan Hughes )
+ */
+package main
+
+import (
+	"os"
+	"fmt"
+	"./style"
+	"flag"
+	"log"
+)
+
+var openingText string = `
+	                         Apache Wave Maintainer Helper!
+	                         ------------------------------
+
+This tool is written for Apache Wave maintainers and may have undesired affects if used by other
+developers. This tool will need certain permissions which are not given to it automatically and will
+need to prompt the user for credentials.
+
+Use -h or --help to see the list of commands.
+----------------------------------------------------------------------------------------------------
+
+`
+/*
+	Main Helper entry.
+ */
+func main() {
+	// Welcome user.
+	fmt.Println(openingText)
+	// create temp folder
+	os.Mkdir(".helper", 0777)
+
+	clearFlag := flag.Bool("clear", false, "Clears all temporary files ( deletes .helper )")
+	styleFlag := flag.Bool("style", false, "Run the style checker on wave and pst projects.")
+	flag.Parse()
+
+	if (*clearFlag) {
+		clear()
+	}
+	if (*styleFlag) {
+		style.Run()
+	}
+}
+
+// Deletes the .helper folder
+func clear() {
+	log.Println("Removing all temporary files.")
+	os.RemoveAll(".helper")
+}
\ No newline at end of file
diff --git a/helper/style/style.go b/helper/style/style.go
new file mode 100644
index 0000000..c108702
--- /dev/null
+++ b/helper/style/style.go
@@ -0,0 +1,91 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+/*
+Commands for running the style checkers.
+
+- Java uses stylechecker.
+
+@author: wisebaldone@apache.org ( Evan Hughes )
+ */
+package style
+
+import (
+	"os"
+	"log"
+	"net/http"
+	"io"
+	"os/exec"
+)
+
+const checkStyle = ".helper/checkstyle.jar"
+
+/*
+	Runs stylechecker based off the Google style guide.
+
+	runs on:
+		wave/src/main/java
+		pst/src/main/java
+ */
+func Run() {
+	_, err := os.Stat(checkStyle)
+	if os.IsNotExist(err) {
+		download()
+	}
+	run("wave/src/main/java/", ".helper/wave.style.xml")
+	run("pst/src/main/java/", ".helper/pst.style.xml")
+}
+
+// Downloads a set version of checkstyle, current version ( 7.6.1 )
+func download() {
+	out, err := os.Create(checkStyle)
+	if err != nil {
+		log.Fatalln(err)
+	}
+	log.Println("Downloading checkstyle.")
+	resp, err := http.Get(
+		"https://nchc.dl.sourceforge.net/project/checkstyle/checkstyle/" +
+			"7.6.1/checkstyle-7.6.1-all.jar")
+	if err != nil {
+		log.Fatalln("Could not download checkstyle.")
+	}
+	defer resp.Body.Close()
+	_, err = io.Copy(out, resp.Body)
+	if err != nil {
+		log.Fatalln(err)
+	}
+}
+
+// Runs the style checker on the input and records the output in xml
+func run(directory string, outputFile string) {
+	log.Printf("Running checkstyle on %s outputting to %s\n", directory, outputFile)
+	cmd := exec.Command(
+		"java", "-jar",
+		checkStyle,
+		"-c", "/google_checks.xml",
+		directory,
+		"-o",
+		outputFile,
+		"-f",
+		"xml")
+	err := cmd.Run()
+	if err != nil {
+		log.Fatalln(err)
+	}
+	log.Printf("Finished checking %s\n", directory)
+}
\ No newline at end of file
diff --git a/pst/build.gradle b/pst/build.gradle
index 3c7bbe6..9b4dc85 100644
--- a/pst/build.gradle
+++ b/pst/build.gradle
@@ -23,6 +23,8 @@
     id 'com.github.johnrengelman.shadow' version '1.2.3'
     id 'com.google.protobuf' version '0.8.0'
 }
+apply plugin: 'checkstyle'
+apply plugin: 'com.google.protobuf'
 
 //=============================================================================
 // Project Level Settings
@@ -93,6 +95,16 @@
 }
 
 //=============================================================================
+// CheckStyle Config
+//=============================================================================
+checkstyle {
+    toolVersion = "7.6.1"
+    configFile = file("/google_checks.xml")
+}
+
+checkstyleMain.source = "src/main/java" // only checks the manually written java
+
+//=============================================================================
 // Protobuf Config
 //=============================================================================
 protobuf {
diff --git a/wave/build.gradle b/wave/build.gradle
index 232a286..32583b8 100644
--- a/wave/build.gradle
+++ b/wave/build.gradle
@@ -23,6 +23,8 @@
     id 'application'
     id "com.google.protobuf" version "0.8.0"
 }
+apply plugin: 'com.google.protobuf'
+apply plugin: 'checkstyle'
 
 //=============================================================================
 // Project Level Settings
@@ -191,6 +193,15 @@
             [group: "org.mockito", name: "mockito-core", version: "2.2.21"],                                    // [11/2016, 1/2018]
     )
 }
+//=============================================================================
+// CheckStyle Config
+//=============================================================================
+checkstyle {
+    toolVersion = "7.6.1"
+    configFile = file("/google_checks.xml")
+}
+
+checkstyleMain.source = "src/main/java" // only checks the manually written java
 
 //=============================================================================
 // Protobuf Config
