diff --git a/NodeApp/src/commander/CommanderApp.ts b/NodeApp/src/commander/CommanderApp.ts
index 0ac70a8639467fb24bc9deeef285e8ebb6b05df9..685da94009efb76da7109860cc2d7430466073b0 100644
--- a/NodeApp/src/commander/CommanderApp.ts
+++ b/NodeApp/src/commander/CommanderApp.ts
@@ -123,6 +123,7 @@ ${ TextStyle.CODE(' dojo upgrade ') }`, {
         TagCommand.registerOnCommand(this.program);
         CompletionCommand.registerOnCommand(this.program);
         UpgradeCommand.registerOnCommand(this.program);
+        SettingsCommand.registerOnCommand(this.program);
     }
 }
 
diff --git a/NodeApp/src/commander/settings/SettingsCommand.ts b/NodeApp/src/commander/settings/SettingsCommand.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6fbcb6e7a5cb0b79c7432975a9b2d12fa6a2db98
--- /dev/null
+++ b/NodeApp/src/commander/settings/SettingsCommand.ts
@@ -0,0 +1,23 @@
+import CommanderCommand   from '../CommanderCommand.js';
+import SettingsApiCommand from './subcommands/SettingsApiCommand';
+
+
+class SettingsCommand extends CommanderCommand {
+    protected commandName: string = 'settings';
+
+    protected defineCommand() {
+        this.command
+            .description('manage Dojo settings');
+    }
+
+    protected defineSubCommands() {
+        SettingsApiCommand.registerOnCommand(this.command);
+    }
+
+    protected async commandAction(): Promise<void> {
+        // No action
+    }
+}
+
+
+export default new SettingsCommand();
\ No newline at end of file
diff --git a/NodeApp/src/commander/settings/subcommands/SettingsApiCommand.ts b/NodeApp/src/commander/settings/subcommands/SettingsApiCommand.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b8602c0d50203a4983f102368ef1a17ec3332482
--- /dev/null
+++ b/NodeApp/src/commander/settings/subcommands/SettingsApiCommand.ts
@@ -0,0 +1,29 @@
+import CommanderCommand   from '../../CommanderCommand.js';
+import DojoBackendManager from '../../../managers/DojoBackendManager';
+import { Option }         from 'commander';
+
+
+class SettingsApiCommand extends CommanderCommand {
+    protected commandName: string = 'api';
+
+    protected defineCommand() {
+        this.command
+            .description('change Dojo API URL')
+            .option('-u, --url <string>', 'specify the url of the Dojo API')
+            .addOption(new Option('--clean', 'clean the Dojo API settings').conflicts('url'))
+            .action(this.commandAction.bind(this));
+    }
+
+    protected async commandAction(options: { url: string, clean: boolean }): Promise<void> {
+        if ( options.clean ) {
+            await DojoBackendManager.cleanApiUrl();
+        } else if ( options.url ) {
+            await DojoBackendManager.setApiUrl(options.url);
+        } else {
+            await DojoBackendManager.askApiUrl(true);
+        }
+    }
+}
+
+
+export default new SettingsApiCommand();
\ No newline at end of file