diff --git a/Build/Targets/Import.targets b/Build/Targets/Import.targets
index f6654edeb..59eccb115 100644
--- a/Build/Targets/Import.targets
+++ b/Build/Targets/Import.targets
@@ -2,6 +2,7 @@
+
diff --git a/Build/Targets/Templates.targets b/Build/Targets/Templates.targets
new file mode 100644
index 000000000..7a3c8b939
--- /dev/null
+++ b/Build/Targets/Templates.targets
@@ -0,0 +1,42 @@
+
+
+
+ netstandard1.0
+ $(ArtifactsDir)packages\
+ True
+ False
+
+
+
+ $(UserProfile)\.cosmos\packages\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(PackageFile)
+
+
+
+
+
+
+
+
+
diff --git a/source/Templates/Cosmos.Templates.Kernel/Cosmos.Templates.Kernel.csproj b/source/Templates/Cosmos.Templates.Kernel/Cosmos.Templates.Kernel.csproj
new file mode 100644
index 000000000..416aeda2a
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/Cosmos.Templates.Kernel.csproj
@@ -0,0 +1,9 @@
+
+
+
+ True
+ Cosmos kernel templates for C#, Visual Basic and F#.
+$(CosmosDescription)
+
+
+
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/.template.config/template.json b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/.template.config/template.json
new file mode 100644
index 000000000..a88540bc7
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/.template.config/template.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Cosmos",
+ "classifications": [ "Kernel", "Cosmos" ],
+ "groupIdentity": "Cosmos.Templates.Kernel",
+ "identity": "Cosmos.Templates.Kernel.CSharp",
+ "name": "Cosmos Kernel",
+ "shortName": "cosmoskernel",
+ "tags":{
+ "language": "C#",
+ "type": "project"
+ },
+ "sourceName": "CosmosKernel"
+}
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/CosmosKernel.csproj b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/CosmosKernel.csproj
new file mode 100644
index 000000000..f0409789e
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/CosmosKernel.csproj
@@ -0,0 +1,13 @@
+
+
+
+ netcoreapp2.0
+
+
+
+
+
+
+
+
+
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/Kernel.cs b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/Kernel.cs
new file mode 100644
index 000000000..a63db855e
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-CSharp/Kernel.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Sys = Cosmos.System;
+
+namespace CosmosKernel
+{
+ public class Kernel: Sys.Kernel
+ {
+ protected override void BeforeRun()
+ {
+ Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.");
+ }
+
+ protected override void Run()
+ {
+ Console.Write("Input: ");
+ var input = Console.ReadLine();
+ Console.Write("Text typed: ");
+ Console.WriteLine(input);
+ }
+ }
+}
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/.template.config/template.json b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/.template.config/template.json
new file mode 100644
index 000000000..147c0c816
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/.template.config/template.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Cosmos",
+ "classifications": [ "Kernel", "Cosmos" ],
+ "groupIdentity": "Cosmos.Templates.Kernel",
+ "identity": "Cosmos.Templates.Kernel.FSharp",
+ "name": "Cosmos Kernel",
+ "shortName": "cosmoskernel",
+ "tags":{
+ "language": "F#",
+ "type": "project"
+ },
+ "sourceName": "CosmosKernel"
+}
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/CosmosKernel.fsproj b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/CosmosKernel.fsproj
new file mode 100644
index 000000000..0e8cd9f20
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/CosmosKernel.fsproj
@@ -0,0 +1,17 @@
+
+
+
+ netcoreapp2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/Kernel.fs b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/Kernel.fs
new file mode 100644
index 000000000..9b5a66ccc
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-FSharp/Kernel.fs
@@ -0,0 +1,12 @@
+namespace CosmosKernel
+
+open System
+
+type Kernel() =
+ inherit Cosmos.System.Kernel()
+ override u.BeforeRun() = (Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.");)
+ override u.Run() =
+ Console.Write("Input: ");
+ let input = Console.ReadLine();
+ Console.Write("Text typed: ");
+ Console.WriteLine(input);
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/.template.config/template.json b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/.template.config/template.json
new file mode 100644
index 000000000..0abf99daa
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/.template.config/template.json
@@ -0,0 +1,14 @@
+{
+ "$schema": "http://json.schemastore.org/template",
+ "author": "Cosmos",
+ "classifications": [ "Kernel", "Cosmos" ],
+ "groupIdentity": "Cosmos.Templates.Kernel",
+ "identity": "Cosmos.Templates.Kernel.VisualBasic",
+ "name": "Cosmos Kernel",
+ "shortName": "cosmoskernel",
+ "tags":{
+ "language": "VB",
+ "type": "project"
+ },
+ "sourceName": "CosmosKernel"
+}
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/CosmosKernel.vbproj b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/CosmosKernel.vbproj
new file mode 100644
index 000000000..f0409789e
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/CosmosKernel.vbproj
@@ -0,0 +1,13 @@
+
+
+
+ netcoreapp2.0
+
+
+
+
+
+
+
+
+
diff --git a/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/Kernel.vb b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/Kernel.vb
new file mode 100644
index 000000000..5e70a4dc3
--- /dev/null
+++ b/source/Templates/Cosmos.Templates.Kernel/content/Kernel-VisualBasic/Kernel.vb
@@ -0,0 +1,23 @@
+Imports System
+Imports System.Collections.Generic
+Imports System.Text
+
+Namespace CosmosKernel
+
+ Public Class Kernel
+ Inherits Cosmos.System.Kernel
+
+ Protected Overrides Sub BeforeRun()
+ Console.WriteLine("Cosmos booted successfully. Type a line of text to get it echoed back.")
+ End Sub
+
+ Protected Overrides Sub Run()
+ Console.Write("Input: ")
+ Dim input = Console.ReadLine()
+ Console.Write("Text typed: ")
+ Console.WriteLine(input)
+ End Sub
+
+ End Class
+
+End Namespace
diff --git a/source/Templates/install-dotnet-templates.bat b/source/Templates/install-dotnet-templates.bat
new file mode 100644
index 000000000..25914184b
--- /dev/null
+++ b/source/Templates/install-dotnet-templates.bat
@@ -0,0 +1,3 @@
+@echo off
+
+dotnet msbuild Cosmos.Templates.Kernel\Cosmos.Templates.Kernel.csproj /t:InstallTemplates