diff --git a/nf_core/__main__.py b/nf_core/__main__.py
index 194b2030be..4e7b5dda87 100644
--- a/nf_core/__main__.py
+++ b/nf_core/__main__.py
@@ -9,6 +9,7 @@
 import rich.logging
 import rich.traceback
 import rich_click as click
+from trogon import tui
 
 from nf_core import __version__
 from nf_core.download import DownloadError
@@ -30,7 +31,7 @@
     "nf-core": [
         {
             "name": "Commands for users",
-            "commands": ["list", "launch", "create-params-file", "download", "licences"],
+            "commands": ["list", "launch", "create-params-file", "download", "licences", "tui"],
         },
         {
             "name": "Commands for developers",
@@ -110,7 +111,7 @@ def run_nf_core():
     # Launch the click cli
     nf_core_cli(auto_envvar_prefix="NFCORE")
 
-
+@tui()
 @click.group(context_settings=dict(help_option_names=["-h", "--help"]))
 @click.version_option(__version__)
 @click.option("-v", "--verbose", is_flag=True, default=False, help="Print verbose output to the console.")
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 6d890f0e1f..9fbb49c10c 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,13 +1,13 @@
+mypy
 myst_parser
 pytest-cov
 pytest-datafiles
 responses
+ruff
 Sphinx
 sphinx-rtd-theme
-mypy
-types-PyYAML
-types-requests
 types-jsonschema
 types-Markdown
+types-PyYAML
+types-requests
 types-setuptools
-ruff
diff --git a/requirements.txt b/requirements.txt
index add52f4bc6..526efb7306 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,10 +5,11 @@ jinja2
 jsonschema>=3.0
 markdown>=3.3
 packaging
+pdiff
 pre-commit
 prompt_toolkit>=3.0.3
-pytest>=7.0.0
 pytest-workflow>=1.6.0
+pytest>=7.0.0
 pyyaml
 questionary>=1.8.0
 refgenie
@@ -17,4 +18,4 @@ requests_cache
 rich-click>=1.6.1
 rich>=13.3.1
 tabulate
-pdiff
+trogon