diff --git a/lib/Hikaru/Config.hs b/lib/Hikaru/Config.hs
index a26da531fdbcb9de960355108aff55e34ed877cd..78c655d26155ec888009d609a010979622f1adfc 100644
--- a/lib/Hikaru/Config.hs
+++ b/lib/Hikaru/Config.hs
@@ -26,6 +26,10 @@ module Hikaru.Config
   , configFromFile
   , configDefault
 
+  -- * Reading Config
+  , configGetMaybe
+  , configGetDefault
+
   -- * Secrets
   , generateSecret
   )
@@ -38,6 +42,7 @@ where
   import Data.ByteArray.Encoding
   import Data.String.Conversions
   import Data.Text hiding (map)
+  import Hikaru.Types
   import System.Environment
 
 
@@ -102,6 +107,20 @@ where
                           ]
 
 
+  -- |
+  -- Try to obtain value of a configuration key.
+  --
+  configGetMaybe :: (Param a) => Text -> Config -> Maybe a
+  configGetMaybe name cfg = fromParam =<< Map.lookup name cfg
+
+
+  -- |
+  -- Obtain value of a configuration key or the provided default.
+  --
+  configGetDefault :: (Param a) => Text -> a -> Config -> a
+  configGetDefault name value = fromMaybe value . configGetMaybe name
+
+
   -- |
   -- Generate a random base64-encoded secret of given length
   -- (in decoded bytes).