diff --git a/src/Zifter/Cabal.hs b/src/Zifter/Cabal.hs
--- a/src/Zifter/Cabal.hs
+++ b/src/Zifter/Cabal.hs
@@ -3,7 +3,9 @@
 import Control.Monad.IO.Class
 import Path
 import Path.IO
+import Safe
 import System.Exit (ExitCode(..))
+import qualified System.FilePath as FP (splitPath)
 import System.IO (hGetContents)
 import System.Process
 
@@ -32,7 +34,8 @@
     rd <- getRootDir
     cabalFiles <-
         liftIO $
-        (filter ((".cabal" ==) . fileExtension) . snd) <$> listDirRecur rd
+        (filter (not . hidden) . filter ((".cabal" ==) . fileExtension) . snd) <$>
+        listDirRecur rd
     forZ_ cabalFiles formatSingleCabalFile
 
 formatSingleCabalFile :: Path Abs File -> Zift ()
@@ -47,3 +50,6 @@
         ExitSuccess ->
             printPreprocessingDone $
             unwords ["Formatted cabal file:", toFilePath cabalFile]
+
+hidden :: Path Abs t -> Bool
+hidden = any ((Just '.' ==) . headMay) . FP.splitPath . toFilePath
diff --git a/zifter-cabal.cabal b/zifter-cabal.cabal
--- a/zifter-cabal.cabal
+++ b/zifter-cabal.cabal
@@ -1,5 +1,5 @@
 name: zifter-cabal
-version: 0.0.0.1
+version: 0.0.0.2
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
@@ -23,7 +23,8 @@
         directory -any,
         zifter >=0.0.1.2 && <0.1,
         path >=0.5 && <0.6,
-        path-io >=1.2 && <1.3
+        path-io >=1.2 && <1.3,
+        safe >=0.3 && <0.4
     default-language: Haskell2010
     hs-source-dirs: src/
     ghc-options: -Wall
