diff --git a/bot/reviewbot/tools/clazy.py b/bot/reviewbot/tools/clazy.py
new file mode 100644
index 0000000000000000000000000000000000000000..a0d43c2fae9c8ab1fa018650b04635ae8b9387e0
--- /dev/null
+++ b/bot/reviewbot/tools/clazy.py
@@ -0,0 +1,140 @@
+from __future__ import unicode_literals
+
+import os
+import stat
+
+from reviewbot.tools import RepositoryTool
+from reviewbot.utils.filesystem import make_tempfile
+from reviewbot.utils.process import execute, is_exe_in_path
+
+
+class ClazyTool(RepositoryTool):
+    """Review Bot tool to run clazy-standalone."""
+
+    name = 'Clazy'
+    version = '1.0'
+    description = 'Checks code using clazy-standalone.'
+    timeout = 180
+    options = [
+        {
+            'name': 'compile_database',
+            'field_type': 'django.forms.CharField',
+            'default': 'compile_commands.json',
+            'field_options': {
+                'label': 'Filename',
+                'help_text': 'Required compilation database file.',
+                'required': True,
+            },
+        },
+        {
+            'name': 'checks',
+            'field_type': 'django.forms.CharField',
+            'default': 'level0',
+            'field_options': {
+                'label': 'Enabled checks',
+                'help_text': 'A comma-separated list of checks. See: '
+                             'https://github.com/KDE/clazy#list-of-checks',
+                'required': True,
+            },
+        },
+        {
+            'name': 'prepare',
+            'field_type': 'django.forms.CharField',
+            'default': '',
+            'field_options': {
+                'label': 'Shell commands to prepare workspace',
+                'help_text': 'Shell commands to prepare workspace like '
+                             'cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON',
+                'required': False,
+            },
+            'widget': {
+                'type': 'django.forms.Textarea',
+                'attrs': {
+                    'cols': 80,
+                    'rows': 10,
+                },
+            }
+        },
+    ]
+
+    def check_dependencies(self):
+        """Verify the tool's dependencies are installed.
+
+        Returns:
+            bool:
+            True if all dependencies for the tool are satisfied. If this
+            returns False, the worker will not listen for this Tool's queue,
+            and a warning will be logged.
+        """
+        return is_exe_in_path('clazy-standalone') and is_exe_in_path('sh')
+
+    def handle_files(self, files, settings):
+        """Perform a review of all files.
+
+        Args:
+            files (list of reviewbot.processing.review.File):
+                The files to process.
+
+            settings (dict):
+                Tool-specific settings.
+        """
+        prepare = settings.get('prepare')
+        if prepare:
+            script = make_tempfile(prepare)
+            os.chmod(script, stat.S_IXUSR | stat.S_IRUSR)
+            execute(['sh', '-c', script])
+
+        header = []
+        for f in files:
+            h = self.handle_file(f, settings)
+            if h is not None:
+                header += h
+
+        header = set(header)
+        for f in files:
+            for h in header:
+                if h[0].endswith(f.dest_file):
+                    f.comment(h[1], h[2])
+
+    def handle_file(self, f, settings):
+        """Perform a review of a single file.
+
+        Args:
+            f (reviewbot.processing.review.File):
+                The file to process.
+
+            settings (dict):
+                Tool-specific settings.
+        """
+        filename = f.dest_file.lower()
+
+        if not filename.endswith(('.c', '.cpp', '.cxx', '.m', '.mm')):
+            # Ignore the file.
+            return
+
+        path = f.get_patched_file_path()
+
+        if not path:
+            return
+
+        checks = '--checks=%s' % settings['checks']
+        compileDb = '-p=%s' % settings['compile_database']
+        command = ['clazy-standalone', checks, compileDb, path]
+
+        output = execute(command,
+                         env={'CLAZY_NO_WERROR': '1'}, split_lines=True)
+        cwd = os.getcwd()
+
+        header = []
+        for line in output:
+            if line.startswith(cwd):
+                line = line.split(':', 4)
+                file = line[0]
+                msg = line[4].strip()
+                num = int(line[1])
+                if file.endswith(path):
+                    f.comment(msg, num)
+                else:
+                    header.append((file, msg, num))
+
+        return header
diff --git a/bot/setup.py b/bot/setup.py
index eee8b5ba93aeaee029449cc910490e0fc1d691a2..48718b591f4cb70c10b19f1d59070f0ce472d60d 100755
--- a/bot/setup.py
+++ b/bot/setup.py
@@ -23,6 +23,7 @@ setup(
             'checkstyle = reviewbot.tools.checkstyle:CheckstyleTool',
             'clang = reviewbot.tools.clang:ClangTool',
             'clangtidy = reviewbot.tools.clangtidy:ClangTidyTool',
+            'clazy = reviewbot.tools.clazy:ClazyTool',
             'cppcheck = reviewbot.tools.cppcheck:CPPCheckTool',
             'cpplint = reviewbot.tools.cpplint:CPPLintTool',
             'flake8 = reviewbot.tools.flake8:Flake8Tool',
diff --git a/docs/reviewbot/tools/clazy.rst b/docs/reviewbot/tools/clazy.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2d0d58cddc46af2eddd0b2dd04e4ad30a30a8000
--- /dev/null
+++ b/docs/reviewbot/tools/clazy.rst
@@ -0,0 +1,39 @@
+.. _tool-clazy:
+
+=====
+Clazy
+=====
+
+`Clazy`_ will attempt to analyse your C, C++, or Objective
+C source code and then check for common programming errors.
+Clazy is a Qt oriented code checker based on clang framework.
+
+.. _Clazy: https://github.com/KDE/clazy
+
+
+Installation
+============
+
+This tool requires a modern version of the Clang_ compiler and `Clazy`_
+to be installed on the system running the Review Bot worker. This is available
+through most system package managers on Linux and via the XCode command line
+tools on Mac OS.
+
+.. _Clang: https://clang.llvm.org/
+
+
+Configuration
+=============
+
+This tool requires full repository access. Each repository you intend to use
+must be configured in the Review Bot worker config file.
+See :ref:`worker-configuration` for more details.
+
+A `Compilation database`_ is required for clazy-standalone. You can add custom
+commands to generate this file.
+
+If you use CMake you could use this snippet:
+
+cmake . -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_COMPILER=clang++
+
+.. _Compilation database: https://clang.llvm.org/docs/JSONCompilationDatabase.html
diff --git a/docs/reviewbot/tools/index.rst b/docs/reviewbot/tools/index.rst
index 8e0601afd3be78f62ac63f6d7e376a2cd63b6b29..453448b76f9788a04083cfbf22530f7174a2989b 100644
--- a/docs/reviewbot/tools/index.rst
+++ b/docs/reviewbot/tools/index.rst
@@ -11,6 +11,7 @@ Review Bot Tools
    checkstyle
    clang
    clang-tidy
+   clazy
    cppcheck
    cpplint
    flake8
