diff --git a/src/ast_commands.hpp b/src/ast_commands.hpp
index 0a474f0..ccbe266 100644
--- a/src/ast_commands.hpp
+++ b/src/ast_commands.hpp
@@ -315,8 +315,21 @@
     DatastoreTarget m_target;
 };
 
+struct quit_ : x3::position_tagged {
+    static constexpr auto name = "quit";
+    static constexpr auto shortHelp = "quit - Quit the console.";
+    static constexpr auto longHelp = R"(
+    quit
+
+    Quit the console. Accepts no arguments.
+
+    Usage:
+        /> quit)";
+    bool operator==(const quit_& b) const;
+};
+
 struct help_;
-using CommandTypes = boost::mpl::vector<cancel_, cd_, commit_, copy_, create_, delete_, describe_, discard_, dump_, exec_, get_, help_, ls_, move_, prepare_, set_, switch_>;
+using CommandTypes = boost::mpl::vector<cancel_, cd_, commit_, copy_, create_, delete_, describe_, discard_, dump_, exec_, get_, help_, ls_, move_, prepare_, quit_, set_, switch_>;
 struct help_ : x3::position_tagged {
     static constexpr auto name = "help";
     static constexpr auto shortHelp = "help - Print help for commands.";
@@ -368,3 +381,4 @@
 BOOST_FUSION_ADAPT_STRUCT(prepare_, m_path)
 BOOST_FUSION_ADAPT_STRUCT(exec_, m_path)
 BOOST_FUSION_ADAPT_STRUCT(switch_, m_target)
+BOOST_FUSION_ADAPT_STRUCT(quit_)
diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index 352824e..5cbb993 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -311,6 +311,8 @@
 
 struct cancel_class;
 
+struct quit_class;
+
 struct command_class {
     template <typename Iterator, typename Exception, typename Context>
     x3::error_handler_result on_error(Iterator&, Iterator const&, Exception const& x, Context const& context)
diff --git a/src/cli.cpp b/src/cli.cpp
index 3ed40e8..9827fa3 100644
--- a/src/cli.cpp
+++ b/src/cli.cpp
@@ -293,6 +293,9 @@
         try {
             command_ cmd = parser.parseCommand(line, std::cout);
             boost::apply_visitor(Interpreter(parser, proxyDatastore), cmd);
+            if (cmd.type() == typeid(quit_)) {
+                break;
+            }
         } catch (InvalidCommandException& ex) {
             std::cerr << ex.what() << std::endl;
         } catch (DatastoreException& ex) {
diff --git a/src/grammars.hpp b/src/grammars.hpp
index 4e3b97c..b8d9456 100644
--- a/src/grammars.hpp
+++ b/src/grammars.hpp
@@ -84,6 +84,7 @@
 x3::rule<exec_class, exec_> const exec = "exec";
 x3::rule<switch_class, switch_> const switch_rule = "switch";
 x3::rule<cancel_class, cancel_> const cancel = "cancel";
+x3::rule<quit_class, quit_> const quit = "quit";
 x3::rule<command_class, command_> const command = "command";
 
 x3::rule<createCommandSuggestions_class, x3::unused_type> const createCommandSuggestions = "createCommandSuggestions";
@@ -354,6 +355,9 @@
 auto const dump_def =
     dump_::name > space_separator >> dump_args;
 
+auto const quit_def =
+    quit_::name >> x3::attr(quit_{});
+
 auto const createCommandSuggestions_def =
     x3::eps;
 
@@ -361,7 +365,7 @@
 #if BOOST_VERSION <= 107800
     x3::eps >>
 #endif
-    createCommandSuggestions >> x3::expect[cd | copy | create | delete_rule | set | commit | get | ls | discard | describe | help | move | dump | prepare | exec | cancel | switch_rule];
+    createCommandSuggestions >> x3::expect[cd | copy | create | delete_rule | set | commit | get | ls | discard | describe | help | move | dump | prepare | exec | cancel | switch_rule | quit];
 
 #if __clang__
 #pragma GCC diagnostic pop
@@ -384,5 +388,6 @@
 BOOST_SPIRIT_DEFINE(exec)
 BOOST_SPIRIT_DEFINE(switch_rule)
 BOOST_SPIRIT_DEFINE(cancel)
+BOOST_SPIRIT_DEFINE(quit)
 BOOST_SPIRIT_DEFINE(command)
 BOOST_SPIRIT_DEFINE(createCommandSuggestions)
diff --git a/src/interpreter.cpp b/src/interpreter.cpp
index 0fe96da..d139e8b 100644
--- a/src/interpreter.cpp
+++ b/src/interpreter.cpp
@@ -291,6 +291,11 @@
     }
 }
 
+void Interpreter::operator()(const quit_&) const
+{
+    // no operation
+}
+
 template <typename PathType>
 boost::variant<dataPath_, schemaPath_, module_> Interpreter::toCanonicalPath(const boost::optional<PathType>& optPath) const
 {
diff --git a/src/interpreter.hpp b/src/interpreter.hpp
index 36c9388..f2cfd11 100644
--- a/src/interpreter.hpp
+++ b/src/interpreter.hpp
@@ -33,6 +33,7 @@
     void operator()(const exec_& exec) const;
     void operator()(const cancel_& cancel) const;
     void operator()(const switch_& switch_cmd) const;
+    void operator()(const quit_&) const;
 
 private:
     [[nodiscard]] std::string buildTypeInfo(const std::string& path) const;
diff --git a/tests/command_completion.cpp b/tests/command_completion.cpp
index 96b115b..7aafd02 100644
--- a/tests/command_completion.cpp
+++ b/tests/command_completion.cpp
@@ -22,7 +22,7 @@
 
     SECTION("no prefix")
     {
-        expectedCompletions = {"cd", "copy", "create", "delete", "set", "commit", "get", "ls", "discard", "help", "describe", "move", "dump", "prepare", "exec", "cancel", "switch"};
+        expectedCompletions = {"cd", "copy", "create", "delete", "set", "commit", "get", "ls", "discard", "help", "describe", "move", "dump", "prepare", "exec", "cancel", "switch", "quit"};
         expectedContextLength = 0;
         SECTION("no space")
         {
