diff --git a/client/lib/repl.js b/client/lib/repl.js
index 6824456..d399199 100644
--- a/client/lib/repl.js
+++ b/client/lib/repl.js
@@ -125,15 +125,16 @@
     '?': help
 };
 
-function repl(wskprops, eventBus) {
-    prompt.prompt([{
-	name: 'command', message: '(wskdb)',
-	prefixMessage: '', // override the default question mark prefix
-	validate: function(line) {
-	    var commandLine = line.split(/\s+/);
-	    return line.length === 0 || commandHandlers[commandLine[0]] ? true : 'Invalid command';
-	}
-    }]).then(function(response) {
+/**
+ * This is the read-eval-print loop.
+ *
+ * @param wskprops is a map that provides the user's NAMESPACE and AUTH settings
+ * @param eventBus will be used to post and listen for inter-function communication
+ * @param attachTo if the user requested to attach to an action on launch
+ *
+ */
+function repl(wskprops, eventBus, attachTo) {
+    function handleReplCommand(response) {
 	if (response.command.length === 0) {
 	    // user hit return;
 	    return repl(wskprops, eventBus);
@@ -182,7 +183,20 @@
 	    // if async, then restart the repl right away
 	    repl(wskprops, eventBus);
 	}
-    });
+    } /* end of handleReplCommand */
+    
+    if (attachTo) {
+	handleReplCommand({ command: 'attach ' + attachTo });
+    } else {
+	prompt.prompt([{
+	    name: 'command', message: '(wskdb)',
+	    prefixMessage: '', // override the default question mark prefix
+	    validate: function(line) {
+		var commandLine = line.split(/\s+/);
+		return line.length === 0 || commandHandlers[commandLine[0]] ? true : 'Invalid command';
+	    }
+	}]).then(handleReplCommand);
+    }
 }
 
 exports.repl = repl;
diff --git a/client/wskdb.js b/client/wskdb.js
index 685339a..bc43579 100644
--- a/client/wskdb.js
+++ b/client/wskdb.js
@@ -70,21 +70,35 @@
     }, 5000);
 
     process.on('exit', function onExit() {
+	try {
+	    console.log('Goodbye!'.red);
+	    clearInterval(keepAlive);
+	    
+	    ws.send(JSON.stringify({
+		type: 'disconnect'
+	    }, function ack() {
+		ws.close();
+	    }));
+	} catch (e) {
+	}
+    });
+
+    //
+    // does the user want to attach to an action right up front?
+    //
+    var attachTo;
     try {
-	console.log('Goodbye!'.red);
-	clearInterval(keepAlive);
-
-	ws.send(JSON.stringify({
-	    type: 'disconnect'
-	}, function ack() {
-	    ws.close();
-	}));
+	attachTo = process.argv.slice(2).find(arg => {
+	    arg = arg.replace(/-/g, '');
+	    return !commandLineOptions.hasOwnProperty(arg) // not a long option
+		&& !commandLineOptionsConfig.find(opt => opt.short === arg); // and not a short option
+	});
     } catch (e) {
+	// uncomment this for debugging:
+	// console.error('error',e);
     }
-});
 
-
-    repl(wskprops, eventBus);
+    repl(wskprops, eventBus, attachTo);
 });
 
 ws.on('close', function() {
