← Back to daily report

terminal-config.md

Changed on 2026-02-23 15:39:16 EST

+10 lines added
-10 lines removed
Visual Diff
> ## Documentation Index¶
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt¶
> Use this file to discover all available pages before exploring further.¶

# Optimize your terminal setup¶

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

### Themes and appearance¶

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

For additional customization of the Claude Code interface itself, you can configure a [custom status line](/en/statusline) 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 Claude Code:¶

* **Quick escape**: Type `\` followed by Enter to create a newline¶
* **Shift+Enter**: Works out of the box in iTerm2, WezTerm, Ghostty, and Kitty¶
* **Keyboard shortcut**: Set up a keybinding to insert a newline in other terminals¶

**Set up Shift+Enter for other terminals**¶

Run `/terminal-setup` within Claude Code to automatically configure Shift+Enter for VS Code, Alacritty, Zed, and Warp.¶

<Note>¶
The `/terminal-setup` command is only visible in terminals that require manual configuration. If you're using iTerm2, WezTerm, Ghostty, or Kitty, you won't see this command because Shift+Enter already works natively.¶
</Note>¶

**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 Claude completes a task with proper notification configurWhen Claude finishes working and is waiting for your input, it fires a notification event. You can surface this event as a desktop notification through your terminal or run custom logic with [notification hooks](/en/hooks#notification:).

####
iTerm 2 system notifications¶

For iTerm 2 alerts when tasks complete:¶

1. Open iTerm 2 Preferences¶
2. Navigate to
inal notifications¶

Kitty and Ghostty support desktop notifications without additional configuration. iTerm 2 requires setup:¶

1. Open iTerm 2 Settings →
Profiles → Terminal¶
32. Enable "Silence bell" and Notification Center Alerts"¶
3. Click "
Filter Alerts →" and check "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

If notifications aren't appearing, verify that your terminal app has notification permissions in your OS settings.¶

Other terminals, including the default macOS Terminal, do not support native notifications. Use [notification hooks](/en/hooks#notification) instead.¶

#### Notification hooks¶

To add custom behavior when notifications fire, such as playing a sound or sending a message, configure a
[notification hooks](/en/hooks#notification) to run your own logic. Hooks run alongside terminal notifications, not as a replacement.¶

### Handling large inputs¶

When working with extensive code or long instructions:¶

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

### Vim Mode¶

Claude 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`, `f`/`F`/`t`/`T` with `;`/`,` repeat¶
* Editing: `x`, `dw`/`de`/`db`/`dd`/`D`, `cw`/`ce`/`cb`/`cc`/`C`, `.` (repeat)¶
* Yank/paste: `yy`/`Y`, `yw`/`ye`/`yb`, `p`/`P`¶
* Text objects: `iw`/`aw`, `iW`/`aW`, `i"`/`a"`, `i'`/`a'`, `i(`/`a(`, `i[`/`a[`, `i{`/`a{`¶
* Indentation: `>>`/`<<`¶
* Line operations: `J` (join lines)¶

See [Interactive mode](/en/interactive-mode#vim-editor-mode) for the complete reference.¶

Unified Diff

--- a/terminal-config.md
+++ b/terminal-config.md
@@ -42,22 +42,23 @@
 
 ### Notification setup
 
-Never miss when Claude completes a task with proper notification configuration:
+When Claude finishes working and is waiting for your input, it fires a notification event. You can surface this event as a desktop notification through your terminal or run custom logic with [notification hooks](/en/hooks#notification).
 
-#### iTerm 2 system notifications
+#### Terminal notifications
 
-For iTerm 2 alerts when tasks complete:
+Kitty and Ghostty support desktop notifications without additional configuration. iTerm 2 requires setup:
 
-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
+1. Open iTerm 2 Settings → Profiles → Terminal
+2. Enable "Notification Center Alerts"
+3. Click "Filter Alerts" and check "Send escape sequence-generated alerts"
 
-Note that these notifications are specific to iTerm 2 and not available in the default macOS Terminal.
+If notifications aren't appearing, verify that your terminal app has notification permissions in your OS settings.
 
-#### Custom notification hooks
+Other terminals, including the default macOS Terminal, do not support native notifications. Use [notification hooks](/en/hooks#notification) instead.
 
-For advanced notification handling, you can create [notification hooks](/en/hooks#notification) to run your own logic.
+#### Notification hooks
+
+To add custom behavior when notifications fire, such as playing a sound or sending a message, configure a [notification hook](/en/hooks#notification). Hooks run alongside terminal notifications, not as a replacement.
 
 ### Handling large inputs