diff --git a/src/entryPoints/communityConsole/contentScripts/main.ts b/src/entryPoints/communityConsole/contentScripts/main.ts
index 1cc7e21..4812d53 100644
--- a/src/entryPoints/communityConsole/contentScripts/main.ts
+++ b/src/entryPoints/communityConsole/contentScripts/main.ts
@@ -3,6 +3,7 @@
 
 import DependenciesProviderSingleton, {
   AutoRefreshDependency,
+  ExtraInfoDependency,
   OptionsProviderDependency,
   WorkflowsImportDependency,
 } from '../../../common/architecture/dependenciesProvider/DependenciesProvider';
@@ -35,6 +36,15 @@
 import WorkflowsImportCRTagsHandler from '../../../features/workflows/presentation/nodeWatcherHandlers/crTags.handler';
 import Workflows from '../../../features/workflows/core/communityConsole/workflows';
 import WorkflowsImportStylesheetScript from '../../../features/workflows/presentation/scripts/importStylesheet';
+import CCExtraInfoProfileAbuseChipsHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/profile/ccExtraInfoProfileAbuseChips.handler';
+import CCExtraInfoProfilePerForumStatsHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/profile/ccExtraInfoProfilePerForumStats.handler';
+import CCExtraInfoThreadCommentHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/thread/ccExtraInfoThreadComment.handler';
+import CCExtraInfoThreadListHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/threadList/ccExtraInfoThreadList.handler';
+import CCExtraInfoThreadListToolbeltHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/threadList/ccExtraInfoThreadListToolbelt.handler';
+import CCExtraInfoThreadQuestionHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/thread/ccExtraInfoThreadQuestion.handler';
+import CCExtraInfoThreadReplyHandler from '../../../features/extraInfo/presentation/nodeWatcherHandlers/thread/ccExtraInfoThreadReply.handler';
+import CCExtraInfoInjectScript from '../../../features/extraInfo/presentation/scripts/ccExtraInfoInject.script';
+import CCExtraInfoStylesScript from '../../../features/extraInfo/presentation/scripts/ccExtraInfoStyles.script';
 
 const scriptRunner = createScriptRunner();
 scriptRunner.run();
@@ -42,6 +52,7 @@
 function createScriptRunner() {
   const dependenciesProvider = DependenciesProviderSingleton.getInstance();
   const autoRefresh = dependenciesProvider.getDependency(AutoRefreshDependency);
+  const extraInfo = dependenciesProvider.getDependency(ExtraInfoDependency);
   const optionsProvider = dependenciesProvider.getDependency(
     OptionsProviderDependency,
   );
@@ -85,6 +96,34 @@
               new CCDarkThemeUnifiedProfilesIframeHandler(optionsProvider),
             ],
             [
+              'ccExtraInfoProfile',
+              new CCExtraInfoProfileAbuseChipsHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoProfilePerForumStats',
+              new CCExtraInfoProfilePerForumStatsHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoThreadComment',
+              new CCExtraInfoThreadCommentHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoThreadList',
+              new CCExtraInfoThreadListHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoThreadListToolbelt',
+              new CCExtraInfoThreadListToolbeltHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoThreadQuestion',
+              new CCExtraInfoThreadQuestionHandler(extraInfo),
+            ],
+            [
+              'ccExtraInfoThreadReply',
+              new CCExtraInfoThreadReplyHandler(extraInfo),
+            ],
+            [
               'ccInfiniteScrollSetUp',
               new CCInfiniteScrollSetUpHandler(ccInfiniteScroll),
             ],
@@ -109,6 +148,8 @@
 
         // Individual feature scripts
         new AutoRefreshStylesScript(),
+        new CCExtraInfoInjectScript(),
+        new CCExtraInfoStylesScript(),
         new WorkflowsImportStylesheetScript(),
 
         // Non-DI scripts (legacy, should be migrated to use a DI approach)
diff --git a/src/entryPoints/communityConsole/contentScripts/start.ts b/src/entryPoints/communityConsole/contentScripts/start.ts
index 9ffdd95..4cbfd9d 100644
--- a/src/entryPoints/communityConsole/contentScripts/start.ts
+++ b/src/entryPoints/communityConsole/contentScripts/start.ts
@@ -3,6 +3,7 @@
 
 import DependenciesProviderSingleton, {
   AutoRefreshDependency,
+  ExtraInfoDependency,
   OptionsProviderDependency,
   StartupDataStorageDependency,
   WorkflowsImportDependency,
@@ -24,6 +25,7 @@
 import StandaloneScripts from '../../../scripts/Scripts';
 import LoadDraftsSetupScript from '../../../features/loadDrafts/presentation/scripts/setup.script';
 import WorkflowsImportSetUpScript from '../../../features/workflows/presentation/scripts/importSetUp.script';
+import CCExtraInfoSetUpScript from '../../../features/extraInfo/presentation/scripts/ccExtraInfoSetUp.script';
 
 const scriptRunner = createScriptRunner();
 scriptRunner.run();
@@ -31,6 +33,7 @@
 function createScriptRunner() {
   const dependenciesProvider = DependenciesProviderSingleton.getInstance();
   const autoRefresh = dependenciesProvider.getDependency(AutoRefreshDependency);
+  const extraInfo = dependenciesProvider.getDependency(ExtraInfoDependency);
   const optionsProvider = dependenciesProvider.getDependency(
     OptionsProviderDependency,
   );
@@ -54,6 +57,7 @@
         new AutoRefreshSetUpScript(autoRefresh),
         new CCDarkThemeInjectAutoDarkTheme(),
         new CCDarkThemeInjectForcedDarkTheme(),
+        new CCExtraInfoSetUpScript(extraInfo),
         new InteropThreadPageSetupScript(),
         new LoadDraftsSetupScript(optionsProvider, startupDataStorage),
         new WorkflowsImportSetUpScript(workflowsImport),
