diff --git a/doc/source/conf.py b/doc/source/conf.py
index e605aee..6589893 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -56,16 +56,10 @@ extensions = [
     "sphinx.ext.viewcode",
     "sphinx_copybutton",
     "sphinx_design",
-    #  "sphinx_jinja2",
     "sphinx.ext.intersphinx",
     "myst_parser",
-    # "sphinx_mdinclude",
 ]
 
-# source_suffix = {
-#     ".rst": "restructuredtext",
-#     ".md": "markdown",
-# }
 
 templates_path = ["_templates", "_templates/autosummary"]
 exclude_patterns = []
@@ -113,59 +107,11 @@ toc_object_entries = True
 toc_object_entries_show_parents = "hide"
 
 
-# -- Old Theme ----------#
-# html_theme = "sphinx_book_theme"
-# html_static_path = ['_static']
-# html_css_files = ['custom_html.css']
-# toc_object_entries = True
-# toc_object_entries_show_parents = 'hide'
-# html_theme_options = { 
-#     "icon_links": [
-#         {
-#             "name": "General Index",
-#             "url": f"{html_baseurl}genindex",
-#             "icon": "fa-solid fa-book", # Nutzt die CSS-Klasse statt URL
-#             "type": "fontawesome",
-#             # "icon": 'https://raw.githubusercontent.com/fortawesome/Font-Awesome/6.x/svgs/solid/book.svg',
-#             # "type": "local",
-#             "attributes": {
-#                "target": "_self",
-#             },
-#         },
-#         {
-#             "name": "Module Index",
-#             "url": f"{html_baseurl}py-modindex",
-#             "icon": 'fa-solid fa-code',
-#             "type": "fontawesome",
-#             # "icon": 'https://raw.githubusercontent.com/fortawesome/Font-Awesome/6.x/svgs/solid/code.svg',
-#             # "type": "url",
-#             "attributes": {
-#                "target": "_self",
-#             },
-#         },
-#         {
-#             "name": "About",
-#             "url": f"{html_baseurl}about",
-#             "icon": "fa-solid fa-circle-info",
-#             "type": "fontawesome",
-#             # "icon": "https://raw.githubusercontent.com/fortawesome/Font-Awesome/6.x/svgs/solid/circle-info.svg",
-#             # "type": "url",
-#             "attributes": {
-#                 "target": "_self"
-#             },
-#         },
-#     ],
-#     "show_toc_level": 5, 
-#     "show_navbar_depth": 2, 
-#     "home_page_in_toc": True,
-# }
 
 # -- Options for Intersphinx
 intersphinx_mapping = {"python": (f"https://docs.python.org/{sys.version_info.major}.{sys.version_info.minor}",
+                        None)}
 
-
-
-                                  None)}
 # -- Options for ePub output -------------------------------------------------
 
 # render_cover("ftwpatch", version)
@@ -230,7 +176,7 @@ autodoc_typehints_description_target = "documented_params"
 autodoc_default_options = {
     "members": True,
     #    'special-members': False,
-    #    'private-members': False,
+    'private-members': "_ANSI,",
     #    'inherited-members': False,
     # 'undoc-members': True,
     "exclude-members": "__weakref__, __new__",
diff --git a/doc/source/devel/get_started_ftw_patch.rst b/doc/source/devel/get_started_ftw_patch.rst
index f534374..6d1adc2 100644
--- a/doc/source/devel/get_started_ftw_patch.rst
+++ b/doc/source/devel/get_started_ftw_patch.rst
@@ -35,7 +35,121 @@ This document provides a step-by-step introduction and executable documentation
         >>> env.input_readonly = True
         >>> env.do_not_clean = True
 
+.. SECTION - 
 
+ColorMixin Class
+----------------
+
+The :class:`~fitzzftw.patch.ftw_patch.ColorMixin` class provides standardized CLI color capabilities. 
+It encapsulates ANSI escape sequences and ensures a safe fallback 
+(plain text) for environments where colors are disabled or not supported.
+
+Global Controls
+~~~~~~~~~~~~~~~
+Unlike some other tools, :class:`~fitzzftw.patch.ftw_patch.ColorMixin` does **not** perform "magic" 
+terminal detection via :func:`~os.isatty`. This ensures consistent behavior 
+across different environments and pipes.
+
+The mixin features a global toggle to enable or disable colorized output 
+entirely. This is particularly useful when piping output to logs, files, 
+or other scripts that cannot process ANSI codes.
+
+.. code-block:: python
+
+    >>> from fitzzftw.patch.ftw_patch import ColorMixin
+
+By default, colors are enabled. To disable them globally:
+
+.. code-block:: python
+
+    >>> ColorMixin.use_colors = False  
+
+Basic Integration
+~~~~~~~~~~~~~~~~~
+
+To equip a class with color capabilities, inherit from :class:`~fitzzftw.patch.ftw_patch.ColorMixin`. 
+The :meth:`~fitzzftw.patch.ftw_patch.ColorMixin.colorize` method then becomes available to handle styled output.
+
+.. code-block:: python
+
+    >>> class PatchReporter(ColorMixin):
+    ...     def info(self, message: str):
+    ...         formatted = self.colorize(message, "cyan", bold=True)
+    ...         print(formatted)
+
+    >>> reporter = PatchReporter()
+    >>> reporter.info("Starting patch process...")
+    Starting patch process...
+
+Method Signature
+~~~~~~~~~~~~~~~~
+
+The :meth:`~fitzzftw.patch.ftw_patch.ColorMixin.colorize` method is the primary interface for styling text. 
+It accepts a ``color_key`` (red, green, or cyan) and an optional ``bold`` flag.
+
+Testing and Validation
+~~~~~~~~~~~~~~~~~~~~~~
+
+In automated testing environments like doctests, raw ANSI escape codes are 
+invisible and difficult to assert. To solve this, the internal :attr:`~fitzzftw.patch.ftw_patch.ColorMixin._ANSI` 
+mapping can be overridden with human-readable placeholders.
+
+.. code-block:: python
+
+    >>> # Mocking colors for readable test assertions
+    >>> ColorMixin._ANSI = {
+    ...     "red": "red>", "green": "grn>", "cyan": "cyn>", 
+    ...     "reset": "<reset", "bold": "bold|"
+    ... }
+    >>> m = ColorMixin()
+
+If :data:`~fitzzftw.patch.ftw_patch.ColorMixin.use_colors` is ``False``, the text remains plain:
+
+.. code-block:: python
+
+    >>> ColorMixin.use_colors = False
+    >>> m.colorize(text="Error", color_key="red", bold=True)
+    'Error'
+
+If :attr:`~fitzzftw.patch.ftw_patch.ColorMixin.use_colors` is set to ``True``, the mocked style is applied:
+
+.. code-block:: python
+
+    >>> ColorMixin.use_colors = True
+    >>> m.colorize("Error", "red", True)
+    'bold|red>Error<reset'
+
+Diagnostic Tool: color_terminal_check
+-------------------------------------
+
+Beyond the mixin, the module provides a diagnostic function to verify 
+terminal compatibility. This function prints a visual test pattern 
+to the console.
+
+Standalone Usage:
+~~~~~~~~~~~~~~~~~
+
+If the package is installed, this diagnostic can be invoked directly 
+from the command line:
+
+.. code-block:: bash
+
+    $ ftw-terminal-color-check
+
+Programmatic Usage:
+~~~~~~~~~~~~~~~~~~~
+
+.. code-block:: python
+
+    >>> from fitzzftw.patch.ftw_patch import color_terminal_check
+    >>> color_terminal_check()
+    =======================================
+    ===== Visual Terminal Color Check =====
+    Enabled : grn>GRN<reset|bold|grn>GRN-B<reset|red>RED<reset|bold|red>RED-B<reset|cyn>CYN<reset|bold|cyn>CYN-B<reset
+    Disabled: GRN|GRN-B|RED|RED-B|CYN|CYN-B
+    =======================================
+
+.. !SECTION
 
 Class PatchLine 
 ----------------
@@ -1150,8 +1264,6 @@ Example 2: Using the 'time' keyword for a quick timestamp
 
 
 
-
-
 ---
 
 
diff --git a/pyproject.toml b/pyproject.toml
index 5a8f98a..b84cd25 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -46,6 +46,7 @@ Issues = "https://github.com/fitzz-ftw/ftw-patch/issues"
 
 [project.scripts]
 ftwpatch = "fitzzftw.patch.ftw_patch:prog_ftw_patch"
+ftw-terminal-color-check = "fitzzftw.patch.ftw_patch:color_terminal_check"
 
 
 [project.optional-dependencies]
diff --git a/src/fitzzftw/patch/ftw_patch.py b/src/fitzzftw/patch/ftw_patch.py
index 24ee286..bde4b74 100644
--- a/src/fitzzftw/patch/ftw_patch.py
+++ b/src/fitzzftw/patch/ftw_patch.py
@@ -36,7 +36,7 @@ from shutil import copy2, move
 from tempfile import TemporaryDirectory
 from tomllib import TOMLDecodeError
 from tomllib import load as tomlload
-from typing import ClassVar, Generator, Iterable
+from typing import ClassVar, Generator, Iterable, Literal
 
 from platformdirs import user_config_path
 
@@ -97,6 +97,57 @@ class PatchParseError(FtwPatchError):
         return f"{self.__class__.__name__}({str(self)!r})"
         # return f"{self.__class__.__name__}(message={self.args[0]!r})"
 
+#SECTION - MixinClasses
+
+#CLASS - ColorMixin
+class ColorMixin:
+    """
+    Provides colorization capabilities for CLI output.
+
+    The mixin provides a `colorize` method to encapsulate strings with ANSI
+    color codes and bold styling.
+    """
+
+    # ANSI Terminal Codes
+    _ANSI:ClassVar[dict[str,str]] = {
+        "red": "\033[31m",    # Red
+        "green": "\033[32m",  # Green
+        "cyan": "\033[36m",   # Normal Cyan
+        "reset": "\033[0m",   # Reset
+        "bold": "\033[1m",    # Bold
+    }
+    """Internal mapping of semantic names to ANSI escape sequences. 
+    Can be overridden for testing purposes. 
+    """
+
+    use_colors: ClassVar[bool] = True
+    """Global toggle to enable or disable colorized output. 
+    Defaults to True; should be set explicitly based on CLI flags.
+    """
+
+    def colorize(self, text: str, color_key: Literal["red","green","cyan"], bold:bool=False) -> str:
+        """
+        Colorizes the text using ANSI escape sequences.
+
+        :param text: The string to colorize.
+        :param color_key: The color to use ('red', 'green', 'cyan').
+        :param bold: Whether to make the output bold.
+        :returns: Colorized string or plain text if colors are disabled.
+        """
+        if not self.use_colors:
+            return text
+
+        prefix = self._ANSI.get("bold", "\033[1m") if bold else ""
+        prefix += self._ANSI.get(color_key, "")
+        suffix = self._ANSI.get("reset", "\033[0m")
+
+        return f"{prefix}{text}{suffix}"
+
+#!CLASS
+
+#!SECTION
+
+
 
 # CLASS - PatchLine
 class PatchLine:
@@ -1231,10 +1282,6 @@ class PatchParser:
 
 # SECTION -  --- FtwPatch (Main Application) ---
 
-# Constant for the /dev/null path, which is returned by _clean_patch_path with strip=0.
-# This path must be independent of the operating system.
-# DEV_NULL_PATH = Path(os.devnull)
-
 
 # CLASS - FtwPatch
 class FtwPatch:
@@ -1348,7 +1395,7 @@ class FtwPatch:
         """
         if getattr(self, '_patch_files', None) is None:
             self._parse()
-        return self._patch_files
+        return self._patch_files # pyright: ignore[reportReturnType]
 
     @property
     def verbose(self) -> int:
@@ -1383,14 +1430,14 @@ class FtwPatch:
         with self._get_patch_stream() as stream:
             self._patch_files = list(parser.iter_files(stream))
 
-    def run(self) -> int:
+    def run(self) -> int|None:
         """
         Execute the patching process and handle high-level errors.
 
         :returns: Exit code (0 for success, 1 or 2 for errors).
         """
         try:
-            return self.apply()
+            return self.apply(Namespace())
         except FtwPatchError as e:
             print(f"\nPatch failed: {e}")
             return 1
@@ -1439,7 +1486,7 @@ class FtwPatch:
 
                 # SCHRITT 3: All-or-Nothing Commit
                 if self.dry_run:
-                    return
+                    return 
                 self._commit_changes(staged_results, options)
 
             except FtwPatchError:
@@ -1539,7 +1586,7 @@ def get_backup_extension(ext: str) -> str:
     
     return f".{ext}"
 
-def get_merged_config(app_name: str = "ftw", manual_user_cfg: str = None) -> dict:
+def get_merged_config(app_name: str = "ftw", manual_user_cfg: str = "") -> dict:
     """
     Merge configuration from hierarchical sources into a single dictionary.
     
@@ -1789,15 +1836,16 @@ def prog_ftw_patch() -> int:
         args.backup_ext = get_backup_extension(args.backup_ext)
 
         # The 'dry_run' argument must be correctly extracted from args
-        dry_run = getattr(args, "dry_run", False)
+        # dry_run = getattr(args, "dry_run", False)
 
         # The FtwPatch class encapsulates the entire logic
         patcher = FtwPatch(args=args)
 
         # apply_patch() executes the entire patch logic
-        exit_code = patcher.apply_patch(dry_run=dry_run)
-
-        return exit_code
+        # exit_code = patcher.apply_patch(dry_run=dry_run)
+        # exit_code = patcher.apply(Namespace(dry_run=dry_run))
+        exit_code = patcher.apply(args)
+        return exit_code if exit_code is not None else 0
 
     except (ArgumentError, TOMLDecodeError) as e:
         print(f"Initialization error: {e}", file=sys.stderr)
@@ -1819,6 +1867,49 @@ def prog_ftw_patch() -> int:
         return 1
 
 
+def color_terminal_check()->None:
+    """
+    Performs a visual diagnostic of ANSI color support in the current terminal.
+
+    This function prints a structured test pattern showcasing 'green', 'red',
+    and 'cyan' in both standard and bold variations. It then repeats the
+    pattern with colors disabled to verify the fallback mechanism.
+
+    **Usage via CLI:**
+
+    .. code-block:: bash
+
+        $ ftw-terminal-color
+
+    **Visual Output:**
+    - A header 'Visual Terminal Color Check' centered in a 39-character block.
+    - An 'Enabled' row showing colorized and bold tags.
+    - A 'Disabled' row showing plain text tags.
+    """
+    print("=" * 39)
+    print(" Visual Terminal Color Check ".center(39, "="))
+    colmix = ColorMixin()
+
+    # Testreihe 1: Colors ON
+    print("Enabled :", end=" ")
+    print(colmix.colorize("GRN", "green"), end="|")
+    print(colmix.colorize("GRN-B", "green", True), end="|")
+    print(colmix.colorize("RED", "red"), end="|")
+    print(colmix.colorize("RED-B", "red", True), end="|")
+    print(colmix.colorize("CYN", "cyan"), end="|")
+    print(colmix.colorize("CYN-B", "cyan", True))
+
+    # Testreihe 2: Colors OFF
+    colmix.use_colors = False # pyright: ignore[reportAttributeAccessIssue]
+    print("Disabled:", end=" ")
+    print(colmix.colorize("GRN", "green"), end="|")
+    print(colmix.colorize("GRN-B", "green", True), end="|")
+    print(colmix.colorize("RED", "red"), end="|")
+    print(colmix.colorize("RED-B", "red", True), end="|")
+    print(colmix.colorize("CYN", "cyan"), end="|")
+    print(colmix.colorize("CYN-B", "cyan", True))
+    print("=" * 39)
+
 if __name__ == "__main__":  # pragma: no cover
     from doctest import testfile, FAIL_FAST  # noqa: I001
     from pathlib import Path
@@ -1829,7 +1920,7 @@ if __name__ == "__main__":  # pragma: no cover
     print(project_root)
     sys.path.insert(0, str(project_root))
     be_verbose = False
-    be_verbose = True
+    # be_verbose = True
     option_flags = 0
     option_flags = FAIL_FAST
     testfilesbasedir = Path("../../../doc/source/devel")
@@ -1858,6 +1949,10 @@ if __name__ == "__main__":  # pragma: no cover
     # test_sum += doctestresult.failed
 
     if test_failed == 0:
-        print(f"DocTests passed without errors, {test_sum} tests.")
+        print(f"\nDocTests passed without errors, {test_sum} tests.")
     else:
-        print(f"DocTests failed: {test_failed} tests.")
+        print(f"\nDocTests failed: {test_failed} tests.")
+
+    color_terminal_check()
+
+
diff --git a/tests/test_ftw_functions.py b/tests/test_ftw_functions.py
index 406ed38..58e7784 100644
--- a/tests/test_ftw_functions.py
+++ b/tests/test_ftw_functions.py
@@ -67,11 +67,12 @@ class TestMainEntry:
         
         # Mock FtwPatch logic
         mock_patcher = mocker.patch("fitzzftw.patch.ftw_patch.FtwPatch")
-        mock_patcher.return_value.apply_patch.return_value = 0
+        mock_patcher.return_value.apply.return_value = 0
         
         exit_code = prog_ftw_patch()
         assert exit_code == 0
-        mock_patcher.return_value.apply_patch.assert_called_once_with(dry_run=False)
+        # mock_patcher.return_value.apply.assert_called_once_with(dry_run=False)
+        mock_patcher.return_value.apply.assert_called_once_with(mock_args)
 
     def test_prog_ftw_patch_ftw_error(self, mocker, capsys):
         """Tests the handling of a known FtwPatchError (Returns 1)."""
