diff --git a/sdcard/rootfs/root/pwnagotchi/config.yml b/sdcard/rootfs/root/pwnagotchi/config.yml
index 5d786c5..ee91c79 100644
--- a/sdcard/rootfs/root/pwnagotchi/config.yml
+++ b/sdcard/rootfs/root/pwnagotchi/config.yml
@@ -6,8 +6,21 @@ main:
     custom_plugins:
     # which plugins to load and enable
     plugins:
-        - gps
-        - twitter
+      gps:
+        enabled: false
+      twitter:
+        enabled: false
+        consumer_key: aaa
+        consumer_secret: aaa
+        access_token_key: aaa
+        access_token_secret: aaa
+      onlinehashcrack:
+        enabled: false
+        email: ~
+      wpa-sec:
+        enabled: false
+        api_key: ~
+
     # monitor interface to use
     iface: mon0
     # command to run to bring the mon interface up in case it's not up already
@@ -114,13 +127,6 @@ ui:
             address: '10.0.0.2'
             port: 8080
 
-# twitter bot data
-twitter:
-    enabled: false
-    consumer_key: aaa
-    consumer_secret: aaa
-    access_token_key: aaa
-    access_token_secret: aaa
 
 # bettercap rest api configuration
 bettercap:
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
index b6f33f3..38d29e7 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/__init__.py
@@ -43,12 +43,18 @@ def load_from_path(path, enabled=()):
 
 
 def load(config):
-    enabled = config['main']['plugins']
+    enabled = [name for name, options in config['main']['plugins'].items() if 'enabled' in options and options['enabled']]
     custom_path = config['main']['custom_plugins'] if 'custom_plugins' in config['main'] else None
     # load default plugins
-    load_from_path(default_path, enabled=enabled)
+    loaded = load_from_path(default_path, enabled=enabled)
+    # set the options
+    for name, plugin in loaded.items():
+        plugin.__dict__['OPTIONS'] = config['main']['plugins'][name]
     # load custom ones
     if custom_path is not None:
-        load_from_path(custom_path, enabled=enabled)
+        loaded = load_from_path(custom_path, enabled=enabled)
+        # set the options
+        for name, plugin in loaded.items():
+            plugin.__dict__['OPTIONS'] = config['main']['plugins'][name]
 
     on('loaded')
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/example.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/example.py
index b425d6e..dfca16a 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/example.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/example.py
@@ -11,6 +11,9 @@ from pwnagotchi.ui.view import BLACK
 import pwnagotchi.ui.fonts as fonts
 
 
+# Will be set with the options in config.yml config['main']['plugins'][__name__]
+OPTIONS = dict()
+
 # called when the plugin is loaded
 def on_loaded():
     logging.warning("WARNING: plugin %s should be disabled!" % __name__)
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/onlinehashcrack.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/onlinehashcrack.py
index 39f73dd..249ea19 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/onlinehashcrack.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/onlinehashcrack.py
@@ -9,8 +9,8 @@ import logging
 import requests
 
 READY = False
-EMAIL = None
 ALREADY_UPLOADED = None
+OPTIONS = dict()
 
 
 def on_loaded():
@@ -21,8 +21,8 @@ def on_loaded():
     global EMAIL
     global ALREADY_UPLOADED
 
-    if not EMAIL:
-        logging.error("OHC: EMAIL isn't set. Can't upload to onlinehashcrack.com")
+    if not 'email' in OPTIONS or ('email' in OPTIONS and OPTIONS['email'] is None):
+        logging.error("OHC: Email isn't set. Can't upload to onlinehashcrack.com")
         return
 
     try:
@@ -40,7 +40,7 @@ def _upload_to_ohc(path, timeout=30):
     Uploads the file to onlinehashcrack.com
     """
     with open(path, 'rb') as file_to_upload:
-        data = {'email': EMAIL}
+        data = {'email': OPTIONS['email']}
         payload = {'file': file_to_upload}
 
         try:
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/twitter.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/twitter.py
index 03aa251..560903a 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/twitter.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/twitter.py
@@ -7,6 +7,7 @@ __description__ = 'This plugin creates tweets about the recent activity of pwnag
 import logging
 from pwnagotchi.voice import Voice
 
+OPTIONS = dict()
 
 def on_loaded():
     logging.info("twitter plugin loaded.")
@@ -14,7 +15,7 @@ def on_loaded():
 
 # called in manual mode when there's internet connectivity
 def on_internet_available(ui, config, log):
-    if config['twitter']['enabled'] and log.is_new() and log.handshakes > 0:
+    if log.is_new() and log.handshakes > 0:
         try:
             import tweepy
         except ImportError:
@@ -32,8 +33,8 @@ def on_internet_available(ui, config, log):
         ui.update(force=True)
 
         try:
-            auth = tweepy.OAuthHandler(config['twitter']['consumer_key'], config['twitter']['consumer_secret'])
-            auth.set_access_token(config['twitter']['access_token_key'], config['twitter']['access_token_secret'])
+            auth = tweepy.OAuthHandler(OPTIONS['consumer_key'], OPTIONS['consumer_secret'])
+            auth.set_access_token(OPTIONS['access_token_key'], OPTIONS['access_token_secret'])
             api = tweepy.API(auth)
 
             tweet = Voice(lang=config['main']['lang']).on_log_tweet(log)
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/wpa-sec.py b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/wpa-sec.py
index b4ee86c..68e4171 100644
--- a/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/wpa-sec.py
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/pwnagotchi/plugins/default/wpa-sec.py
@@ -9,7 +9,6 @@ import logging
 import requests
 
 READY = False
-API_KEY = None
 ALREADY_UPLOADED = None
 
 
@@ -21,7 +20,7 @@ def on_loaded():
     global API_KEY
     global ALREADY_UPLOADED
 
-    if not API_KEY:
+    if not 'api_key' in OPTIONS or ('api_key' in OPTIONS and OPTIONS['api_key'] is None):
         logging.error("WPA_SEC: API-KEY isn't set. Can't upload to wpa-sec.stanev.org")
         return
 
@@ -40,7 +39,7 @@ def _upload_to_wpasec(path, timeout=30):
     Uploads the file to wpa-sec.stanev.org
     """
     with open(path, 'rb') as file_to_upload:
-        headers = {'key': API_KEY}
+        headers = {'key': OPTIONS['api_key']}
         payload = {'file': file_to_upload}
 
         try: