diff --git a/src/ast_commands.hpp b/src/ast_commands.hpp
index 966f170..a1c377b 100644
--- a/src/ast_commands.hpp
+++ b/src/ast_commands.hpp
@@ -33,6 +33,10 @@
     Recursive
 };
 
+struct discard_ : x3::position_tagged {
+    bool operator==(const discard_& b) const;
+};
+
 struct ls_ : x3::position_tagged {
     bool operator==(const ls_& b) const;
     std::vector<LsOption> m_options;
@@ -69,7 +73,7 @@
     boost::optional<path_> m_path;
 };
 
-using command_ = boost::variant<ls_, cd_, create_, delete_, set_, commit_, get_>;
+using command_ = boost::variant<discard_, ls_, cd_, create_, delete_, set_, commit_, get_>;
 
 BOOST_FUSION_ADAPT_STRUCT(ls_, m_options, m_path)
 BOOST_FUSION_ADAPT_STRUCT(cd_, m_path)
@@ -78,4 +82,5 @@
 BOOST_FUSION_ADAPT_STRUCT(enum_, m_value)
 BOOST_FUSION_ADAPT_STRUCT(set_, m_path, m_data)
 BOOST_FUSION_ADAPT_STRUCT(commit_)
+BOOST_FUSION_ADAPT_STRUCT(discard_)
 BOOST_FUSION_ADAPT_STRUCT(get_, m_path)
diff --git a/src/ast_handlers.hpp b/src/ast_handlers.hpp
index 580ea86..b19ece0 100644
--- a/src/ast_handlers.hpp
+++ b/src/ast_handlers.hpp
@@ -214,6 +214,7 @@
     }
 };
 
+struct discard_class;
 
 struct ls_class;
 
diff --git a/src/datastore_access.hpp b/src/datastore_access.hpp
index 7259273..9cd6a70 100644
--- a/src/datastore_access.hpp
+++ b/src/datastore_access.hpp
@@ -25,4 +25,5 @@
     virtual void deletePresenceContainer(const std::string& path) = 0;
 
     virtual void commitChanges() = 0;
+    virtual void discardChanges() = 0;
 };
diff --git a/src/grammars.hpp b/src/grammars.hpp
index 688394e..03753e8 100644
--- a/src/grammars.hpp
+++ b/src/grammars.hpp
@@ -36,6 +36,7 @@
 x3::rule<leaf_data_uint_class, uint32_t> const leaf_data_uint = "leaf_data_uint";
 x3::rule<leaf_data_string_class, std::string> const leaf_data_string = "leaf_data_string";
 
+x3::rule<discard_class, discard_> const discard = "discard";
 x3::rule<ls_class, ls_> const ls = "ls";
 x3::rule<cd_class, cd_> const cd = "cd";
 x3::rule<set_class, set_> const set = "set";
@@ -176,8 +177,11 @@
 auto const commit_def =
         lit("commit") >> x3::attr(commit_());
 
+auto const discard_def =
+        lit("discard") >> x3::attr(discard_());
+
 auto const command_def =
-        x3::expect[cd | create | delete_rule | set | commit | get | ls] >> x3::eoi;
+        x3::expect[cd | create | delete_rule | set | commit | get | ls | discard] >> x3::eoi;
 
 #if __clang__
 #pragma GCC diagnostic pop
@@ -209,6 +213,7 @@
 BOOST_SPIRIT_DEFINE(commit)
 BOOST_SPIRIT_DEFINE(get)
 BOOST_SPIRIT_DEFINE(ls)
+BOOST_SPIRIT_DEFINE(discard)
 BOOST_SPIRIT_DEFINE(cd)
 BOOST_SPIRIT_DEFINE(create)
 BOOST_SPIRIT_DEFINE(delete_rule)
diff --git a/src/interpreter.cpp b/src/interpreter.cpp
index bdeecf9..452bc74 100644
--- a/src/interpreter.cpp
+++ b/src/interpreter.cpp
@@ -29,6 +29,11 @@
     m_datastore.commitChanges();
 }
 
+void Interpreter::operator()(const discard_&) const
+{
+    m_datastore.discardChanges();
+}
+
 void Interpreter::operator()(const set_& set) const
 {
     m_datastore.setLeaf(absolutePathFromCommand(set), set.m_data);
diff --git a/src/interpreter.hpp b/src/interpreter.hpp
index 262b037..0940ad5 100644
--- a/src/interpreter.hpp
+++ b/src/interpreter.hpp
@@ -22,6 +22,7 @@
     void operator()(const create_&) const;
     void operator()(const delete_&) const;
     void operator()(const ls_&) const;
+    void operator()(const discard_&) const;
 
 private:
     template <typename T>
diff --git a/src/sysrepo_access.cpp b/src/sysrepo_access.cpp
index 27ddba2..57d1cb3 100644
--- a/src/sysrepo_access.cpp
+++ b/src/sysrepo_access.cpp
@@ -131,6 +131,11 @@
     m_session->commit();
 }
 
+void SysrepoAccess::discardChanges()
+{
+    m_session->discard_changes();
+}
+
 std::string SysrepoAccess::fetchSchema(const char* module, const char* revision, const char* submodule)
 {
     auto schema = m_session->get_schema(module, revision, submodule, SR_SCHEMA_YANG); // FIXME: maybe we should use get_submodule_schema for submodules?
diff --git a/src/sysrepo_access.hpp b/src/sysrepo_access.hpp
index fb1f713..13b4ace 100644
--- a/src/sysrepo_access.hpp
+++ b/src/sysrepo_access.hpp
@@ -36,6 +36,7 @@
     std::vector<std::string> listImplementedSchemas();
 
     void commitChanges() override;
+    void discardChanges() override;
 
     std::shared_ptr<Schema> schema();
 
