diff --git a/bob/devtools/scripts/settings.py b/bob/devtools/scripts/settings.py
index 4ddb3c4973b5aa3219dd362c09394279d92bf458..feeb4113e06b3f730f45b55eba08fe7e298c138d 100644
--- a/bob/devtools/scripts/settings.py
+++ b/bob/devtools/scripts/settings.py
@@ -20,7 +20,7 @@ logger = get_logger(__name__)
 def _change_settings(project, info, dry_run):
     """Updates the project settings using ``info``"""
 
-    name = f"{project.namespace['name']}/{project.name}"
+    name = f"{project.namespace['full_path']}/{project.name}"
     echo_normal(f"Changing {name}...")
 
     if info.get("archive") is not None:
@@ -76,6 +76,12 @@ Examples:
     type=str,
     help="Set this to update the project description",
 )
+@click.option(
+    "-g",
+    "--group/--no-group",
+    default=False,
+    help="If set, consider the the provided name as a group name",
+)
 @click.option(
     "-A",
     "--archive/--unarchive",
@@ -92,7 +98,7 @@ Examples:
 )
 @verbosity_option()
 @bdt.raise_on_error
-def settings(projects, avatar, description, archive, dry_run):
+def settings(projects, avatar, description, group, archive, dry_run):
     """Updates project settings"""
 
     # if we are in a dry-run mode, let's let it be known
@@ -105,12 +111,12 @@ def settings(projects, avatar, description, archive, dry_run):
 
     for target in projects:
 
-        if "/" in target:  # it is a specific project
-            gl_projects.append(_get_project(gl, target))
-
-        elif os.path.exists(target):  # it is a file with project names
+        if os.path.exists(target):  # it is a file with project names
             gl_projects += _get_projects_from_file(gl, target)
 
+        if not group:  # it is a specific project
+            gl_projects.append(_get_project(gl, target))
+
         else:  # it is a group - get all projects
             gl_projects += _get_projects_from_group(gl, target)