diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -45,12 +45,21 @@
 Running `git-vogue plugins` will show you the libexec directory in which
 git-vogue will discover plugins.
 
-Should one or more plugins annoy you, you may disable it by setting it
+Should one or more plugins annoy you, you may disable it globally by setting it
 non-executable:
 
 ```bash
 chmod -x .cabal/libexec/git-vogue/git-vogue-stylish
 ```
+
+Alternatively you can disable plugins on a per-repository, per-user, or
+per-system basis by adding the file name to the `vogue.disable` key in your git
+configuration:
+
+````bash
+git config --local --add vogue.disable git-vogue-a-plugin
+git config --global --add vogue.disable git-vogue-another-plugin
+````
 
 A more sophisticated interface to plugin manipulation is planned.
 
diff --git a/git-vogue.cabal b/git-vogue.cabal
--- a/git-vogue.cabal
+++ b/git-vogue.cabal
@@ -1,5 +1,5 @@
 name:                git-vogue
-version:             0.1.0.3
+version:             0.1.0.4
 synopsis:            A framework for pre-commit checks.
 description:         Make your Haskell git repositories fashionable.
 homepage:            https://github.com/anchor/git-vogue
diff --git a/lib/Git/Vogue.hs b/lib/Git/Vogue.hs
--- a/lib/Git/Vogue.hs
+++ b/lib/Git/Vogue.hs
@@ -18,6 +18,7 @@
 module Git.Vogue where
 
 import           Control.Applicative
+import           Control.Exception
 import           Control.Monad
 import           Control.Monad.IO.Class
 import           Control.Monad.Reader
@@ -190,3 +191,12 @@
     liftIO .  putStr
          $  "git-vogue knows about the following plugins:\n\n"
          <> unlines (fmap (('\t':) . unPlugin) plugins)
+
+-- | Get list of disabled plugins from git configuration.
+disabledPlugins
+    :: (Monad m, Functor m, MonadIO m)
+    => m [String]
+disabledPlugins = lines <$> liftIO (readConfig `catch` none)
+  where
+    readConfig = readProcess "git" ["config", "--get-all", "vogue.disable"] ""
+    none (SomeException _) = return []
diff --git a/src/git-vogue.hs b/src/git-vogue.hs
--- a/src/git-vogue.hs
+++ b/src/git-vogue.hs
@@ -75,8 +75,12 @@
     let directories = splitOn ":" path <> [libexec]
 
     -- Find all executables in the directories in path.
-    (fmap . fmap) fromString
+    plugins <- (fmap . fmap) fromString
                   (traverse ls directories >>= filterM isExecutable . concat)
+
+    -- Filter out disabled plugins.
+    disabled_plugins <- disabledPlugins
+    return . filter (not . pluginIn disabled_plugins) $ plugins
   where
     ls :: FilePath -> IO [FilePath]
     ls p = do
@@ -87,6 +91,10 @@
 
     isExecutable :: FilePath -> IO Bool
     isExecutable = fmap executable . getPermissions
+
+    pluginIn :: [String] -> Plugin -> Bool
+    pluginIn disabled_plugins p =
+        (takeBaseName . unPlugin $ p) `elem` disabled_plugins
 
 -- | Parse the command line and run the command.
 main :: IO ()
