diff --git a/sdbusplus/bus.hpp b/sdbusplus/bus.hpp
index 0156705..119ae52 100644
--- a/sdbusplus/bus.hpp
+++ b/sdbusplus/bus.hpp
@@ -10,6 +10,7 @@
 
 // Forward declare.
 namespace server { namespace interface { struct interface; } }
+namespace server { namespace manager { struct manager; } }
 
 namespace bus
 {
@@ -166,6 +167,7 @@
     }
 
     friend struct server::interface::interface;
+    friend struct server::manager::manager;
 
     private:
         busp_t get() { return _bus.get(); }
diff --git a/sdbusplus/manager.hpp b/sdbusplus/manager.hpp
new file mode 100644
index 0000000..3513f2a
--- /dev/null
+++ b/sdbusplus/manager.hpp
@@ -0,0 +1,58 @@
+#pragma once
+
+#include <sdbusplus/slot.hpp>
+#include <sdbusplus/bus.hpp>
+
+namespace sdbusplus
+{
+
+namespace server
+{
+
+namespace manager
+{
+
+/** @class manager
+ *  @brief Provide a C++ holder for a sd-bus object manager.
+ *
+ *  Wraps sd_bus_add_object_manager so that an sd-bus owned object manager
+ *  can be installed at a path and automatically removed when destructed.
+ */
+struct manager
+{
+        /* Define all of the basic class operations:
+         *     Not allowed:
+         *         - Default constructor to avoid nullptrs.
+         *         - Copy operations due to internal unique_ptr.
+         *     Allowed:
+         *         - Move operations.
+         *         - Destructor.
+         */
+    manager() = delete;
+    manager(const manager&) = delete;
+    manager& operator=(const manager&) = delete;
+    manager(manager&&) = default;
+    manager& operator=(manager&&) = default;
+    ~manager() = default;
+
+    /** @brief Register an object manager at a path.
+     *
+     *  @param[in] bus - The bus to register on.
+     *  @param[in] path - The path to register.
+     */
+    manager(sdbusplus::bus::bus& bus, const char* path) : _slot(nullptr)
+    {
+        sd_bus_slot* slot = nullptr;
+        sd_bus_add_object_manager(bus.get(), &slot, path);
+
+        _slot = decltype(_slot){slot};
+    }
+
+    private:
+        slot::slot _slot;
+
+};
+
+} // namespace manager
+} // namespace server
+} // namespace sdbusplus
