diff --git a/app/MindWork AI Studio/Components/Pages/Assistants.razor b/app/MindWork AI Studio/Components/Pages/Assistants.razor
index 8bd4ea83..64953646 100644
--- a/app/MindWork AI Studio/Components/Pages/Assistants.razor
+++ b/app/MindWork AI Studio/Components/Pages/Assistants.razor
@@ -8,4 +8,5 @@
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor
new file mode 100644
index 00000000..f260e65a
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor
@@ -0,0 +1,4 @@
+@page "/assistant/coding"
+@using AIStudio.Settings
+@using AIStudio.Tools
+@inherits AssistantBaseCore
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs
new file mode 100644
index 00000000..b62e2c27
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/AssistantCoding.razor.cs
@@ -0,0 +1,24 @@
+namespace AIStudio.Components.Pages.Coding;
+
+public partial class AssistantCoding : AssistantBaseCore
+{
+ protected override string Title => "Coding Assistant";
+
+ protected override string Description =>
+ """
+ This coding assistant supports you in writing code. Provide some coding context by copying and pasting
+ your code into the input fields. You might assign an ID to your code snippet to easily reference it later.
+ When you have compiler messages, you can paste them into the input fields to get help with debugging as well.
+ """;
+
+ protected override string SystemPrompt =>
+ """
+ You are a friendly, helpful senior software developer with extensive experience in various programming languages
+ and concepts. You are familiar with principles like DRY, KISS, YAGNI, and SOLID and can apply and explain them.
+ You know object-oriented programming, as well as functional programming and procedural programming. You are also
+ familiar with design patterns and can explain them. You are an expert of debugging and can help with compiler
+ messages. You can also help with code refactoring and optimization.
+ """;
+
+ private readonly List codingContexts = new();
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/CodingContext.cs b/app/MindWork AI Studio/Components/Pages/Coding/CodingContext.cs
new file mode 100644
index 00000000..acce9828
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/CodingContext.cs
@@ -0,0 +1,3 @@
+namespace AIStudio.Components.Pages.Coding;
+
+public readonly record struct CodingContext(string Id, CommonCodingLanguages Language, string Code);
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor b/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor
new file mode 100644
index 00000000..1163771b
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor.cs b/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor.cs
new file mode 100644
index 00000000..db7f95c3
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/CodingContextItem.razor.cs
@@ -0,0 +1,28 @@
+using AIStudio.Settings;
+
+using Microsoft.AspNetCore.Components;
+
+namespace AIStudio.Components.Pages.Coding;
+
+public partial class CodingContextItem : ComponentBase
+{
+ [Parameter]
+ public CodingContext CodingContext { get; set; }
+
+ [Inject]
+ protected SettingsManager SettingsManager { get; set; } = null!;
+
+ private static readonly Dictionary USER_INPUT_ATTRIBUTES = new();
+
+ #region Overrides of ComponentBase
+
+ protected override async Task OnParametersSetAsync()
+ {
+ // Configure the spellchecking for the user input:
+ this.SettingsManager.InjectSpellchecking(USER_INPUT_ATTRIBUTES);
+
+ await base.OnParametersSetAsync();
+ }
+
+ #endregion
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguageExtensions.cs b/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguageExtensions.cs
new file mode 100644
index 00000000..a1351546
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguageExtensions.cs
@@ -0,0 +1,42 @@
+namespace AIStudio.Components.Pages.Coding;
+
+public static class CommonCodingLanguageExtensions
+{
+ public static string Name(this CommonCodingLanguages language) => language switch
+ {
+ CommonCodingLanguages.NONE => "None",
+
+ CommonCodingLanguages.BASH => "Bash",
+ CommonCodingLanguages.C => "C",
+ CommonCodingLanguages.CPP => "C++",
+ CommonCodingLanguages.CSHARP => "C#",
+ CommonCodingLanguages.CSS => "CSS",
+ CommonCodingLanguages.FORTRAN => "Fortran",
+ CommonCodingLanguages.GDSCRIPT => "GDScript",
+ CommonCodingLanguages.GO => "Go",
+ CommonCodingLanguages.HTML => "HTML",
+ CommonCodingLanguages.JAVA => "Java",
+ CommonCodingLanguages.JAVASCRIPT => "JavaScript",
+ CommonCodingLanguages.JSON => "JSON",
+ CommonCodingLanguages.JULIA => "Julia",
+ CommonCodingLanguages.KOTLIN => "Kotlin",
+ CommonCodingLanguages.LUA => "Lua",
+ CommonCodingLanguages.MARKDOWN => "Markdown",
+ CommonCodingLanguages.MATHEMATICA => "Mathematica",
+ CommonCodingLanguages.MATLAB => "MATLAB",
+ CommonCodingLanguages.PHP => "PHP",
+ CommonCodingLanguages.POWERSHELL => "PowerShell",
+ CommonCodingLanguages.PROLOG => "Prolog",
+ CommonCodingLanguages.PYTHON => "Python",
+ CommonCodingLanguages.R => "R",
+ CommonCodingLanguages.RUBY => "Ruby",
+ CommonCodingLanguages.RUST => "Rust",
+ CommonCodingLanguages.SQL => "SQL",
+ CommonCodingLanguages.SWIFT => "Swift",
+ CommonCodingLanguages.TYPESCRIPT => "TypeScript",
+ CommonCodingLanguages.XML => "XML",
+
+ CommonCodingLanguages.OTHER => "Other",
+ _ => "Unknown"
+ };
+}
\ No newline at end of file
diff --git a/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguages.cs b/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguages.cs
new file mode 100644
index 00000000..0e728e1d
--- /dev/null
+++ b/app/MindWork AI Studio/Components/Pages/Coding/CommonCodingLanguages.cs
@@ -0,0 +1,38 @@
+namespace AIStudio.Components.Pages.Coding;
+
+public enum CommonCodingLanguages
+{
+ NONE,
+
+ BASH,
+ C,
+ CPP,
+ CSHARP,
+ CSS,
+ FORTRAN,
+ GDSCRIPT,
+ GO,
+ HTML,
+ JAVA,
+ JAVASCRIPT,
+ JSON,
+ JULIA,
+ KOTLIN,
+ LUA,
+ MARKDOWN,
+ MATHEMATICA,
+ MATLAB,
+ PHP,
+ POWERSHELL,
+ PROLOG,
+ PYTHON,
+ R,
+ RUBY,
+ RUST,
+ SQL,
+ SWIFT,
+ TYPESCRIPT,
+ XML,
+
+ OTHER,
+}
\ No newline at end of file