diff --git a/mpcdf_branch.py b/mpcdf_branch.py
new file mode 100644
index 0000000000000000000000000000000000000000..13877bf207331b62a1ee67ea2e696491743900d5
--- /dev/null
+++ b/mpcdf_branch.py
@@ -0,0 +1,39 @@
+#!/usr/bin/python2
+from __future__ import print_function
+
+import time
+import mpcdf_common
+
+import os
+import osc
+import osc.conf
+import osc.core
+import osc.cmdln
+
+from xml.etree import ElementTree
+
+
+def do_mpcdf_branch(self, subcmd, opts, *args):
+    """${cmd_name}: Branch package from software to your home project
+
+    This creates a branch of the package PACKAGE in the central
+    'software' repository into your home:$USER project, and sets
+    all required meta-data for the enabled repositories.
+
+    Usage:
+        osc mpcdf_branch PACKAGE
+
+    ${cmd_option_list}
+    """
+
+    apiurl = self.get_api_url()
+    target_project = "home:" + osc.conf.get_apiurl_usr(apiurl)
+
+    if len(args) == 0:
+        raise osc.oscerr.WrongArgs("Missing argument: PACKAGENAME")
+    if len(args) > 1:
+        raise osc.oscerr.WrongArgs("Too many arguments")
+
+    package, = args
+    mpcdf_common.sync_projects(apiurl, package=package, from_project="software",
+                               to_projects=(target_project,), add_to_maintainers=False)