diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for shake-plus
 
+## v0.1.4.0
+
+* Re-export `Development.Shake.shakeArgs`.
+
 ## v0.1.3.0
 
 * Re-export `Development.Shake.Command` with lifted `command` and `command_`.
diff --git a/shake-plus.cabal b/shake-plus.cabal
--- a/shake-plus.cabal
+++ b/shake-plus.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 5a0c4a9bdf4cfc967d40628c1c7660a63bd9149b32c76a0d3483c098f5ecbc67
+-- hash: f8aa60abee5743af1df499ae49eb94d7e518fba2afaf23a3d6dee6dec83ccdc6
 
 name:           shake-plus
-version:        0.1.3.0
+version:        0.1.4.0
 synopsis:       Re-export of Shake using well-typed paths and ReaderT.
 description:    Re-export of Shake using well-typed paths and ReaderT. You can thread logging through your Shake Actions, and better keep track of source and output folders using the Within type.
 category:       development, shake
diff --git a/src/Development/Shake/Plus/Core.hs b/src/Development/Shake/Plus/Core.hs
--- a/src/Development/Shake/Plus/Core.hs
+++ b/src/Development/Shake/Plus/Core.hs
@@ -14,6 +14,7 @@
 , Development.Shake.Rules
 , Development.Shake.FilePattern
 , Development.Shake.shake
+, Development.Shake.shakeArgs
 , Development.Shake.shakeOptions
 ) where
 
diff --git a/src/Development/Shake/Plus/FileRules.hs b/src/Development/Shake/Plus/FileRules.hs
--- a/src/Development/Shake/Plus/FileRules.hs
+++ b/src/Development/Shake/Plus/FileRules.hs
@@ -5,6 +5,8 @@
 , wantP
 , needIn
 , wantIn
+, needInFP
+, wantInFP
 , needWithin
 , wantWithin
 , needWithin'
@@ -44,6 +46,14 @@
 -- | Lifted version of `Development.Shake.want` using well-typed `Path`s
 wantP :: (Partial, MonadRules m, Traversable t) => t (Path b File) -> m ()
 wantP = want . fmap toFilePath
+
+-- | Like `need`, but accepts `Path`s relative to the first argument.
+needInFP :: (Partial, MonadAction m, Traversable t) => Path b Dir -> t FilePattern -> m ()
+needInFP x = need . fmap (toFilePath x Development.Shake.FilePath.</>)
+
+-- | Like `want`, but accepts `Path`s relative to the first argument.
+wantInFP :: (Partial, MonadRules m, Traversable t) => Path b Dir -> t FilePattern -> m ()
+wantInFP x = want . fmap (toFilePath x Development.Shake.FilePath.</>)
 
 -- | Like `needP`, but accepts `Path`s relative to the first argument.
 needIn :: (Partial, MonadAction m, Traversable t) => Path b Dir -> t (Path Rel File) -> m ()
