diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # sak
 
+## 0.1.0.2
+
+  * Support higher compression levels for lz4
+
 ## 0.1.0.1
 
   * Fix bug with default bz2 settings
diff --git a/man/sak.1 b/man/sak.1
--- a/man/sak.1
+++ b/man/sak.1
@@ -52,7 +52,7 @@
 .IP \[bu] 2
 zstd (0-22)
 .IP \[bu] 2
-lz4 (n/a)
+lz4 (0-12)
 .IP \[bu] 2
 deflate (0-9)
 .SH SHELL COMPLETIONS
diff --git a/sak.cabal b/sak.cabal
--- a/sak.cabal
+++ b/sak.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               sak
-version:            0.1.0.1
+version:            0.1.0.2
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2020 Vanessa McHale
@@ -40,7 +40,7 @@
         zlib -any,
         zstd -any,
         lzma -any,
-        lz4-hs >=0.1.3.0,
+        lz4-hs >=0.1.4.0,
         optparse-applicative -any,
         filepath -any,
         bytestring -any
diff --git a/src/Compression.hs b/src/Compression.hs
--- a/src/Compression.hs
+++ b/src/Compression.hs
@@ -24,6 +24,7 @@
 
 data CompressionLevel = Best
                       | Fastest
+                      | Default
                       | Custom !Int
 
 data Compression = Lzma
@@ -107,22 +108,31 @@
 toInt Zstd Best       = Zstd.maxCLevel
 toInt Zstd Fastest    = 1
 toInt Zstd (Custom i) = levelGuard (1, Zstd.maxCLevel) i
+toInt Zstd Default    = 3
 toInt Lzip Best       = 9
 toInt Lzip Fastest    = 0
 toInt Lzip (Custom i) = levelGuard (0, 9) i
+toInt Lzip Default    = 6
 toInt Lzma Best       = 9
 toInt Lzma Fastest    = 0
 toInt Lzma (Custom i) = levelGuard (0, 9) i
+toInt Lzma Default    = 6
 toInt BZip Best       = 9
 toInt BZip Fastest    = 1
-toInt BZip (Custom 6) = 7
 toInt BZip (Custom i) = i
+toInt BZip Default    = 7
 toInt GZip Best       = 9
 toInt GZip Fastest    = 0
 toInt GZip (Custom i) = i
+toInt GZip Default    = 6
 toInt Z Best          = 9
 toInt Z Fastest       = 0
 toInt Z (Custom i)    = i
+toInt Z Default       = 6
+toInt Lz4 Best        = Lz4.lZ4HCClevelMax
+toInt Lz4 Fastest     = 0
+toInt Lz4 (Custom i)  = levelGuard (0, Lz4.lZ4HCClevelMax) i
+toInt Lz4 Default     = 0 -- 1?
 toInt None _          = error "Internal error."
 
 toCompressor :: Compression -> CompressionLevel -> Maybe Int -> BSL.ByteString -> BSL.ByteString
@@ -133,7 +143,7 @@
 toCompressor GZip lvl _         = GZip.compressWith (gzipCompression $ toInt GZip lvl)
 toCompressor Z    lvl _         = Zlib.compressWith (zlibCompression $ toInt Z lvl)
 toCompressor Zstd lvl _         = Zstd.compress (toInt Zstd lvl)
-toCompressor Lz4  _ _           = Lz4.compress -- TODO: compression levels upstream
+toCompressor Lz4  lvl _         = Lz4.compressSz (toInt Lz4 lvl)
 toCompressor None _ _           = id
 
 fileSize :: FilePath -> IO Integer
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -52,6 +52,7 @@
         compressCustom
     <|> compressBest
     <|> compressFast
+    <|> flag Default Default mempty
 
 compressCustom :: Parser CompressionLevel
 compressCustom =
@@ -59,7 +60,6 @@
         option auto
         (long "compression-level"
         <> short 'l'
-        <> value 6
         <> metavar "LVL"
         <> help "Compression level (usually 0-9)"
         <> completer (listCompleter (show <$> [(0::Int)..22]))
