summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks')
-rw-r--r--packages/cli/src/ui/hooks/slashCommandProcessor.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
index c174b8a4..66cf4e39 100644
--- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts
+++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts
@@ -494,6 +494,34 @@ export const useSlashCommandProcessor = (
},
},
{
+ name: 'extensions',
+ description: 'list active extensions',
+ action: async () => {
+ const activeExtensions = config?.getActiveExtensions();
+ if (!activeExtensions || activeExtensions.length === 0) {
+ addMessage({
+ type: MessageType.INFO,
+ content: 'No active extensions.',
+ timestamp: new Date(),
+ });
+ return;
+ }
+
+ let message = 'Active extensions:\n\n';
+ for (const ext of activeExtensions) {
+ message += ` - \u001b[36m${ext.name} (v${ext.version})\u001b[0m\n`;
+ }
+ // Make sure to reset any ANSI formatting at the end to prevent it from affecting the terminal
+ message += '\u001b[0m';
+
+ addMessage({
+ type: MessageType.INFO,
+ content: message,
+ timestamp: new Date(),
+ });
+ },
+ },
+ {
name: 'tools',
description: 'list available Gemini CLI tools',
action: async (_mainCommand, _subCommand, _args) => {