diff --git a/src/python/dm/daq_web_service/cli/startDaqCli.py b/src/python/dm/daq_web_service/cli/startDaqCli.py
index 81af4eb27c21696b1e0de081a745a65bdf296df8..a88cca0f4f2ccba7c4d22e7dd17bdc4ca86a4808 100755
--- a/src/python/dm/daq_web_service/cli/startDaqCli.py
+++ b/src/python/dm/daq_web_service/cli/startDaqCli.py
@@ -6,7 +6,7 @@ from daqWebServiceSessionCli import DaqWebServiceSessionCli
 
 class StartDaqCli(DaqWebServiceSessionCli):
     def __init__(self):
-        DaqWebServiceSessionCli.__init__(self)
+        DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
         self.addOption('', '--experiment', dest='experimentName', help='Experiment name.')
         self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory.')
 
@@ -25,13 +25,17 @@ class StartDaqCli(DaqWebServiceSessionCli):
     def runCommand(self):
         self.parseArgs(usage="""
     dm-start-daq --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
+        [key1:value1, key2:value2, ...]
 
 Description:
-    Starts DAQ for a given experiment. Provided data directory will be monitored for data files.
+    Starts DAQ for a given experiment. Specified data directory will be 
+    monitored for data files. All provided key/value pairs will be passed to 
+    file processing plugins. 
         """)
         self.checkArgs()
         api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())
-        experiment = api.startDaq(self.getExperimentName(), self.getDataDirectory())
+        daqInfo = self.splitArgsIntoDict()
+        experiment = api.startDaq(self.getExperimentName(), self.getDataDirectory(), daqInfo=daqInfo)
         print experiment.getDisplayString(self.getDisplayKeys(), self.getDisplayFormat())
 
 #######################################################################
diff --git a/src/python/dm/daq_web_service/cli/uploadCli.py b/src/python/dm/daq_web_service/cli/uploadCli.py
index ea247a8fbdc53990475b9b9ef8ea60e5827164b5..9c75cc180c211171ceefdaaf594adbe2c96d3cb2 100755
--- a/src/python/dm/daq_web_service/cli/uploadCli.py
+++ b/src/python/dm/daq_web_service/cli/uploadCli.py
@@ -6,7 +6,7 @@ from dm.common.exceptions.invalidRequest import InvalidRequest
 
 class UploadCli(DaqWebServiceSessionCli):
     def __init__(self):
-        DaqWebServiceSessionCli.__init__(self)
+        DaqWebServiceSessionCli.__init__(self, validArgCount=self.ANY_NUMBER_OF_POSITIONAL_ARGS)
         self.addOption('', '--experiment', dest='experimentName', help='Experiment name.')
         self.addOption('', '--data-directory', dest='dataDirectory', help='Experiment data directory.')
 
@@ -25,9 +25,13 @@ class UploadCli(DaqWebServiceSessionCli):
     def runCommand(self):
         self.parseArgs(usage="""
     dm-upload --experiment=EXPERIMENTNAME --data-directory=DATADIRECTORY
+        [key1:value1, key2:value2, ...]
 
 Description:
-    Schedules data upload for a given experiment. 
+    Schedules data upload for a given experiment. All existing files in the
+    specified directory will be uploaded to storage. Relative directory 
+    structure will be preserved. All provided key/value pairs will be passed 
+    to file processing plugins.
         """)
         self.checkArgs()
         api = ExperimentRestApi(self.getLoginUsername(), self.getLoginPassword(), self.getServiceHost(), self.getServicePort(), self.getServiceProtocol())