diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,25 @@
+The following license covers this documentation, and the source code, except
+where otherwise indicated.
+
+Copyright 2008, Michael Snoyman. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Network/HTTP/Wget.hs b/Network/HTTP/Wget.hs
new file mode 100644
--- /dev/null
+++ b/Network/HTTP/Wget.hs
@@ -0,0 +1,66 @@
+---------------------------------------------------------
+-- |
+-- Module        : Network.HTTP.Wget
+-- Copyright     : Michael Snoyman
+-- License       : BSD3
+--
+-- Maintainer    : Michael Snoyman <michael@snoyman.com>
+-- Stability     : Stable
+-- Portability   : portable
+--
+-- Provide a simple HTTP client interface by wrapping the wget command line tool.
+--
+---------------------------------------------------------
+module Network.HTTP.Wget
+    ( wget
+    ) where
+
+import System.Process
+import System.Exit
+import System.IO
+import Numeric (showHex)
+import Data.List (intercalate)
+
+-- | Get a response from the given URL with the given parameters.
+wget :: Monad m
+     => String -- ^ The URL.
+     -> [(String, String)] -- ^ Get parameters.
+     -> [(String, String)] -- ^ Post parameters. If empty, this will be a get request.
+     -> IO (m String) -- ^ The response body.
+wget url get post = do
+    let getSepChar :: Char
+        getSepChar = if '?' `elem` url then '&' else '?'
+        get' :: String
+        get' = if null get then "" else getSepChar : urlEncodePairs get
+        post' :: [String]
+        post' = if null post
+                    then []
+                    else ["--post-data", urlEncodePairs post]
+    (Nothing, Just hout, Just herr, phandle) <- createProcess $ (proc "wget"
+            ((url ++ get') : post' ++ ["-O", "-"])
+        ) { std_out = CreatePipe, std_err = CreatePipe }
+    exitCode <- waitForProcess phandle
+    case exitCode of
+        ExitSuccess -> hGetContents hout >>= return . return
+        _ -> hGetContents herr >>= return . fail
+
+urlEncodePairs :: [(String, String)] -> String
+urlEncodePairs = intercalate "&" . map urlEncodePair
+
+urlEncodePair :: (String, String) -> String
+urlEncodePair (x, y) = urlEncode x ++ '=' : urlEncode y
+
+urlEncode :: String -> String
+urlEncode = concatMap urlEncodeChar
+
+urlEncodeChar :: Char -> String
+urlEncodeChar x
+    | safeChar (fromEnum x) = return x
+    | otherwise = '%' : showHex (fromEnum x) ""
+
+safeChar :: Int -> Bool
+safeChar x
+    | x >= fromEnum 'a' && x <= fromEnum 'z' = True
+    | x >= fromEnum 'A' && x <= fromEnum 'Z' = True
+    | x >= fromEnum '0' && x <= fromEnum '9' = True
+    | otherwise = False
diff --git a/Setup.lhs b/Setup.lhs
new file mode 100644
--- /dev/null
+++ b/Setup.lhs
@@ -0,0 +1,7 @@
+#!/usr/bin/env runhaskell
+
+> module Main where
+> import Distribution.Simple
+
+> main :: IO ()
+> main = defaultMain
diff --git a/http-wget.cabal b/http-wget.cabal
new file mode 100644
--- /dev/null
+++ b/http-wget.cabal
@@ -0,0 +1,22 @@
+name:            http-wget
+version:         0.0.0
+license:         BSD3
+license-file:    LICENSE
+author:          Michael Snoyman <michael@snoyman.com>
+maintainer:      Michael Snoyman <michael@snoyman.com>
+synopsis:        Provide a simple HTTP client interface by wrapping the wget
+                 command line tool.
+description:     This provides the simplest interface I could imagine to
+                 making HTTP requests. It supports GET and POST parameters.
+                 Since it simply wraps the WGET program, there are no
+                 library dependencies, and it automatically gets HTTPS.
+category:        Network
+stability:       stable
+cabal-version:   >= 1.2
+build-type:      Simple
+homepage:        http://github.com/snoyberg/http-wget/tree/master
+
+library
+    build-depends:   base, process
+    exposed-modules: Network.HTTP.Wget
+    ghc-options:     -Wall
