|
3 | 3 | * Unified Vibe CLI - Combines MCP Server and Natural Language CLI |
4 | 4 | * |
5 | 5 | * Usage: |
6 | | - * vibe - Start MCP server |
| 6 | + * vibe - Start interactive REPL mode |
7 | 7 | * vibe "request" - Process natural language request |
| 8 | + * vibe --server - Start MCP server |
8 | 9 | * vibe --help - Show help |
9 | 10 | * vibe --setup - Run setup wizard |
10 | 11 | */ |
@@ -39,14 +40,23 @@ function detectMode(): 'server' | 'cli' | 'help' | 'setup' | 'interactive' { |
39 | 40 | return 'setup'; |
40 | 41 | } |
41 | 42 |
|
| 43 | + // Check for explicit server mode |
| 44 | + if (args.includes('--server') || args.includes('--stdio')) { |
| 45 | + return 'server'; |
| 46 | + } |
| 47 | + |
42 | 48 | // Check for interactive mode |
43 | 49 | if (args.includes('--interactive') || args.includes('-i')) { |
44 | 50 | return 'interactive'; |
45 | 51 | } |
46 | 52 |
|
47 | | - // If no arguments or only server-related flags, start server |
48 | | - if (args.length === 0 || |
49 | | - args.every(arg => ['--sse', '--port', '--stdio'].includes(arg.split('=')[0]))) { |
| 53 | + // If no arguments, default to interactive mode for better UX |
| 54 | + if (args.length === 0) { |
| 55 | + return 'interactive'; |
| 56 | + } |
| 57 | + |
| 58 | + // If only server-related flags (SSE, port), start server |
| 59 | + if (args.every(arg => ['--sse', '--port'].includes(arg.split('=')[0]))) { |
50 | 60 | return 'server'; |
51 | 61 | } |
52 | 62 |
|
@@ -74,8 +84,9 @@ function displayHelp(): void { |
74 | 84 |
|
75 | 85 | console.log(chalk.yellow('\n📋 Usage:\n')); |
76 | 86 |
|
77 | | - console.log(chalk.green(' vibe ') + chalk.gray('Start MCP server (default)')); |
78 | | - console.log(chalk.green(' vibe --interactive ') + chalk.gray('Start interactive CLI mode')); |
| 87 | + console.log(chalk.green(' vibe ') + chalk.gray('Start interactive REPL mode (default)')); |
| 88 | + console.log(chalk.green(' vibe --server ') + chalk.gray('Start MCP server')); |
| 89 | + console.log(chalk.green(' vibe --stdio ') + chalk.gray('Start MCP server in stdio mode')); |
79 | 90 | console.log(chalk.green(' vibe "your request" ') + chalk.gray('Process natural language request')); |
80 | 91 | console.log(chalk.green(' vibe --setup ') + chalk.gray('Run setup wizard')); |
81 | 92 | console.log(chalk.green(' vibe --help ') + chalk.gray('Show this help message')); |
@@ -176,13 +187,6 @@ async function main() { |
176 | 187 |
|
177 | 188 | // Continue with the originally requested mode |
178 | 189 | console.log(); |
179 | | - |
180 | | - // If no specific mode was requested (just 'vibe'), default to interactive |
181 | | - if (args.length === 0 && mode === 'server') { |
182 | | - // Change to interactive mode for better first-time experience |
183 | | - await runInteractive(); |
184 | | - return; |
185 | | - } |
186 | 190 | } |
187 | 191 |
|
188 | 192 | switch (mode) { |
|
0 commit comments