Skip to main content
guidesSource-backed

Terminal, Tmux, and Vim Setup for Claude Code

A practical walkthrough for configuring your terminal to work well with Claude Code: multiline newlines and Shift+Enter, the /terminal-setup command, tmux passthrough and extended keys, notifications, and Vim editor mode.

by JPette1783·added 2026-06-05·
Review first review before installing

Open the source and read safety notes before installing.

Citation facts

Source-backed facts for citing this resource, derived directly from the registry — also available as plain text for AI assistants.

Source URLs
https://code.claude.com/docs/en/terminal-config, https://github.com/JSONbored/awesome-claude/blob/main/content/guides/terminal-tmux-and-vim-setup-for-claude-code.mdx
Safety notes
/terminal-setup writes keybindings into your terminal emulator's configuration file; review the change and note it leaves existing bindings in place., In VS Code, Cursor, and Devin Desktop, /terminal-setup also adjusts editor settings (GPU acceleration and scroll sensitivity); revert them if needed., tmux passthrough (allow-passthrough on) lets escape sequences reach the outer terminal; enable it knowingly on shared or remote hosts.
Privacy notes
Terminal configuration is local and does not change what data Claude Code sends to the model provider., Notifications can reach your desktop over SSH; be aware a remote session can surface activity on your local machine., Large pastes are collapsed to a placeholder in the prompt but the full content is still sent on submit.
Author
JPette1783
Submitted by
JPette1783
Claim status
unclaimed
Last verified
2026-06-05

Decision playbook

Review trust signals before you adopt

Signals are present but mixed. Use the checklist below to confirm the source and operational safety for your environment.

Compare context
Selected

0

Current score

63

Baseline

Delta

No baseline selected

No major trust-signal divergence detected in the current selection.

Source and provenance checks

Needs review

Confirm ownership and provenance before trusting install instructions.

  • Source link availableRequired

    Open the canonical repository and verify ownership.

    Done
  • Source provenance statusRequired

    Marked as source-backed.

    Done
  • Metadata reviewed

    No reviewed flag detected in metadata.

    Pending

Safety and privacy checks

Complete

Validate risk disclosures before installation or API wiring.

  • Safety notes presentRequired

    Review the listed safety guidance before running commands.

    Done
  • Privacy notes presentRequired

    Review data handling notes before connecting accounts or secrets.

    Done
  • Trust level risk gateRequired

    Trust level does not block evaluation.

    Done

Package and install checks

Needs review

Check package metadata and artifact integrity signals.

  • Install payload available

    Install or copy payload is available for review.

    Done
  • Package verification flag

    No package verification flag provided.

    Pending
  • Checksum metadata

    No checksum provided for downloaded artifact.

    Pending

Compare-driven decision checks

Needs review

Use compare context to validate trade-offs before adoption.

  • Compare tray has multiple entries

    Add at least one more entry to compare trust differences.

    Pending
  • Baseline comparison available

    No baseline peer selected yet.

    Pending
  • Diverging trust signals identified

    No major trust-signal divergence found.

    Pending

Setup at a glance

Copy & paste

Copy-ready — paste the snippet to get started.

Adoption plan

Balanced adoption plan

Current risk score 24/100. Use staged verification before broader rollout.

Risk 24

Pre-adoption checks

Validate source and review signals before any execution.

  • Confirm source provenanceRequired

    Source URL/provenance metadata is present.

    Done
  • Confirm metadata review state

    No review metadata found; increase manual validation.

    Pending
  • Verify install payload

    Install/config payload exists and can be inspected.

    Done

Security checks

Confirm safety, privacy, and package integrity signals.

  • Review safety notesRequired

    Safety notes are present.

    Done
  • Review privacy notesRequired

    Privacy notes are present.

    Done
  • Verify package integrity metadata

    No package verification/checksum metadata.

    Pending

Rollout

Adopt in controlled steps based on the selected plan.

  • Run in isolated sandbox firstRequired

    Use a constrained sandbox and observe behavior across multiple tasks.

    Pending
  • Roll out graduallyRequired

    Roll out to a small cohort before wider usage.

    Pending
  • Set monitoring and fallback

    Define rollback path and monitor errors after adoption.

    Pending

Evidence readiness

Evidence readiness matrix · balanced

Missing required evidence: Metadata review. Risk score 31.

Risk 31

Source provenance

Present

Source repository/provenance is listed.

Required in this preset

Metadata review

Missing

Review metadata is missing.

Required in this preset

Safety notes

Present

Safety notes are present.

Required in this preset

Privacy notes

Present

Privacy notes are present.

Optional in this preset

Package integrity

Missing

Package integrity metadata is missing.

Optional in this preset

Install payload

Present

Install payload is available.

Required in this preset

Required gaps: Metadata review

Decision timeline

Decision timeline · balanced

Blocking gaps: Check metadata review status. Risk 28.

Risk 28

triage

Confirm source provenanceRequired

Source/provenance metadata is available.

Done

triage

Check metadata review statusRequired

Review metadata is missing.

Pending

verify

Review safety notesRequired

Safety notes are available.

Done

verify

Review privacy notes

Privacy notes are available.

Done

verify

Validate package integrity metadata

Package integrity metadata is missing.

Pending

rollout

Verify install payload and commandsRequired

Install payload is available.

Done

Blockers: Check metadata review status

Prerequisite readiness

Prerequisite readiness

3 prerequisites to line up before setup.

0/3 ready
Install & runtime1Configuration2

Safety & privacy surface

Safety & privacy surface

3 safety and 3 privacy notes across 5 risk areas. Review closely: credentials & tokens, network access, third-party handling.

5 areas
  • SafetyLocal files/terminal-setup writes keybindings into your terminal emulator's configuration file; review the change and note it leaves existing bindings in place.
  • SafetyGeneralIn VS Code, Cursor, and Devin Desktop, /terminal-setup also adjusts editor settings (GPU acceleration and scroll sensitivity); revert them if needed.
  • SafetyNetwork accesstmux passthrough (allow-passthrough on) lets escape sequences reach the outer terminal; enable it knowingly on shared or remote hosts.
  • PrivacyThird-party handlingTerminal configuration is local and does not change what data Claude Code sends to the model provider.
  • PrivacyCredentials & tokensNotifications can reach your desktop over SSH; be aware a remote session can surface activity on your local machine.
  • PrivacyGeneralLarge pastes are collapsed to a placeholder in the prompt but the full content is still sent on submit.

Safety notes

  • /terminal-setup writes keybindings into your terminal emulator's configuration file; review the change and note it leaves existing bindings in place.
  • In VS Code, Cursor, and Devin Desktop, /terminal-setup also adjusts editor settings (GPU acceleration and scroll sensitivity); revert them if needed.
  • tmux passthrough (allow-passthrough on) lets escape sequences reach the outer terminal; enable it knowingly on shared or remote hosts.

Privacy notes

  • Terminal configuration is local and does not change what data Claude Code sends to the model provider.
  • Notifications can reach your desktop over SSH; be aware a remote session can surface activity on your local machine.
  • Large pastes are collapsed to a placeholder in the prompt but the full content is still sent on submit.

Prerequisites

  • Claude Code installed and running in your terminal.
  • Edit access to your terminal emulator settings and, for tmux users, ~/.tmux.conf.
  • Edit access to ~/.claude/settings.json for notification and editor-mode settings.

Schema details

Install type
copy
Troubleshooting
No
Full copyable content
## Overview

Claude Code works in any terminal without configuration, but a few terminal
behaviors (multiline input, notifications, tmux, and Vim keys) often need a small
tweak. This guide walks through the common fixes.

## Multiline prompts and Shift+Enter

Enter submits your prompt. To add a newline without submitting, press `Ctrl+J`,
or type `\` then Enter. Both work everywhere with no setup.

Shift+Enter for a newline works without setup in many terminals (Ghostty, Kitty,
iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal). In VS Code, Cursor,
Devin Desktop, Alacritty, and Zed, run `/terminal-setup` once to write the
binding. In gnome-terminal and JetBrains IDEs it is unavailable; use `Ctrl+J` or
`\` then Enter.

## Configure tmux

Inside tmux, Shift+Enter and desktop notifications break by default. Add the
following to `~/.tmux.conf`, then run `tmux source-file ~/.tmux.conf`:

```bash
set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'
```

`allow-passthrough` lets notifications and progress updates reach the outer
terminal; the extended-keys lines let tmux distinguish Shift+Enter from Enter.
Run `/terminal-setup` in the host terminal, not inside tmux.

## Notifications

By default Claude Code sends a desktop notification only in Ghostty, Kitty, and
iTerm2. In other terminals, set `preferredNotifChannel` to `"terminal_bell"` in
settings, or configure a Notification hook for a custom sound:

```json
{
  "hooks": {
    "Notification": [
      { "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] }
    ]
  }
}
```

## Vim editor mode

Enable Vim-style editing in the prompt via `/config` -> Editor mode, or set
`editorMode` to `"vim"` in `~/.claude/settings.json`. It supports a subset of
NORMAL and VISUAL motions (`hjkl`, `v`/`V`, `d`/`c`/`y`). Enter still submits in
INSERT mode; use `o`, `O`, or `Ctrl+J` to insert a newline.

## Quick checklist

1. Newline not working? Use `Ctrl+J` or run `/terminal-setup` for your editor.
2. On tmux? Add the three lines above to `~/.tmux.conf`.
3. No alert when Claude finishes? Set `preferredNotifChannel` or add a
   Notification hook.
4. Want Vim keys? Set `editorMode: "vim"`.
5. Display flickering? Switch to fullscreen rendering with `/tui fullscreen`.

## Source

- Configure your terminal for Claude Code: https://code.claude.com/docs/en/terminal-config

About this resource

Overview

Claude Code works in any terminal without configuration, but a few terminal behaviors (multiline input, notifications, tmux, and Vim keys) often need a small tweak. This guide walks through the common fixes.

Multiline prompts and Shift+Enter

Enter submits your prompt. To add a newline without submitting, press Ctrl+J, or type \ then Enter. Both work everywhere with no setup.

Shift+Enter for a newline works without setup in many terminals (Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal). In VS Code, Cursor, Devin Desktop, Alacritty, and Zed, run /terminal-setup once to write the binding. In gnome-terminal and JetBrains IDEs it is unavailable; use Ctrl+J or \ then Enter.

Configure tmux

Inside tmux, Shift+Enter and desktop notifications break by default. Add the following to ~/.tmux.conf, then run tmux source-file ~/.tmux.conf:

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

allow-passthrough lets notifications and progress updates reach the outer terminal; the extended-keys lines let tmux distinguish Shift+Enter from Enter. Run /terminal-setup in the host terminal, not inside tmux.

Notifications

By default Claude Code sends a desktop notification only in Ghostty, Kitty, and iTerm2. In other terminals, set preferredNotifChannel to "terminal_bell" in settings, or configure a Notification hook for a custom sound:

{
  "hooks": {
    "Notification": [
      { "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] }
    ]
  }
}

Vim editor mode

Enable Vim-style editing in the prompt via /config -> Editor mode, or set editorMode to "vim" in ~/.claude/settings.json. It supports a subset of NORMAL and VISUAL motions (hjkl, v/V, d/c/y). Enter still submits in INSERT mode; use o, O, or Ctrl+J to insert a newline.

Quick checklist

  1. Newline not working? Use Ctrl+J or run /terminal-setup for your editor.
  2. On tmux? Add the three lines above to ~/.tmux.conf.
  3. No alert when Claude finishes? Set preferredNotifChannel or add a Notification hook.
  4. Want Vim keys? Set editorMode: "vim".
  5. Display flickering? Switch to fullscreen rendering with /tui fullscreen.

Source

Source citations

Add this badge to your README

Show that Terminal, Tmux, and Vim Setup for Claude Code is listed on HeyClaude. Paste this Markdown into your README — it renders the badge and links back to this page.

Listed on HeyClaude
[![Listed on HeyClaude](https://heyclau.de/badge/guides/terminal-tmux-and-vim-setup-for-claude-code.svg)](https://heyclau.de/entry/guides/terminal-tmux-and-vim-setup-for-claude-code)

How it compares

Terminal, Tmux, and Vim Setup for Claude Code side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.

2 trust signals differ across this comparison (Source provenance, Submitter).

Field

A practical walkthrough for configuring your terminal to work well with Claude Code: multiline newlines and Shift+Enter, the /terminal-setup command, tmux passthrough and extended keys, notifications, and Vim editor mode.

Open dossier

Configure Claude Code in JetBrains IDEs for large repositories: terminal rendering fixes, synchronized output, sparse context, and plugin workflows for IntelliJ-based teams.

Open dossier

Connect existing MCP servers to Claude Code with claude mcp add: stdio, HTTP, and SSE transports, local/project/user scopes, .mcp.json, and /mcp OAuth.

Open dossier

Configure Claude Code on Amazon Bedrock: AWS region resolution, GovCloud inference profiles, credential export caching, service tiers, and CI empty-string pitfalls.

Open dossier
Next steps
Trust
Review statusNot reviewedNot reviewedNot reviewedNot reviewed
Package trustPackage not verifiedPackage not verifiedPackage not verifiedPackage not verified
Source provenanceDiffersSource-backedSubmission linkedSource submissionSource-backedSubmission linkedSource submission
SubmitterDiffersJPette1783kiannidevkiannidev
Install riskReview firstReview firstReview firstReview first
Notes Safety ✓ Privacy ✓ Safety ✓ Privacy ✓ Safety ✓ Privacy ✓ Safety ✓ Privacy ✓
BrandAWS logoAWS
Categoryguidesguidesguidesguides
SourceSource-backedSource-backedSource-backedSource-backed
AuthorJPette1783kiannidevJSONboredkiannidev
Added2026-06-052026-06-142025-10-272026-06-14
Platforms
Harness
Source repo
Safety notes/terminal-setup writes keybindings into your terminal emulator's configuration file; review the change and note it leaves existing bindings in place. In VS Code, Cursor, and Devin Desktop, /terminal-setup also adjusts editor settings (GPU acceleration and scroll sensitivity); revert them if needed. tmux passthrough (allow-passthrough on) lets escape sequences reach the outer terminal; enable it knowingly on shared or remote hosts.Large-repo sessions amplify token usage—use sparse context and compaction hygiene to avoid runaway costs. JetBrains terminals on 2026.1+ use synchronized output; avoid custom ANSI themes that fight IDE rendering. Do not mount entire monorepo secrets into agent sessions; scope working directories per module.Local stdio servers run their command with your user privileges, and remote servers expose model-controlled tools, so connect only servers you trust and review the command, URL, and headers first.Bedrock credentials in shared CI must use OIDC or short-lived role assumption—not long-lived access keys in repos. Auto mode on Bedrock requires explicit `CLAUDE_CODE_ENABLE_AUTO_MODE=1` opt-in on third-party providers. Model picker may list models your account cannot serve—verify access before pinning defaults.
Privacy notesTerminal configuration is local and does not change what data Claude Code sends to the model provider. Notifications can reach your desktop over SSH; be aware a remote session can surface activity on your local machine. Large pastes are collapsed to a placeholder in the prompt but the full content is still sent on submit.IDE-integrated sessions expose package names, module paths, and dependency graphs in prompts. Usage and session data follow the same data-usage policies as terminal Claude Code. Shared JetBrains licenses on VDI pools can leak session resumes—use per-developer config directories.Server URLs, command paths, header names, and tool results can expose internal hosts and private data; keep API keys and tokens out of shared `.mcp.json` and use environment-variable expansion or `/mcp` OAuth instead.Prompts and tool outputs flow through your AWS account boundary; align with AWS logging and CloudTrail retention. Cross-account `awsCredentialExport` paths may expose role ARNs in `/status` output during debugging. Do not embed customer payloads in prompts when Bedrock logging to third-party observability is enabled.
Prerequisites
  • Claude Code installed and running in your terminal.
  • Edit access to your terminal emulator settings and, for tmux users, ~/.tmux.conf.
  • Edit access to ~/.claude/settings.json for notification and editor-mode settings.
  • JetBrains IDE 2025.2+ or 2026.1+ with the Claude Code plugin approved.
  • A large repository with documented sparse-context or monorepo CLAUDE.md hierarchy.
  • Sufficient heap for indexing; pilot on a representative module before org-wide rollout.
  • Team policy for MCP servers and permissions synced to IDE sessions.
  • Claude Code installed and signed in, with the `claude` CLI on your PATH.
  • The connection details for the server you are connecting: its transport (stdio command, HTTP/SSE URL), any required header or environment variable, and its trust/source information.
  • AWS account with Bedrock model access for required Anthropic model IDs.
  • IAM role or credential chain reachable from developer laptops and CI runners.
  • AWS region decision documented, including GovCloud if applicable.
  • Network path to Bedrock endpoints through corporate proxy if required.
Install
Config
Citations
ClaimUnclaimedUnclaimedUnclaimedUnclaimed
Open 4 picks in the interactive comparison tool

Related guides

Signals

Loading live community signals…

More like this, weekly

A short, calm digest of reviewed Claude resources. Unsubscribe any time.