Getting Started with Roo Code CLI
This guide will walk you through running your first Roo Code CLI commands and understanding the basics.
Prerequisites
Before starting, ensure you have:
- Installed the Roo Code CLI
- Set up authentication (Roo Code Cloud or API key)
Your First Command
The simplest way to run the CLI is with a prompt and optional workspace:
roo "What is this project?" -w ~/my-project
Or if you're already in the project directory:
cd ~/my-project
roo "What is this project?"
This command:
- Executes the prompt "What is this project?"
- Uses
~/my-projectas the workspace (or current directory if-wis omitted) - Starts in interactive mode with a terminal UI
- Waits for your approval before executing any actions
Understanding the Output
When you run the command, you'll see:
- Initialization: CLI loads the extension and connects to the AI provider
- Task Execution: The AI analyzes your prompt and proposes actions
- Tool Approvals: You're prompted to approve file reads, commands, etc.
- Results: The AI presents its findings and awaits your response
Interactive Mode
By default, the CLI runs in interactive mode with a rich terminal UI.
Starting Interactive Mode
Run without a prompt to enter interactive mode:
roo ~/my-project
You'll be presented with an input prompt where you can:
- Type your task or question
- Use tab completion for files and commands
- Access command history with up/down arrows
- Enter multi-line prompts with Shift+Enter
Approving Actions
In interactive mode, the CLI will prompt for approval before:
- Reading files: "Allow reading file: src/utils.ts?"
- Writing files: "Allow writing to: src/config.ts?"
- Running commands: "Execute command: npm test?"
- Browser actions: "Open browser to: https://example.com?"
- MCP tool usage: "Use MCP tool: database_query?"
Respond with:
yoryesto approvenornoto rejectaoralwaysto approve all future actions of this type
Non-Interactive Mode
For automation and scripts, use non-interactive mode with the -y flag:
roo ~/my-project -y "Add JSDoc comments to all functions"
In non-interactive mode:
- All actions are auto-approved
- No user input is required
- Follow-up questions show a 60-second timeout
- The CLI exits when the task completes
Use non-interactive mode carefully, as it will execute all proposed actions without confirmation.
Common Workflows
Code Analysis
Analyze code without making changes:
roo "Analyze the architecture and suggest improvements" -w ~/my-project
Refactoring
Refactor code with approval for each change:
roo "Refactor src/utils.ts to use modern ES6 syntax" -w ~/my-project
Documentation Generation
Generate documentation automatically:
roo ~/my-project -y "Generate API documentation in docs/api.md"
Test Creation
Create tests interactively:
roo "Create unit tests for src/auth.ts" -w ~/my-project
Bug Investigation
Debug issues with full context:
roo "Why is the login form not submitting?" -w ~/my-project
Working with Files
Specify Files in Prompts
Reference specific files in your prompts:
roo "Review src/auth.ts and src/api.ts for security issues" -w ~/my-project
Reading from Files
You can load prompts from files:
echo "Analyze the codebase and create a README" > task.txt
roo "$(cat task.txt)" -w ~/my-project
Or use stdin:
echo "Add error handling" | roo ~/my-project
Using Different Providers and Models
Specify Provider
Choose your AI provider:
roo "Explain this code" -p anthropic -w ~/my-project
Supported providers:
anthropic- Claude modelsopenai-native- OpenAI modelsopenrouter- OpenRouter (default)gemini- Google Geminiroo- Roo Code Cloud
Specify Model
Use a specific model:
roo ~/my-project \
-p anthropic \
-m claude-sonnet-4.5 \
"Optimize this database query"
Use Different Modes
Start in a specific mode:
roo "Design a new user authentication system" -M architect -w ~/my-project
Available modes:
code- Code implementation (default)architect- Planning and designask- Questions and explanationsdebug- Debugging and troubleshooting
Advanced Examples
Multi-Step Task
Let the AI work through a complex task:
roo "Create a new API endpoint for user registration including route, controller, validation, and tests" -w ~/my-project
With Reasoning Effort
Adjust reasoning effort for complex problems:
roo ~/my-project \
-r high \
"Optimize this algorithm for better time complexity"
Reasoning levels: none, minimal, low, medium (default), high, xhigh
Exit on Completion
Automatically exit when the task is done:
roo ~/my-project \
--exit-on-complete \
-y \
"Format all TypeScript files"
Ephemeral Mode
Run without saving history or state:
roo ~/my-project --ephemeral "Quick code review"
Tips for Success
1. Be Specific
Good prompt:
roo "Add input validation to the signup form in src/components/SignupForm.tsx using Zod" -w ~/my-project
Vague prompt:
roo "Fix the form" -w ~/my-project
2. Provide Context
Include relevant information in your prompt:
roo "The API returns 500 errors when creating users. Check the error logs in logs/error.log and fix the issue in src/api/users.ts" -w ~/my-project
3. Use Modes Appropriately
- Architect mode for planning: Design before implementing
- Code mode for implementation: Write and modify code
- Ask mode for understanding: Learn about the codebase
- Debug mode for troubleshooting: Investigate and fix issues
4. Review Before Approving
In interactive mode, carefully review proposed changes before approving file writes or potentially destructive commands.
5. Start Simple
Begin with read-only analysis tasks to understand how the CLI works before having it make changes.
Keyboard Shortcuts
In the interactive TUI:
Ctrl+C- Cancel current operationCtrl+D- Exit the CLITab- Autocomplete files and commands↑/↓- Navigate command historyShift+Enter- New line in input (for multi-line prompts)Enter- Submit prompt
Next Steps
Now that you understand the basics:
- Learn about configuration to customize default settings
- Explore usage patterns for interactive and non-interactive modes
- Review CLI reference for all available options and commands
Troubleshooting
CLI Hangs
If the CLI appears stuck:
- Press
Ctrl+Cto cancel - Check your internet connection
- Verify API key or authentication is valid
- Look for errors with
--debugflag
Unexpected Behavior
Enable debug output to see what's happening:
roo ~/my-project --debug "Your prompt"
Commands Not Working
Verify the CLI is using the correct workspace:
roo "List files in the current directory" -w ~/my-project
The CLI should show files from ~/my-project, not your current terminal directory.