Simple & Friendly

Klaro is simple, unobtrusive and optimized for mobile as well as desktop browsers. It tries to stay out of the way while helping you to be fully transparent and compliant.


Klaro is licensed under a permissive BSD-3 license, which means that you can use it freely for commercial and non-commercial purposes. No hidden fees or restrictions.

Easy to Customize

Klaro can manage both inline and external scripts as well as static tracking elements like images or stylesheet links. New apps can be added with just a few lines of code.

Privacy by design & default

Klaro supports implicit and explicit (our favorite!) modes of consent and can make sure that no third-party apps are loaded without the consent of the user.

Mobile-friendly and compatible with more than 99.9 % of browsers

Klaro works with all major modern browsers and most legacy browsers (including IE8-11) and is optimized for both desktop and mobile viewing.

Lightweight & fast

Klaro.js is less than 40 kB of Javascript (minified + gzipped) and is lightning-fast so that your users won't notice any difference when using it. You can embed it via our own CDN or self-host it on your server.


Klaro has full support for internationalization and makes it easy to add or modify translations with just a few lines of code. Show consent manager in

Hundreds of organizations already use Klaro to protect their users' privacy:

Brockhaus AG, Lorch, RSA GmbH, Rohde Technics, VR Zahlungssysteme, VKA, Paper24, Cemecon, Dillinger, ...

To start using Klaro, you have two options: Install and configure the open-source version, or sign up for one of our paid subscriptions, which offer advanced server-side functionality, integration consulting*, priority support and continuous monitoring. Regardless what you choose, we will help you to make Klaro work for you!

*Pro & Ultimate plans only

Write the config file

First, you need to tell Klaro about the third-party apps and trackers on your site. To do this you write a simple Javascript config. The easiest way to get started is by looking at our documentation, which contains an annotated config file you can modify. No rocket science involved, promised. If you need further help, don't hesitate to ask our friendly Github community.

window.klaroConfig = {
    privacyPolicy: '/privacy.html',
    apps : [
            name : 'google-analytics',
            default: true,
            title : 'Google Analytics',
            purposes : ['statistics'],
            cookies : [/^ga/i],
            callback : function(consent, app){
              // this is an example callback function...
        // ...

Modify your third-party scripts

To make sure that no tracking scripts and third-party apps are loaded without consent, you need to modify your HTML code a tiny bit: For inline scripts, replace the value of the type attribute with text/plain (this keeps the browser from executing the script) and add a data attribute with the original type, e.g. data-type="application/javascript". Also add a data-name attribute that matches the name of the given app in your config, e.g. data-name="googleAnalytics". More detailed information about this is available in our documentation.

# Inline scripts: 
<script type="text/plain"

# External scripts and resources (img, link, ...): 
<script type="text/plain"

Load the config and the script

Finally, include both the config script as well as the Klaro code on your page. You can defer the loading of the scripts if you like, just make sure the config is initialized when Klaro loads. You can have a look at our simple example page to get an idea of how to do this. If you want to host Klaro yourself, you can download it here.

<script defer type="application/javascript"
<script defer 

More questions?

Do you want to learn more about Klaro? You can check out our documentation, visit our Github page or get in touch with us*. By the way, Klaro is pronounced [klɛro] and is a colloquial German word that means "alright" or "got it".

*Please note: We do not provide e-mail based support for the open-source version, please post any issues on Github where our friendly community can help you.