diff --git a/Cr.hs b/Cr.hs
--- a/Cr.hs
+++ b/Cr.hs
@@ -10,12 +10,14 @@
 import Data.Text.Lazy as LT
 import Shelly
 import System.Console.CmdArgs
+import System.Directory ( doesDirectoryExist )
 import System.Exit ( ExitCode, exitFailure )
 import System.Environment ( getEnvironment )
 import System.IO ( hFlush, stdout )
 import System.Process ( StdStream(..)
                       , CreateProcess(..), CmdSpec(..), createProcess
                       , waitForProcess )
+import System.Posix.Directory ( getWorkingDirectory, changeWorkingDirectory )
 import Text.Printf ( printf )
 
 default (LT.Text)
@@ -87,11 +89,26 @@
 shortenCommit :: Commit -> Commit
 shortenCommit = Prelude.take 7
 
+cdToRepoRoot :: IO ()
+cdToRepoRoot = do
+    gitHere <- doesDirectoryExist ".git"
+    when (not gitHere) $ do
+        wd <- getWorkingDirectory
+        if wd == "/"
+          then do
+              putStrLn "this doesn't look like a git repo"
+              exitFailure
+          else do
+              changeWorkingDirectory ".."
+              cdToRepoRoot
+
 -- FIXME Proper error handling: user should not see git errors.
 -- FIXME Mercurial support.
 -- FIXME Add support for reviewing files independently.
+-- FIXME Add support for `cr todo`.
 main :: IO ()
 main = shellyNoDir $ silently $ do
+    io cdToRepoRoot
     opts <- liftIO $ cmdArgs $ modes crModes
     case opts of
       Init commit -> do
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 all: build
 
-.PHONY: all build dist install clean doc site
+.PHONY: all build dist install clean doc site p
 
 build: dist/setup-config
 	rm -rf _site _cache
@@ -22,3 +22,6 @@
 
 doc: build
 	cabal-dev haddock
+
+p:
+	permamake.sh *.hs *.cabal Makefile
diff --git a/cr.cabal b/cr.cabal
--- a/cr.cabal
+++ b/cr.cabal
@@ -1,5 +1,5 @@
 Name:           cr
-Version:        1.0
+Version:        1.1
 Cabal-Version:  >= 1.8
 License:        GPL-3
 License-File:   LICENSE
@@ -22,7 +22,7 @@
   Location:             https://github.com/scvalex/cr.git
 
 Executable cr
-  Build-depends:        base >= 4 && < 5, cmdargs, shelly, text,
-                        process, transformers
+  Build-depends:        base >= 4 && < 5, cmdargs, directory, shelly,
+                        text, process, transformers, unix
   Main-Is:              Cr.hs
   Ghc-options:          -Wall
