diff --git a/tuxbot/__run__.py b/tuxbot/__run__.py
index 0741abd..0a74120 100644
--- a/tuxbot/__run__.py
+++ b/tuxbot/__run__.py
@@ -47,7 +47,7 @@ def list_instances() -> NoReturn:
     console.print()
 
     columns = Columns(expand=True, padding=2, align="center")
-    for instance, details in app_config.instances.items():
+    for instance, details in app_config.Instances.items():
         active = details["active"]
         last_run = (
             humanize.naturaltime(
diff --git a/tuxbot/core/bot.py b/tuxbot/core/bot.py
index 596e42f..f97d6b4 100644
--- a/tuxbot/core/bot.py
+++ b/tuxbot/core/bot.py
@@ -15,8 +15,14 @@ from rich.traceback import install
 
 from tuxbot import version_info
 
-from .config import Config, ConfigFile, search_for
-from .data_manager import logs_data_path, data_path
+from .config import (
+    Config,
+    ConfigFile,
+    search_for,
+    AppConfig,
+    set_for_key,
+)
+from .data_manager import logs_data_path, data_path, config_dir
 
 from . import __version__, ExitCodes
 from . import exceptions
@@ -105,6 +111,15 @@ class Tux(commands.AutoShardedBot):
 
     async def on_ready(self):
         self.uptime = datetime.datetime.now()
+        app_config = ConfigFile(config_dir / "config.yaml", AppConfig).config
+        set_for_key(
+            app_config.Instances,
+            self.instance_name,
+            AppConfig.Instance,
+            active=True,
+            last_run=datetime.datetime.timestamp(self.uptime),
+        )
+
         self._progress.get("main").stop_task(
             self._progress.get("tasks")["connecting"]
         )
@@ -234,6 +249,14 @@ class Tux(commands.AutoShardedBot):
 
         Todo: add postgresql logout here
         """
+        app_config = ConfigFile(config_dir / "config.yaml", AppConfig).config
+        set_for_key(
+            app_config.Instances,
+            self.instance_name,
+            AppConfig.Instance,
+            active=False,
+        )
+
         for task in self._progress.get("tasks").keys():
             self._progress.get("main").log("Shutting down", task)
 
diff --git a/tuxbot/core/config.py b/tuxbot/core/config.py
index 81f260e..6d8a13e 100644
--- a/tuxbot/core/config.py
+++ b/tuxbot/core/config.py
@@ -9,7 +9,14 @@ from structured_config import (
 )
 
 
-__all__ = ["Config", "ConfigFile", "search_for", "set_for_key", "set_for_key"]
+__all__ = [
+    "Config",
+    "ConfigFile",
+    "AppConfig",
+    "search_for",
+    "set_for_key",
+    "set_for",
+]
 
 log = logging.getLogger("tuxbot.core.config")
 
@@ -59,7 +66,7 @@ class AppConfig(Structure):
         active: bool = BoolField(False)
         last_run: int = IntField(0)
 
-    instances: Dict[str, Instance] = {}
+    Instances: Dict[str, Instance] = {}
 
 
 # =============================================================================
diff --git a/tuxbot/setup.py b/tuxbot/setup.py
index 94cd312..09570b0 100644
--- a/tuxbot/setup.py
+++ b/tuxbot/setup.py
@@ -13,7 +13,7 @@ from rich.rule import Rule
 from rich.style import Style
 from rich.traceback import install
 
-from tuxbot.core.config import set_for
+from tuxbot.core.config import set_for, set_for_key
 from tuxbot.logging import formatter
 from tuxbot.core.data_manager import config_dir, app_dir, cogs_data_path
 from tuxbot.core import config
@@ -29,12 +29,14 @@ except PermissionError:
     )
     sys.exit(1)
 
-app_config = config.ConfigFile(config_dir / "config.yaml", config.AppConfig)
+app_config = config.ConfigFile(
+    config_dir / "config.yaml", config.AppConfig
+).config
 
-if not app_config.config.instances:
+if not app_config.Instances:
     instances_list = []
 else:
-    instances_list = list(app_config.config.instances.keys())
+    instances_list = list(app_config.Instances.keys())
 
 
 def get_name() -> str:
@@ -339,11 +341,13 @@ def basic_setup() -> NoReturn:
             console.print("Abandon...")
             sys.exit(0)
 
-    instance = config.AppConfig.Instance()
-    instance.path = str(data_dir.resolve())
-    instance.active = False
-
-    app_config.config.instances[name] = instance
+    set_for_key(
+        app_config.Instances,
+        name,
+        config.AppConfig.Instance,
+        path=str(data_dir.resolve()),
+        active=False,
+    )
 
     console.print("\n" * 4)