diff --git a/Kit/CmdArgs.hs b/Kit/CmdArgs.hs
--- a/Kit/CmdArgs.hs
+++ b/Kit/CmdArgs.hs
@@ -8,7 +8,7 @@
 
   data KitCmdArgs = Update
                   | Package
-                  | PublishLocal
+                  | PublishLocal { tag :: Maybe String } 
                   | Verify { sdk :: String }
                   | CreateSpec { name :: String, version :: String } deriving (Show, Data, Typeable)
 
@@ -22,7 +22,7 @@
                             help "Write out a KitSpec file using the given name and version."
       , Package &=
                     help "Create a tar.gz wrapping this kit"
-      , PublishLocal &= explicit &= CA.name "publish-local" &=
+      , PublishLocal { tag = Nothing } &= explicit &= CA.name "publish-local" &=
                     help "Package this kit, then deploy it to the local repository (~/.kit/repository)"
       , Verify { sdk = "iphonesimulator4.0" &= typ "SDK" &= help "iphoneos, iphonesimulator4.0, etc."} &=
                     help "Package this kit, then attempt to use it as a dependency in an empty project. This will assert that the kit and all its dependencies can be compiled together."
diff --git a/Kit/Main.hs b/Kit/Main.hs
--- a/Kit/Main.hs
+++ b/Kit/Main.hs
@@ -23,10 +23,13 @@
   doPackageKit :: Command ()
   doPackageKit = mySpec >>= liftIO . package 
 
-  doDeployLocal :: Command ()
-  doDeployLocal = mySpec >>= \spec -> liftIO $ do 
-    package spec
-    publishLocal spec 
+  doPublishLocal :: Maybe String -> Command ()
+  doPublishLocal versionTag = do
+    spec <- mySpec 
+    let updatedSpec = maybe spec (\tag -> updateVersion spec (++tag)) versionTag
+    liftIO $ do
+      package updatedSpec 
+      publishLocal updatedSpec 
     return ()
       where
         publishLocal :: KitSpec -> IO ()
@@ -36,14 +39,14 @@
                               let thisKitDir = repo </> "kits" </> packageName spec </> packageVersion spec
                               mkdirP thisKitDir
                               copyFile ("dist" </> pkg) (thisKitDir </> pkg)
-                              copyFile "KitSpec" (thisKitDir </> "KitSpec")
+                              writeSpec (thisKitDir </> "KitSpec") spec
 
   doVerify :: String -> Command ()
   doVerify sdk = do
         spec <- mySpec
         puts "Checking that the kit can be depended upon..."
         puts " #> Deploying locally"
-        doDeployLocal
+        doPublishLocal Nothing -- TODO publish with a verify tag
         puts " #> Building temporary parent project"
         tmp <- liftIO getTemporaryDirectory
         inDirectory tmp $ do
@@ -67,7 +70,7 @@
   handleArgs :: KA.KitCmdArgs -> Command ()
   handleArgs KA.Update = doUpdate
   handleArgs KA.Package = doPackageKit
-  handleArgs KA.PublishLocal = doDeployLocal
+  handleArgs (KA.PublishLocal versionTag) = doPublishLocal versionTag 
   handleArgs (KA.Verify sdkName) = doVerify sdkName
   handleArgs (KA.CreateSpec name version) = doCreateSpec name version
 
diff --git a/Kit/Spec.hs b/Kit/Spec.hs
--- a/Kit/Spec.hs
+++ b/Kit/Spec.hs
@@ -3,6 +3,7 @@
   -- | The Core Kit types
   KitSpec(..),
   Kit(..),
+  updateVersion,
   -- | Duck typing the name/version of a Kit/Spec
   Packageable(..),
   packageFileName,
@@ -31,6 +32,9 @@
     specConfigFile :: FilePath,
     specKitDepsXcodeFlags :: Maybe String
   } deriving (Show, Read)
+
+  updateVersion :: KitSpec -> (String -> String) -> KitSpec
+  updateVersion spec f = spec { specKit = (specKit spec) { kitVersion = f . kitVersion . specKit $ spec } } 
 
   data Kit = Kit {
     kitName :: String,
diff --git a/kit.cabal b/kit.cabal
--- a/kit.cabal
+++ b/kit.cabal
@@ -1,5 +1,5 @@
 name:           kit
-version:        0.6.1
+version:        0.6.2
 cabal-version:  >=1.2
 build-type:     Simple
 license:        BSD3
