diff --git a/system/ulib/cobalt-client/README.md b/system/ulib/cobalt-client/README.md
index d8c4dfd..1a5d085 100644
--- a/system/ulib/cobalt-client/README.md
+++ b/system/ulib/cobalt-client/README.md
@@ -129,6 +129,6 @@
 
 ## Remote Vs Local values
 
-Eventually the library will provide the ability to instatiate local version of
-the metrics for the Instrospection API.  So GetRemoteCount methods, reference
+Eventually the library will provide the ability to instantiate local version of
+the metrics for the Introspection API.  So GetRemoteCount methods, reference
 the values that have not yet been sent to Cobalt.
diff --git a/system/ulib/cobalt-client/cobalt_logger.cpp b/system/ulib/cobalt-client/cobalt_logger.cpp
index b75ed88..dc234d5 100644
--- a/system/ulib/cobalt-client/cobalt_logger.cpp
+++ b/system/ulib/cobalt-client/cobalt_logger.cpp
@@ -94,7 +94,7 @@
     };
     fuchsia_cobalt_Status cobalt_status;
     // TODO(gevalentino): Use RemoteMetricInfo::event_cote and RemoteMetricInfo::component once
-    // availbale.
+    // available.
     zx_status_t result = fuchsia_cobalt_LoggerSimpleLogIntHistogram(
         logger_.get(), metric_info.metric_id, 0, nullptr, 0, indexes, bucket_count, counts,
         bucket_count, &cobalt_status);
@@ -109,7 +109,7 @@
 
     fuchsia_cobalt_Status cobalt_status;
     // TODO(gevalentino): Use RemoteMetricInfo::event_cote and RemoteMetricInfo::component once
-    // availbale.
+    // available.
     zx_status_t result = fuchsia_cobalt_LoggerBaseLogEventCount(
         logger_.get(), metric_info.metric_id, 0, nullptr, 0, 0, count, &cobalt_status);
     HandleChannelStatus(&logger_, result);
diff --git a/system/ulib/cobalt-client/include/cobalt-client/cpp/metric-options.h b/system/ulib/cobalt-client/include/cobalt-client/cpp/metric-options.h
index b5b6b35..5cf7aea 100644
--- a/system/ulib/cobalt-client/include/cobalt-client/cpp/metric-options.h
+++ b/system/ulib/cobalt-client/include/cobalt-client/cpp/metric-options.h
@@ -20,7 +20,7 @@
         kLazy,
         // Metric is aggregated locally and published via collector interface.
         kLocal,
-        // Metric deltas are aggregated locally, and sent for global agreggation to a remote
+        // Metric deltas are aggregated locally, and sent for global aggregation to a remote
         // service.
         kRemote,
         // Combination of kLocal and kRemote.
@@ -50,11 +50,11 @@
     fbl::String component;
 
     // Function that translates |metric_id| to a human readable name.
-    // If returns |nullptr| or is unset, the stringfied version of |uint32_t| will be used.
+    // If returns |nullptr| or is unset, the stringified version of |uint32_t| will be used.
     const char* (*get_metric_name)(uint32_t);
 
     // Function that translates |event_code| to a human readable name.
-    // If returns |nullptr| or is unset, the stringfied version of |uint32_t| will be used.
+    // If returns |nullptr| or is unset, the stringified version of |uint32_t| will be used.
     const char* (*get_event_name)(uint32_t);
 
     // Used by remote metrics to match with the respective unique id for the projects defined
@@ -62,7 +62,7 @@
     uint32_t metric_id;
 
     // Provides refined metric collection for |kRemote| and |kLocal| metrics.
-    // |event_code| 0 is reserved for Unkown events.
+    // |event_code| 0 is reserved for Unknown events.
     // Warning: |event_code| is not yet supported in the backend, so it will be set to 0.
     uint32_t event_code;
 
diff --git a/system/ulib/cobalt-client/include/cobalt-client/cpp/timer.h b/system/ulib/cobalt-client/include/cobalt-client/cpp/timer.h
index 837c9e8..3c41ec4 100644
--- a/system/ulib/cobalt-client/include/cobalt-client/cpp/timer.h
+++ b/system/ulib/cobalt-client/include/cobalt-client/cpp/timer.h
@@ -30,7 +30,7 @@
         return fzl::TicksToNs(Clock::now() - start_);
     }
 
-    // Reserts the timer. If |is_collecting| is false, has no effect.
+    // Resets the timer. If |is_collecting| is false, has no effect.
     void Reset() {
         if (start_.get() == 0) {
             return;
diff --git a/system/ulib/cobalt-client/include/cobalt-client/cpp/types-internal.h b/system/ulib/cobalt-client/include/cobalt-client/cpp/types-internal.h
index f023b9b..4d0ab8a 100644
--- a/system/ulib/cobalt-client/include/cobalt-client/cpp/types-internal.h
+++ b/system/ulib/cobalt-client/include/cobalt-client/cpp/types-internal.h
@@ -105,7 +105,7 @@
 public:
     virtual ~FlushInterface() = default;
 
-    // Returns true if the data was added to the logger succesfully.
+    // Returns true if the data was added to the logger successfully.
     // Returns false if logger failed to flush the data.
     virtual bool Flush(Logger* logger) = 0;
 
diff --git a/system/utest/cobalt-client/cobalt_logger_test.cpp b/system/utest/cobalt-client/cobalt_logger_test.cpp
index b58b743..1827c47 100644
--- a/system/utest/cobalt-client/cobalt_logger_test.cpp
+++ b/system/utest/cobalt-client/cobalt_logger_test.cpp
@@ -392,7 +392,7 @@
         // Set of in process FIDL services.
         Services services;
 
-        // Set of channels extracted to allow communication with with other in process
+        // Set of channels extracted to allow communication with other in process
         // services.
         Channels channels;
     };
