Chat interface
The chat interface is your main way to interact with Bob. You can open it by selecting the Bob icon beside the navigation bar. Bob understands natural language, allowing you to communicate with it as you would with a human developer, with no special commands required.
Components of the chat interface
Chat history
Displays your conversation with Bob, including your requests, Bob's responses, and actions taken such as file edits or command executions.
Input field
Where you type your tasks and questions for Bob using natural language or use slash commands for quick actions.
Action buttons
Appear above the input field, allowing you to approve or reject Bob's proposed actions. Available buttons change depending on context.
Auto-approve toolbar
Located above the input field, allows you to enable auto-approval for specific actions like read, write, execute, and more to speed up your workflow.
Slash commands
Type '/' in the input field to access built-in commands (like /review, /init) and custom commands for common workflows.
Enhance prompt button
Located in the bottom right of the input field, automatically improves your prompt by adding clarity, structure, and context before sending.
Send button
Located to the right of the input field, sends your message to Bob.
New chat button
Located in the header, starts a new conversation session.
Settings button
Located in the header, opens settings to customize Bob's features and behavior.
Mode selector
A dropdown menu to the left of the chat input field for selecting which mode Bob should use for your tasks.
Writing effective requests
Clear and specific requests yield the best results:
| Strategy | Implementation |
|---|---|
| Be specific | "Fix the bug in calculateTotal that returns incorrect results when given negative numbers" instead of "Fix the code" |
| Provide context | Use @ context mentions to reference files and code sections |
| Break down tasks | Submit complex tasks as smaller, manageable steps |
| Include examples | Provide sample code when you need specific formatting or style |
Example requests
Create a new file named `utils.py` and add a function called `add` that takes two numbers as arguments and returns their sumIn the file @src/components/Button.tsx, change the color of the button to blueFind all instances of the variable `oldValue` in @/src/App.js and replace them with `newValue`Explain the function `calculateTotal` in @/src/utils.ts@problems address all detected problemsCommon pitfalls to avoid
| Avoid | Use |
|---|---|
| Vague instructions such as “Make it better” | Clear, specific guidance such as “Improve error handling by adding try/catch blocks.” |
| Relying on Bob to infer context | Explicit file and function references using @ mentions |
| Combining multiple unrelated tasks in a single request | One focused request at a time |
| Skipping validation of results | Reviewing Bob’s output to ensure it meets your requirements |
Tips for complex requests
For more complex tasks:
- Start with a clear overview of what you want to accomplish
- Provide relevant background information
- Break down the task into logical steps
- Use @ mentions to reference specific files or code sections
- Review Bob's responses and provide feedback to refine results
Using the enhance prompt feature
The enhance prompt button () refines your request before sending by adding clarity, structure, and relevant context. This is particularly useful when:
- Your initial prompt is vague or needs more structure
- You want to ensure Bob understands your intent
- You need help breaking down a complex request
Example transformation:
Original prompt:
make a function to calculate taxEnhanced prompt:
Create a JavaScript function that calculates sales tax. The function should:
1. Take two parameters: price (number) and taxRate (decimal)
2. Return the calculated tax amount
3. Include proper error handling for invalid inputs
4. Include comments explaining the calculation logic
Provide the complete function implementation with an example of how to use it.Bob's tip: Always review the enhanced prompt before sending to ensure it matches your intent.
Interacting with messages
-
Clickable references: File paths, URLs, and other references in the chat history are clickable. Clicking a file path opens the file in the editor, while clicking a URL opens it in your default browser.
-
Copying text: Select text in the chat history and use the standard copy command (Ctrl + C / ⌘ + C). Code blocks include a dedicated "Copy" button for convenience.
-
Expanding and collapsing: Click on a message to expand or collapse it, helping you manage longer conversations.
Status indicators
| Indicator | Description |
|---|---|
| Loading spinner | Appears when Bob is processing your request. |
| Error messages | Displayed in red when an error occurs. |
| Success messages | Displayed in green when actions complete successfully. |
Keyboard shortcuts
You can use keyboard shortcuts to interact with the chat interface more efficiently:
- Enter: Send your message (when input field is focused)
- Shift + Enter: Add a new line in your message
For more keyboard shortcuts and configuration options, see Keyboard shortcuts.