diff --git a/Dalamud/Console/ConsoleArgumentType.cs b/Dalamud/Console/ConsoleArgumentType.cs
new file mode 100644
index 000000000..4b4a74ce4
--- /dev/null
+++ b/Dalamud/Console/ConsoleArgumentType.cs
@@ -0,0 +1,27 @@
+namespace Dalamud.Console;
+
+///
+/// Possible console argument types.
+///
+internal enum ConsoleArgumentType
+{
+ ///
+ /// A regular string.
+ ///
+ String,
+
+ ///
+ /// A signed integer.
+ ///
+ Integer,
+
+ ///
+ /// A floating point value.
+ ///
+ Float,
+
+ ///
+ /// A boolean value.
+ ///
+ Bool,
+}
diff --git a/Dalamud/Console/ConsoleEntry.cs b/Dalamud/Console/ConsoleEntry.cs
new file mode 100644
index 000000000..701a4e04b
--- /dev/null
+++ b/Dalamud/Console/ConsoleEntry.cs
@@ -0,0 +1,44 @@
+using System.Collections.Generic;
+
+namespace Dalamud.Console;
+
+///
+/// Interface representing an entry in the console.
+///
+public interface IConsoleEntry
+{
+ ///
+ /// Gets the name of the entry.
+ ///
+ public string Name { get; }
+
+ ///
+ /// Gets the description of the entry.
+ ///
+ public string Description { get; }
+}
+
+///
+/// Interface representing a command in the console.
+///
+public interface IConsoleCommand : IConsoleEntry
+{
+ ///
+ /// Execute this command.
+ ///
+ /// Arguments to invoke the entry with.
+ /// Whether or not execution succeeded.
+ public bool Invoke(IEnumerable