diff --git a/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java
new file mode 100644
index 0000000000000000000000000000000000000000..32adb49937a61ebeb967e7b16b41637ce52c356f
--- /dev/null
+++ b/CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidationCLI.java
@@ -0,0 +1,39 @@
+package de.hft.stuttgart.citydoctor2;
+
+import picocli.CommandLine;
+import picocli.CommandLine.Command;
+import picocli.CommandLine.Option;
+import picocli.CommandLine.Parameters;
+
+import java.util.concurrent.Callable;
+
+@Command(name =  "citydoctor2", mixinStandardHelpOptions = true, description = "Validates CityGML files according to a provided validation-plan.")
+public class CityDoctorValidationCLI implements Callable<Integer> {
+
+    @Option(names = {"-i" , "--in" , "--input"},
+            description = "Filepath of the CityGML file.",
+            required = true)
+    private String input;
+
+    @Option(names = {"-c" , "--config" , "--configuration", "--plan"},
+            description = "Filepath of the validation configuration .yml",
+            required = true)
+    private String config;
+
+    @Option(names = {"-x" , "--xml" , "--xmlReport"},
+            description = "Create a XML validation report at target location")
+    private String xmlReport;
+
+    @Option(names = {"-p" , "--pdf" , "--pdfReport"},
+            description = "Create a PDF validation report at target location")
+    private String pdfReport;
+
+    @Option(names = {"-o" , "--out" , "--output"},
+            description = "Create a validated copy of the CityGML input with QualityADE at target location.")
+    private String output;
+
+    @Override
+    public Integer call() throws Exception {
+        return 0;
+    }
+}