diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.3.3
+
+* Support for new Stack 1.8 console output
+
 ## 0.3.2
 
 * Switch to rio and LTS 11
diff --git a/mega-sdist.cabal b/mega-sdist.cabal
--- a/mega-sdist.cabal
+++ b/mega-sdist.cabal
@@ -1,11 +1,11 @@
--- This file has been generated from package.yaml by hpack version 0.21.2.
+-- This file has been generated from package.yaml by hpack version 0.28.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 407ba429efdb65a7f336e889a0aeccf043f834c4c3c040efca8216c42587a55e
+-- hash: afc2ed4fe6e6a2099f0044f7966a1f908f3db8ba91dce47907e608dcdc3a1860
 
 name:           mega-sdist
-version:        0.3.2
+version:        0.3.3
 synopsis:       Handles uploading to Hackage from mega repos
 description:    Please see the description on Github at <https://github.com/snoyberg/mega-sdist#readme>
 category:       Distribution
@@ -17,7 +17,6 @@
 license-file:   LICENSE
 build-type:     Simple
 cabal-version:  >= 1.10
-
 extra-source-files:
     ChangeLog.md
     README.md
@@ -36,6 +35,7 @@
     , http-conduit >=2.3
     , optparse-simple
     , rio
+    , rio-orphans
     , tar-conduit >=0.2.1
     , yaml
   other-modules:
diff --git a/mega-sdist.hs b/mega-sdist.hs
--- a/mega-sdist.hs
+++ b/mega-sdist.hs
@@ -4,6 +4,7 @@
 {-# LANGUAGE RecordWildCards #-}
 {-# LANGUAGE TemplateHaskell #-}
 import RIO
+import RIO.Orphans
 import Conduit
 import RIO.Directory
 import RIO.FilePath
@@ -29,11 +30,14 @@
 data App = App
   { appLogFunc :: !LogFunc
   , appProcessContext :: !ProcessContext
+  , appResourceMap :: !ResourceMap
   }
 instance HasLogFunc App where
   logFuncL = lens appLogFunc (\x y -> x { appLogFunc = y })
 instance HasProcessContext App where
   processContextL = lens appProcessContext (\x y -> x { appProcessContext = y })
+instance HasResourceMap App where
+  resourceMapL = lens appResourceMap (\x y -> x { appResourceMap = y })
 
 getUrlHackage :: MonadIO m => Package -> m Request
 getUrlHackage (Package _fp (PackageName a) (Version b)) =
@@ -88,10 +92,11 @@
 
     lo <- logOptionsHandle stdout verbose
     pc <- mkDefaultProcessContext
-    withLogFunc lo $ \lf -> do
+    withLogFunc lo $ \lf -> withResourceMap $ \rm -> do
       let app = App
             { appLogFunc = lf
             , appProcessContext = pc
+            , appResourceMap = rm
             }
       runRIO app $ main2 args
 
@@ -114,15 +119,15 @@
     createDirectoryIfMissing True "tarballs"
 
     tarballs <- forM dirs $ \dir -> do
-        output <- proc "stack" ["sdist", dir] readProcessStderr_
+        output <- proc "stack" ["--no-terminal", "sdist", dir] readProcessStderr_
         case decodeUtf8' $ BL.toStrict output of
           Left e -> error $ "Invalid non-UTF8 output: " ++ show e
-          Right text -> case reverse $ map T.unpack $ T.words text of
+          Right text -> case fmap T.unpack $ filter (".tar.gz" `T.isSuffixOf`) $ T.words text of
             fp:_ -> do
                 let dest = "tarballs" </> takeFileName fp
                 renameFile fp dest
                 return dest
-            [] -> error $ "Unexpected 'stack sdist' output in dir: " ++ dir
+            [] -> error $ "Unexpected 'stack sdist' output in dir: " ++ dir ++ "\n\n" ++ T.unpack text
 
     m <- Map.unionsWith mappend <$> mapM (go getDiffs) tarballs
 
@@ -151,7 +156,7 @@
                 let ident = T.unpack $ mconcat [name, "-", version]
                     msg = "Release: " <> ident
                  in proc "git" ["tag", "-s", ident, "-m", msg] $ \pc -> do
-                      logInfo $ displayShow pc
+                      logInfo $ display pc
                       runProcess_ pc
         Just s -> do
             logInfo "\nThe following packages require a version bump:"
@@ -185,33 +190,33 @@
             then handleFile
             else do
               reqH <- getUrlHackage package
-              runResourceT $ httpSink reqH $ \resH -> do
+              httpSink reqH $ \resH -> do
                 case () of
                   ()
                     | getResponseStatusCode resH `elem` [403, 404] -> do
                         mdiff <-
                           if getDiffs
                             then do
-                                mlatest <- getLatestVersion (packageName package)
+                                mlatest <- lift $ getLatestVersion $ packageName package
                                 case mlatest of
                                   Nothing -> return Nothing
                                   Just (latest, latestv) -> do
-                                    (isDiff, mdiff) <- lift $ lift $ compareTGZ getDiffs (packageName package) latest latestv fp (packageVersion package)
+                                    (isDiff, mdiff) <- lift $ compareTGZ getDiffs (packageName package) latest latestv fp (packageVersion package)
                                     return $ if isDiff then mdiff else Nothing
                             else return Nothing
                         return (DoesNotExist, mdiff)
                     | getResponseStatusCode resH == 403 -> return (DoesNotExist, Nothing)
                     | getResponseStatusCode resH == 200 -> do
-                        liftIO $ createDirectoryIfMissing True $ takeDirectory localFileHackage
+                        createDirectoryIfMissing True $ takeDirectory localFileHackage
                         sinkFileCautious localFileHackage
-                        lift $ lift handleFile
+                        lift handleFile
                     | otherwise -> error $ "Invalid status code: " ++ show (getResponseStatus resH)
     return $ Map.singleton status $ Map.singleton package mdiff
 
 -- | Get the filepath for the latest version of a package from
 -- Hackage, if it exists at all.
-getLatestVersion :: MonadIO m => PackageName -> m (Maybe (FilePath, Version))
-getLatestVersion name = liftIO $ do
+getLatestVersion :: PackageName -> RIO App (Maybe (FilePath, Version))
+getLatestVersion name = do
     stack <- getAppUserDataDirectory "stack"
     let indexTar = stack </> "indices" </> "Hackage" </> "00-index.tar"
     mversion <- runConduitRes
@@ -225,10 +230,10 @@
             let p = Package "" name $ toTextVersion version
             fp <- getHackageFile p
             req <- getUrlHackage p
-            runResourceT $ httpSink req $ \res ->
+            httpSink req $ \res ->
               if getResponseStatusCode res == 200
                 then do
-                  liftIO $ createDirectoryIfMissing True $ takeDirectory fp
+                  createDirectoryIfMissing True $ takeDirectory fp
                   sinkFileCautious fp
                   return $ Just (fp, toTextVersion version)
                 else error $ "Could not download from Hackage: " ++ show p
@@ -278,7 +283,7 @@
   logInfo $ display name <> "-" <> display version
 
 getHackageFile :: MonadIO m => Package -> m FilePath
-getHackageFile (Package _fp (PackageName a') (Version b')) = liftIO $ do
+getHackageFile (Package _fp (PackageName a') (Version b')) = do
     stack <- getAppUserDataDirectory "stack"
     return $ stack </> "indices" </> "Hackage" </> "packages" </> a </> b </>
                 concat [a, "-", b, ".tar.gz"]
@@ -338,7 +343,7 @@
         "Error opening tarball: " <>
         fromString fp <>
         ", " <>
-        displayShow e
+        display e
       return mempty
 
     addEntry header
