# Optimize Your Terminal Setup

> CodeBuddy Code works best when your terminal is properly configured. Follow these guidelines to optimize your experience.

## 🎨 Themes and Appearance

CodeBuddy Code cannot control the theme of your terminal. That's handled by your terminal application. You can match CodeBuddy Code's theme to your terminal any time via the `/config` command.

For additional customization of the CodeBuddy Code interface itself, you can configure a [custom status line](statusline.md) to display contextual information like the current model, working directory, or git branch at the bottom of your terminal.

## ⌨️ Line Breaks

You have several options for entering line breaks into CodeBuddy Code:

* **Ctrl+J**: Cross-platform shortcut, press Ctrl+J to insert a newline when entering multi-line input
* **Quick escape**: Type `\` followed by Enter to create a newline
* **Shift+Enter**: Automatically configured via the `/terminal-setup` command (recommended)

### Set up Shift+Enter (Recommended):

Run `/terminal-setup` within CodeBuddy Code to automatically configure Shift+Enter.

Supported terminals:
* **macOS**: iTerm2, Terminal.app
* **IDE**: VSCode, Cursor, Windsurf, Zed, CodeBuddy
* **JetBrains**: PyCharm, IntelliJ IDEA, WebStorm, PhpStorm, GoLand, Rider, CLion, RubyMine, AppCode, DataGrip
* **Terminal Emulators**: Ghostty, WezTerm, Kitty, Alacritty, Hyper, Tabby, Warp
* **Windows**: Windows Terminal

### Set up Option+Enter (VS Code, iTerm2 or macOS Terminal.app):

**For Mac Terminal.app:**

1. Open Settings → Profiles → Keyboard
2. Check "Use Option as Meta Key"

**For iTerm2 and VS Code terminal:**

1. Open Settings → Profiles → Keys
2. Under General, set Left/Right Option key to "Esc+"

## 🔔 Notification Setup

Never miss when CodeBuddy completes a task with proper notification configuration:

### iTerm 2 System Notifications

For iTerm 2 alerts when tasks complete:

1. Open iTerm 2 Preferences
2. Navigate to Profiles → Terminal
3. Enable "Silence bell" and Filter Alerts → "Send escape sequence-generated alerts"
4. Set your preferred notification delay

Note that these notifications are specific to iTerm 2 and not available in the default macOS Terminal.

### Custom Notification Hooks

For advanced notification handling, you can create [notification hooks](hooks.md#notification) to run your own logic.

## 📝 Handling Large Inputs

When working with extensive code or long instructions:

* **Avoid direct pasting**: CodeBuddy Code may struggle with very long pasted content
* **Use file-based workflows**: Write content to a file and ask CodeBuddy to read it
* **Be aware of VS Code limitations**: The VS Code terminal is particularly prone to truncating long pastes

## ⌨️ Vim Mode

CodeBuddy Code supports a subset of Vim keybindings that can be enabled with `/vim` or configured via `/config`.

The supported subset includes:

* Mode switching: `Esc` (to NORMAL), `i`/`I`, `a`/`A`, `o`/`O` (to INSERT)
* Navigation: `h`/`j`/`k`/`l`, `w`/`e`/`b`, `0`/`$`/`^`, `gg`/`G`
* Editing: `x`, `dw`/`de`/`db`/`dd`/`D`, `cw`/`ce`/`cb`/`cc`/`C`, `.` (repeat)
