diff --git a/buffet/commands/cloud_command_proxy.cc b/buffet/commands/cloud_command_proxy.cc
new file mode 100644
index 0000000..5cbf6e6
--- /dev/null
+++ b/buffet/commands/cloud_command_proxy.cc
@@ -0,0 +1,35 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "buffet/commands/cloud_command_proxy.h"
+
+#include "buffet/commands/command_instance.h"
+#include "buffet/commands/prop_constraints.h"
+#include "buffet/commands/prop_types.h"
+#include "buffet/device_registration_info.h"
+
+namespace buffet {
+
+CloudCommandProxy::CloudCommandProxy(
+    CommandInstance* command_instance,
+    DeviceRegistrationInfo* device_registration_info)
+    : command_instance_(command_instance),
+      device_registration_info_(device_registration_info) {
+}
+
+void CloudCommandProxy::OnStatusChanged(const std::string& status) {
+  base::DictionaryValue patch;
+  // TODO(antonm): Change status to state.
+  patch.SetString("state", status);
+  device_registration_info_->UpdateCommand(command_instance_->GetID(), patch);
+}
+
+void CloudCommandProxy::OnProgressChanged(int progress) {
+  base::DictionaryValue patch;
+  patch.SetInteger("progress", progress);
+  // TODO(antonm): Consider batching progress change updates.
+  device_registration_info_->UpdateCommand(command_instance_->GetID(), patch);
+}
+
+}  // namespace buffet
diff --git a/buffet/commands/cloud_command_proxy.h b/buffet/commands/cloud_command_proxy.h
new file mode 100644
index 0000000..0c35c0c
--- /dev/null
+++ b/buffet/commands/cloud_command_proxy.h
@@ -0,0 +1,39 @@
+// Copyright 2014 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BUFFET_COMMANDS_CLOUD_COMMAND_PROXY_H_
+#define BUFFET_COMMANDS_CLOUD_COMMAND_PROXY_H_
+
+#include <base/macros.h>
+
+#include <string>
+
+#include "buffet/commands/command_proxy_interface.h"
+
+namespace buffet {
+
+class CommandInstance;
+class DeviceRegistrationInfo;
+
+// Command proxy which publishes command updates to the cloud.
+class CloudCommandProxy final : public CommandProxyInterface {
+ public:
+  CloudCommandProxy(CommandInstance* command_instance,
+                    DeviceRegistrationInfo* device_registration_info);
+  ~CloudCommandProxy() override = default;
+
+  // CommandProxyInterface implementation/overloads.
+  void OnStatusChanged(const std::string& status) override;
+  void OnProgressChanged(int progress) override;
+
+ private:
+  CommandInstance* command_instance_;
+  DeviceRegistrationInfo* device_registration_info_;
+
+  DISALLOW_COPY_AND_ASSIGN(CloudCommandProxy);
+};
+
+}  // namespace buffet
+
+#endif  // BUFFET_COMMANDS_CLOUD_COMMAND_PROXY_H_
diff --git a/buffet/commands/dbus_command_proxy.h b/buffet/commands/dbus_command_proxy.h
index 7286a4d..386ecaf 100644
--- a/buffet/commands/dbus_command_proxy.h
+++ b/buffet/commands/dbus_command_proxy.h
@@ -5,7 +5,6 @@
 #ifndef BUFFET_COMMANDS_DBUS_COMMAND_PROXY_H_
 #define BUFFET_COMMANDS_DBUS_COMMAND_PROXY_H_
 
-#include <memory>
 #include <string>
 
 #include <base/macros.h>
