diff --git a/madlang.cabal b/madlang.cabal
--- a/madlang.cabal
+++ b/madlang.cabal
@@ -1,5 +1,5 @@
 name:                madlang
-version:             2.4.2.0
+version:             2.4.2.1
 synopsis:            Randomized templating language DSL
 description:         Madlang is a text templating language written in Haskell,
                      meant to explore computational creativity and generative
diff --git a/src/Text/Madlibs/Exec/Helpers.hs b/src/Text/Madlibs/Exec/Helpers.hs
--- a/src/Text/Madlibs/Exec/Helpers.hs
+++ b/src/Text/Madlibs/Exec/Helpers.hs
@@ -1,9 +1,10 @@
-module Text.Madlibs.Exec.Helpers (fetchPackages) where
+module Text.Madlibs.Exec.Helpers (fetchPackages, cleanPackages) where
 
 import qualified Codec.Archive.Tar      as Tar
 import           Codec.Compression.GZip (decompress)
 import qualified Data.ByteString.Lazy   as BSL
 import           Network.HTTP.Client    hiding (decompress)
+import           System.Directory       (removeFile)
 import           System.Environment     (getEnv)
 
 -- TODO set remote package url flexibly
@@ -21,4 +22,7 @@
     let packageDir = home ++ "/.madlang"
     Tar.unpack packageDir . Tar.read . decompress =<< BSL.readFile "crapfile.tar.gz"
 
+cleanPackages :: IO ()
+cleanPackages = do
+    removeFile "crapfile.tar.gz"
     putStrLn "done."
diff --git a/src/Text/Madlibs/Exec/Main.hs b/src/Text/Madlibs/Exec/Main.hs
--- a/src/Text/Madlibs/Exec/Main.hs
+++ b/src/Text/Madlibs/Exec/Main.hs
@@ -95,7 +95,7 @@
 template :: Program -> IO ()
 template rec = do
     case sub rec of
-        Install -> fetchPackages
+        Install -> fetchPackages >> cleanPackages
         _ -> do
             let toFolder = input . sub $ rec
             if getDir toFolder == "" then pure () else setCurrentDirectory (getDir toFolder)
