Video coming soon
A hands-on tour of the VS Code extension, keyboard shortcuts, surgical selection and the settings that make Claude Code work for you.
This lesson is your Claude Code power-user crash course. We'll cover the IDE integration, the shortcuts that matter, how to give Claude laser-focused context and how settings and configuration work. All of this is demonstrated live inside the course project so you can follow along.
Claude Code works best when it's connected to your editor. We're focusing on VS Code for this course, but the same concepts apply to other supported IDEs.
Cmd+Shift+X (Mac) or Ctrl+Shift+X (Windows/Linux) to open ExtensionsCmd+Esc. If that shortcut isn't working, open your key bindings (Cmd+K Cmd+S) and check it's mapped correctly. We'll walk through this in the video.@-mentions to reference files with fuzzy matching (e.g., @auth finds auth.ts, AuthService.ts). This works in Claude Code itself, not just the IDE extension@file.ts#5-10 to reference specific linesWhile this course uses VS Code, Claude Code also supports:
These are the shortcuts you'll reach for constantly.
| Shortcut | What It Does |
|---|---|
Cmd+Esc | Toggle focus between your editor and the Claude panel |
Ctrl+O | Toggle verbose output to see what Claude is doing under the hood |
Ctrl+E | Toggle full output to expand or collapse verbose view details |
Ctrl+G | Open your prompt in a text editor for complex, multi-line instructions |
| Shortcut | What It Does |
|---|---|
Shift+Enter | Multi-line input so you can write longer prompts |
Shift+Tab | Cycle permission modes (default → plan → accept edits) |
Esc + Esc | Rewind to go back to a checkpoint and restore code |
Ctrl+B | Background a running task so you can keep working while Claude runs |
Ctrl+T | Toggle the task list for multi-step work |
| Shortcut | What It Does |
|---|---|
Alt+T / Option+T | Toggle extended thinking for deeper reasoning on complex problems |
Alt+P / Option+P | Switch models mid-session |
Terminal note:
Shift+EnterandAltshortcuts work out of the box in iTerm2, WezTerm, Ghostty and Kitty. IfShift+Enterisn't working in your terminal, run/terminal-setupand follow the Claude Code guide to configure it. For VS Code's integrated terminal, you'll also need to enable the Option key as Meta by settingterminal.integrated.macOptionIsMetatotruein Settings.
| Prefix | What It Does |
|---|---|
! | Execute a bash command directly (output goes into context) |
@ | File path autocomplete to reference specific files |
/ | Show available slash commands and skills |
Beyond the interactive mode we've been using, there are a few ways to run Claude Code:
| Command | What It Does |
|---|---|
claude | Start interactive mode (what we've been doing) |
claude "fix the build error" | Start interactive mode with a prompt already injected |
claude -p "explain this function" | Non-interactive mode: runs the query, prints the response and exits |
/clear | Clear the conversation history and start fresh |
/help | Show all available commands |
exit or Ctrl+C | Exit Claude Code |
Passing a prompt with claude "..." launches interactive mode but injects your prompt straight away, saving you the step of typing it after launch. The -p flag is the non-interactive mode. It runs the query, prints the response and exits. This is useful for scripting or when you just want a quick answer without starting a session.
Note: There are also commands for resuming and continuing previous sessions. We'll cover those in the Session Management section later in the course.
One of Claude Code's most powerful IDE features is surgical selection, where you highlight specific code in your editor and add it to Claude's context. Instead of pointing Claude at an entire file, you give it exactly the lines you want it to focus on.
Our AI Prompt Library has two pages that render prompt data as cards: the homepage (app/page.tsx) and the detail page (app/prompt/[id]/page.tsx). Both render a title, category badge and description, but the card markup is duplicated across both files with inconsistent styling:
| Aspect | Homepage | Detail Page |
|---|---|---|
| Corners | rounded (barely rounded) | rounded-3xl (very round) |
| Border | border (thin, dark) | border-2 (thick, lighter) |
| Background | Solid bg-zinc-900 | Gradient with shadow |
| Padding | p-4 (tight) | p-10 (spacious) |
| Badge | Small dark pill | Large bright square |
| Description | Truncated, dimmer text | Full text |
Two files, same card pattern, different styles. This is exactly the kind of duplication that compounds as a codebase grows. A senior developer would look at this and say: "We need a shared component."
app/page.tsx and app/prompt/[id]/page.tsx side-by-sideapp/page.tsx, select lines 33-41 (the card <div> inside the .map())Cmd+Option+K to add that selection to Claude's contextapp/prompt/[id]/page.tsx and select lines 37-68 (the main card <div> with all its contents)Cmd+Option+K again to add this second selectionWatch what happens. Claude sees exactly the two card implementations, recognises the shared pattern, and extracts a single component with consistent styling. Before: duplicated markup in two files. After: one PromptCard component, two clean imports, consistent visuals.
That's the power of focused context. You didn't point Claude at two entire page files. You selected the exact code that mattered, and Claude understood the relationship.
Commands and skills are interchangeable in Claude Code. Two worth knowing right away:
/status shows your current version, model, account and connectivity info. Good for a quick sanity check that everything is connected./config opens the Settings interface right inside your session, so you can tweak configuration without hunting for JSON files.We'll introduce more commands and skills as they become relevant throughout the course.
Claude Code uses a scope system to determine where configurations apply and who they're shared with:
| Scope | Location | Who It Affects | Shared With Team? |
|---|---|---|---|
| Managed | System-level managed-settings.json | All users on the machine | Yes (deployed by IT) |
| User | ~/.claude/ directory | You, across all projects | No |
| Project | .claude/ in the repository | All collaborators on this repo | Yes (committed to git) |
| Local | .claude/*.local.* files | You, in this repo only | No (gitignored) |
For now, just know these scopes exist. We'll build on this as we go through the course, configuring different scopes as they become relevant.
You can open the settings interface at any time with /config inside Claude Code, or edit the JSON files directly.
The status line is a live dashboard that sits below your Claude Code input, showing you real-time information about your session. You can configure it to display whatever matters to you, like git status, token usage, cost, connected MCP servers and more.
Claude Code has a built-in /statusline command that generates a status line for you. Third-party libraries offer more features. For this course, we'll install one I've built and open-sourced called cc-pulse that shows:
To install it:
npm install -g cc-pulseThen add it to your global settings (~/.claude/settings.json):
{
"statusLine": {
"type": "command",
"command": "cc-pulse"
}
}Restart Claude Code and you'll see it. The status line is entirely optional, but once you start using one, you'll wonder how you worked without it.
Claude Code has a full permissions system with allow and deny lists. We'll cover it properly in a later section where it becomes important. For now, to keep things moving, we'll run Claude Code with bypass permissions:
claude --dangerously-skip-permissionsThis tells Claude to act without asking for permission on every file edit or command. It's fine for learning and for solo projects where you're the only one working. We'll tighten this up later when we cover security and team workflows.
Important: Don't use
--dangerously-skip-permissionson shared codebases or in production environments. It exists for development speed, not as a default.
@-mentions and surgical selectionCtrl+O when you want to see what Claude is doing under the hoodcc-pulse for a batteries-included option--dangerously-skip-permissions and we'll configure them properly laterCheckpoint: This is the end of Section 1. If you want to save your progress or need to come back later, the
checkpoint/s2branch has the project in this exact state.