diff --git a/create/avd_spec.py b/create/avd_spec.py
index 20a3134..71d0ccc 100644
--- a/create/avd_spec.py
+++ b/create/avd_spec.py
@@ -604,6 +604,8 @@
 
         self._remote_image[constants.CHEEPS_BETTY_IMAGE] = (
             args.cheeps_betty_image or self._cfg.betty_image)
+        self._remote_image[constants.CHEEPS_FEATURES] = ','.join(
+            args.cheeps_features)
 
         # Process system image, kernel image, bootloader, and otatools.
         self._system_build_info = {constants.BUILD_ID: args.system_build_id,
diff --git a/create/avd_spec_test.py b/create/avd_spec_test.py
index 89497bc..ad41336 100644
--- a/create/avd_spec_test.py
+++ b/create/avd_spec_test.py
@@ -430,6 +430,12 @@
             self.AvdSpec.remote_image[constants.CHEEPS_BETTY_IMAGE],
             cfg.betty_image)
 
+        # Verify cheeps_features is assigned from args.
+        self.args.cheeps_features = ['a', 'b', 'c']
+        self.AvdSpec._ProcessRemoteBuildArgs(self.args)
+        self.assertEqual(
+            self.AvdSpec.remote_image[constants.CHEEPS_FEATURES],
+            'a,b,c')
 
     def testEscapeAnsi(self):
         """Test EscapeAnsi."""
diff --git a/create/create_args.py b/create/create_args.py
index 490ce6a..aa3292d 100644
--- a/create/create_args.py
+++ b/create/create_args.py
@@ -658,6 +658,14 @@
         help=("'cheeps only' The L1 betty version to use. Only makes sense "
               "when launching a controller image with "
               "stable-cheeps-host-image"))
+    create_parser.add_argument(
+        "--cheeps-feature",
+        type=str,
+        dest="cheeps_features",
+        required=False,
+        action="append",
+        default=[],
+        help=("'cheeps only' Cheeps feature to enable. Can be repeated."))
 
     AddCommonCreateArgs(create_parser)
     return create_parser
@@ -852,11 +860,13 @@
                          args.stable_cheeps_host_image_project,
                          args.username,
                          args.password,
-                         args.cheeps_betty_image]
+                         args.cheeps_betty_image,
+                         args.cheeps_features]
     if args.avd_type != constants.TYPE_CHEEPS and any(cheeps_only_flags):
         raise errors.UnsupportedCreateArgs(
-            "--stable-cheeps-*, --betty-image, --username and --password are "
-            "only valid with avd_type == %s" % constants.TYPE_CHEEPS)
+            "--stable-cheeps-*, --betty-image, --cheeps-feature, --username "
+            "and --password are only valid with avd_type == %s"
+            % constants.TYPE_CHEEPS)
     if (args.username or args.password) and not (args.username and args.password):
         raise ValueError("--username and --password must both be set")
     if not args.autoconnect and args.unlock_screen:
diff --git a/create/create_args_test.py b/create/create_args_test.py
index c8a5bb0..788955f 100644
--- a/create/create_args_test.py
+++ b/create/create_args_test.py
@@ -36,6 +36,7 @@
         username=None,
         password=None,
         cheeps_betty_image=None,
+        cheeps_features=[],
         local_image=None,
         local_kernel_image=None,
         local_system_image=None,
diff --git a/internal/constants.py b/internal/constants.py
index ad53c77..ae81865 100755
--- a/internal/constants.py
+++ b/internal/constants.py
@@ -211,6 +211,7 @@
 
 # Cheeps specific stuff.
 CHEEPS_BETTY_IMAGE = "betty_image"
+CHEEPS_FEATURES = "cheeps_features"
 
 # Key name in report
 ERROR_LOG_FOLDER = "error_log_folder"
diff --git a/internal/lib/cheeps_compute_client.py b/internal/lib/cheeps_compute_client.py
index 31f7dfb..c1d9c4b 100644
--- a/internal/lib/cheeps_compute_client.py
+++ b/internal/lib/cheeps_compute_client.py
@@ -91,6 +91,7 @@
             metadata["android_build_id"] = avd_spec.remote_image[constants.BUILD_ID]
             metadata["android_build_target"] = avd_spec.remote_image[constants.BUILD_TARGET]
             metadata["betty_image"] = avd_spec.remote_image[constants.CHEEPS_BETTY_IMAGE]
+            metadata["cheeps_features"] = avd_spec.remote_image[constants.CHEEPS_FEATURES]
 
         gcompute_client.ComputeClient.CreateInstance(
             self,
diff --git a/internal/lib/cheeps_compute_client_test.py b/internal/lib/cheeps_compute_client_test.py
index 8f46f44..4c66695 100644
--- a/internal/lib/cheeps_compute_client_test.py
+++ b/internal/lib/cheeps_compute_client_test.py
@@ -45,6 +45,7 @@
     USER = "test_user"
     PASSWORD = "test_password"
     CHEEPS_BETTY_IMAGE = 'abcasdf'
+    CHEEPS_FEATURES = 'a,b,c'
 
     def _GetFakeConfig(self):
         """Create a fake configuration object.
@@ -88,6 +89,7 @@
             'android_build_target': self.ANDROID_BUILD_TARGET,
             'avd_type': "cheeps",
             'betty_image': self.CHEEPS_BETTY_IMAGE,
+            'cheeps_features': self.CHEEPS_FEATURES,
             'cvd_01_dpi': str(self.DPI),
             'cvd_01_x_res': str(self.X_RES),
             'cvd_01_y_res': str(self.Y_RES),
@@ -110,6 +112,7 @@
             constants.BUILD_ID: self.ANDROID_BUILD_ID,
             constants.BUILD_TARGET: self.ANDROID_BUILD_TARGET,
             constants.CHEEPS_BETTY_IMAGE: self.CHEEPS_BETTY_IMAGE,
+            constants.CHEEPS_FEATURES: self.CHEEPS_FEATURES,
         }
 
         self.cheeps_compute_client.CreateInstance(
@@ -136,6 +139,7 @@
             'android_build_target': self.ANDROID_BUILD_TARGET,
             'avd_type': "cheeps",
             'betty_image': None,
+            'cheeps_features': None,
             'cvd_01_dpi': str(self.DPI),
             'cvd_01_x_res': str(self.X_RES),
             'cvd_01_y_res': str(self.Y_RES),
@@ -157,6 +161,7 @@
             constants.BUILD_ID: self.ANDROID_BUILD_ID,
             constants.BUILD_TARGET: self.ANDROID_BUILD_TARGET,
             constants.CHEEPS_BETTY_IMAGE: None,
+            constants.CHEEPS_FEATURES: None,
         }
 
         self.cheeps_compute_client.CreateInstance(
