diff --git a/propellor.cabal b/propellor.cabal
index c0b8624..82880d1 100644
--- a/propellor.cabal
+++ b/propellor.cabal
@@ -101,6 +101,7 @@ Library
     Propellor.Property.SiteSpecific.GitHome
     Propellor.Property.SiteSpecific.JoeySites
     Propellor.Property.SiteSpecific.GitAnnexBuilder
+    Propellor.CmdLine
     Propellor.Info
     Propellor.Message
     Propellor.PrivData
@@ -112,7 +113,6 @@ Library
     Propellor.Types.PrivData
   Other-Modules:
     Propellor.Types.Info
-    Propellor.CmdLine
     Propellor.Git
     Propellor.Gpg
     Propellor.Server
diff --git a/src/Propellor/CmdLine.hs b/src/Propellor/CmdLine.hs
index 0ae79ac..9006d90 100644
--- a/src/Propellor/CmdLine.hs
+++ b/src/Propellor/CmdLine.hs
@@ -1,4 +1,7 @@
-module Propellor.CmdLine where
+module Propellor.CmdLine (
+	defaultMain,
+	processCmdLine,
+) where
 
 import System.Environment (getArgs)
 import Data.List
@@ -68,6 +71,7 @@ processCmdLine = go =<< getArgs
 		Just pf -> return $ f pf (Context c)
 		Nothing -> errorMessage $ "Unknown privdata field " ++ s
 
+-- | Runs propellor on hosts, as controlled by command-line options.
 defaultMain :: [Host] -> IO ()
 defaultMain hostlist = do
 	DockerShim.cleanEnv