diff --git a/hyfetch/main.py b/hyfetch/main.py
index 4bf443e3..3da21041 100755
--- a/hyfetch/main.py
+++ b/hyfetch/main.py
@@ -9,7 +9,7 @@ from itertools import permutations
 from math import ceil
 from typing import Iterable
 
-from . import termenv
+from . import termenv, neofetch_util
 from .color_scale import Scale
 from .color_util import printc, clear_screen
 from .constants import *
@@ -356,6 +356,7 @@ def run():
     parser.add_argument('-C', '--config-file', dest='config_file', default=CONFIG_PATH, help=f'Use another config file')
     parser.add_argument('-p', '--preset', help=f'Use preset', choices=PRESETS.keys())
     parser.add_argument('-m', '--mode', help=f'Color mode', choices=['8bit', 'rgb'])
+    parser.add_argument('-b', '--backend', help=f'Choose a *fetch backend', choices=['neofetch', 'fastfetch'])
     parser.add_argument('--c-scale', dest='scale', help=f'Lighten colors by a multiplier', type=float)
     parser.add_argument('--c-set-l', dest='light', help=f'Set lightness value of the colors', type=float)
     parser.add_argument('-V', '--version', dest='version', action='store_true', help=f'Check version')
@@ -405,6 +406,8 @@ def run():
         config.preset = args.preset
     if args.mode:
         config.mode = args.mode
+    if args.backend:
+        config.backend = args.backend
 
     # Override global color mode
     GLOBAL_CFG.color_mode = config.mode
@@ -423,7 +426,7 @@ def run():
 
     # Run
     try:
-        run_neofetch(preset, config.color_align)
+        neofetch_util.run(preset, config.color_align, config.backend)
     except Exception as e:
         print(f'Error: {e}')
         traceback.print_exc()
diff --git a/hyfetch/neofetch_util.py b/hyfetch/neofetch_util.py
index 38d82fbd..8d82edc6 100644
--- a/hyfetch/neofetch_util.py
+++ b/hyfetch/neofetch_util.py
@@ -248,6 +248,14 @@ def get_distro_name():
     return run_neofetch_cmd('ascii_distro_name', True)
 
 
+def run(preset: ColorProfile, alignment: ColorAlignment, backend: BackendLiteral):
+    print(backend)
+    if backend == "neofetch":
+        return run_neofetch(preset, alignment)
+    if backend == "fastfetch":
+        return run_fastfetch(preset, alignment)
+
+
 def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
     """
     Run neofetch with colors
@@ -271,6 +279,26 @@ def run_neofetch(preset: ColorProfile, alignment: ColorAlignment):
         run_neofetch_cmd(f'--ascii --source {path.absolute()} --ascii-colors')
 
 
+def run_fastfetch(preset: ColorProfile, alignment: ColorAlignment):
+    """
+    Run neofetch with colors
+
+    :param preset: Color palette
+    :param alignment: Color alignment settings
+    """
+    asc = get_distro_ascii()
+    asc = alignment.recolor_ascii(asc, preset)
+
+    # Write temp file
+    with TemporaryDirectory() as tmp_dir:
+        tmp_dir = Path(tmp_dir)
+        path = tmp_dir / 'ascii.txt'
+        path.write_text(asc)
+
+        # Call fastfetch with the temp file
+        subprocess.run(['fastfetch', '--raw', path.absolute()])
+
+
 def get_fore_back(distro: str | None = None) -> tuple[int, int] | None:
     """
     Get recommended foreground-background configuration for distro, or None if the distro ascii is