diff --git a/nemesis-titan.cabal b/nemesis-titan.cabal
--- a/nemesis-titan.cabal
+++ b/nemesis-titan.cabal
@@ -1,5 +1,5 @@
 Name:                 nemesis-titan
-Version:              2013.6.22
+Version:              2013.7.13
 Build-type:           Simple
 Synopsis:             A collection of Nemesis tasks to bootstrap a Haskell project with a focus on continuous integration
 Description:          
diff --git a/src/System/Nemesis/Titan.hs b/src/System/Nemesis/Titan.hs
--- a/src/System/Nemesis/Titan.hs
+++ b/src/System/Nemesis/Titan.hs
@@ -252,6 +252,13 @@
         (config.guard_arg_string)
         guard_path
   
+    
+  -- shortcut
+  let shortcut_task_name = printf "t:%s/titan" (config.label)
+      shortcut_description = printf "Short task name for %s/titan" (config.label)
+  
+  desc shortcut_description
+  task shortcut_task_name - return ()
 
 
 titan :: String -> Unit
@@ -259,9 +266,34 @@
   let _label = _file_name.takeBaseName
   titan_with_config defaultConfig {file_name = _file_name, label = _label}
 
-
-
-
+default_mac_app_config :: Config
+default_mac_app_config = 
+  let 
+    mac_ghc_arg_string = 
+      [
+        "-lobjc"
+      , "-frameworkCocoa"
+      ].join " "
+  in
+  defaultConfig {ghc_arg_string = mac_ghc_arg_string}
+  
+titan_mac_app :: String -> FilePath -> String -> String -> Unit
+titan_mac_app _label derivied_data scheme_name target_name = do
+  titan_with_config default_mac_app_config {file_name = _label, label = _label}
+  
+  task (_label / "clean") - do
+    sh - printf "rm -rf %s" derivied_data
+    sh - printf "mkdir %s" derivied_data
+  
+  task (_label / "xcode-build") - do
+    sh - printf "cd .. && xcodebuild -scheme %s > /dev/null" scheme_name
+  
+  task (_label / "kill") - do
+    sh - printf "killall -SIGTERM %s" target_name
+  
+  task (_label / "run" + ":" + _label / "xcode-build") - do
+    sh - printf "cd %s; find . -name '%s' -exec '{}' \\;" derivied_data target_name
+    
 -- Helpers
 safe_spec :: IO () -> IO ExitCode
 safe_spec spec = E.handle (\e -> return (e :: ExitCode)) - do
