diff --git a/bin/sessionctl/main.cc b/bin/sessionctl/main.cc
index 792a674..7dec5ce 100644
--- a/bin/sessionctl/main.cc
+++ b/bin/sessionctl/main.cc
@@ -66,22 +66,22 @@
   Defaults --focus_mod and --focus_story to 'true'.
 
   MOD_URL
-    Mods have a unique "mod_url". It's the mod package's name.
-    In BUILD.gn fuchsia_package_name = "mod_url" or mod_url comes from
-    flutter_app("mod_url") when there is no fuchsia_package_name set.
+    This can be either the mod's full package url or the mod component's name.
+    The mod components name will be converted to the following package url
+    format: fuchsia-pkg://fuchsia.com/MOD_URL#meta/MOD_URL.cmx.
 
   optional: --story_name, --mod_name, --focus_mod, --focus_story
 
 remove_mod
   Usage: [--story_name=foo] remove_mod MOD_NAME
 
-  Removes an existing mod by name. If the mod was added with add_mod, 
+  Removes an existing mod by name. If the mod was added with add_mod,
   use the value you passed to add_mod's --mod_name flag or the default
   value which would be the mod_url.
   Defaults --story_name to MOD_NAME.
 
   MOD_NAME
-      The name of the mod.
+    The name of the mod.
 
   optional: --story_name
 
diff --git a/bin/sessionctl/session_ctl_app.cc b/bin/sessionctl/session_ctl_app.cc
index f25db72..5e9b39f 100644
--- a/bin/sessionctl/session_ctl_app.cc
+++ b/bin/sessionctl/session_ctl_app.cc
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include <regex>
+
 #include "peridot/bin/sessionctl/session_ctl_app.h"
 #include "peridot/bin/sessionctl/session_ctl_constants.h"
 
@@ -77,6 +79,21 @@
   std::string mod_name = mod_url;
   std::string story_name = mod_url;
 
+  if (mod_url.find(kFuchsiaPkgPrefix) == 0) {
+    // Extract the component name from the mod url and use it as the mod and
+    // story name
+    std::regex pkg_regex(".*#meta/(\\w+)\\.cmx");
+    std::smatch match;
+    if (std::regex_search(mod_url, match, pkg_regex)) {
+      mod_name = match[1];
+      story_name = match[1];
+    }
+  } else {
+    // Replace mod url short name with full package path
+    mod_url =
+        fxl::StringPrintf(kFuchsiaPkgPath, mod_url.c_str(), mod_url.c_str());
+  }
+
   // If the following options aren't specified, their respective values will
   // remain unchanged.
   command_line.GetOptionValue(kStoryNameFlagString, &story_name);
diff --git a/bin/sessionctl/session_ctl_app_unittest.cc b/bin/sessionctl/session_ctl_app_unittest.cc
index 652a2b6..0dc36ff 100644
--- a/bin/sessionctl/session_ctl_app_unittest.cc
+++ b/bin/sessionctl/session_ctl_app_unittest.cc
@@ -82,8 +82,9 @@
 
 TEST_F(SessionCtlAppTest, AddMod) {
   // Add a mod
-  auto command_line =
-      fxl::CommandLineFromInitializerList({"sessionctl", "add_mod", "mod_url"});
+  auto command_line = fxl::CommandLineFromInitializerList(
+      {"sessionctl", "add_mod",
+       "fuchsia-pkg://fuchsia.com/mod_url#meta/mod_url.cmx"});
   SessionCtlApp sessionctl = CreateSessionCtl(command_line);
   RunLoopUntilCommandExecutes([&] {
     return sessionctl.ExecuteCommand(kAddModCommandString, command_line);
@@ -95,6 +96,8 @@
   EXPECT_EQ("mod_url", story_data->story_name);
   EXPECT_EQ("mod_url",
             test_executor_.last_commands().at(0).add_mod().mod_name.at(0));
+  EXPECT_EQ("fuchsia-pkg://fuchsia.com/mod_url#meta/mod_url.cmx",
+            test_executor_.last_commands().at(0).add_mod().intent.handler);
   EXPECT_EQ(1, test_executor_.execute_count());
 }
 
@@ -111,8 +114,9 @@
   auto story_data = GetStoryData("s");
   ASSERT_TRUE(story_data);
   EXPECT_EQ("s", story_data->story_name);
-  EXPECT_EQ("m",
-            test_executor_.last_commands().at(0).add_mod().mod_name.at(0));
+  EXPECT_EQ("m", test_executor_.last_commands().at(0).add_mod().mod_name.at(0));
+  EXPECT_EQ("fuchsia-pkg://fuchsia.com/mod_url#meta/mod_url.cmx",
+            test_executor_.last_commands().at(0).add_mod().intent.handler);
   EXPECT_EQ(1, test_executor_.execute_count());
 }
 
diff --git a/bin/sessionctl/session_ctl_constants.h b/bin/sessionctl/session_ctl_constants.h
index df09d2e..40fb2cc 100644
--- a/bin/sessionctl/session_ctl_constants.h
+++ b/bin/sessionctl/session_ctl_constants.h
@@ -28,6 +28,11 @@
 // the user does not set a required flag.
 constexpr char kGetUsageErrorString[] = "GetUsage";
 
+// Fuchsia package paths for add_mod
+constexpr char kFuchsiaPkgPrefix[] = "fuchsia-pkg://";
+constexpr char kFuchsiaPkgPath[] = "fuchsia-pkg://fuchsia.com/%s#meta/%s.cmx";
+
+// hub paths to debug services.
 constexpr char kSessionCtlServiceGlobPath[] =
     "/hub/c/sessionmgr.cmx/*/out/debug/sessionctl";
 constexpr char kBasemgrDebugServiceGlobPath[] =
