Published: 2026-08-05
Deep dive

Claude Code Full Course: Permission Modes, /goal Loops and MCP

Chapters / key moments (click to jump — plays here on the page)

A 60-minute course aimed at people with no development background, taught by Eric — a former Amazon and Microsoft engineer who uses Claude Code to run his own startup. It covers the native install, why an IDE beats both the desktop app and a bare terminal, the four permission modes and which one is actually safe to leave running, and the /goal command that turns a single prompt into a self-evaluating build loop. The centrepiece is a full worked example: screenshot an existing web app, have Claude plan a clone in plan mode, refine the plan, then let it build and serve the result.

Source video

"Claude Code Full Course – Autonomous Goals, MCP, and VS Code Setup" by freeCodeCampWatch on YouTube →

What this page covers

The breakdown below follows the first half of the course — install through the /goal build loop and skills. The course also walks through the CLAUDE.md file, custom slash commands, git version control, connecting MCP servers and CLI tools for day-to-day apps like Jira and Slack, deploying the finished application, and a closing FAQ section. For those topics see our own configuration guide and command reference.

Step-by-Step Breakdown

  1. Install Claude Code natively

    Open the official Claude documentation and go to the quick start page. Pick the native install option — the course calls this the recommended path — and copy the command matching your operating system. Open a terminal (on macOS, Spotlight → "terminal"), paste, and press enter. The install runs locally on your machine.

  2. Decide where you will actually run it

    Three options, in increasing order of control. The desktop app has a Claude Code toggle and works immediately, but it is the least flexible — little customisation, and you cannot reach every feature. The bare terminal gives full control but a poor interface to navigate. The course recommends an IDE: you still get a terminal, but you can also see every file that changed in a readable interface alongside it.

  3. Install VS Code and open a project folder

    Download Visual Studio Code and install it. Then Open Folder — do not skip this. Creating or opening a dedicated project folder is what gives Claude Code a defined working directory, and everything it writes lands there. In the demo a new desktop folder is created and opened, and the Explorer sidebar then shows its contents. Files you add or delete in the Explorer change the real folder on disk.

  4. Open the integrated terminal and start a session

    Click the toggle-panel icon in the top right, or press Ctrl + ` (control + backtick) to open and close the terminal. Type claude to start a session. The prompt window appears with a status line showing which model is in use, how long the last response took, how many tokens it consumed, and what percentage of the context window has been used so far.

  5. Confirm it can write to your folder

    The distinction from the regular Claude or ChatGPT web app is filesystem access. The demo prompt is simply to create a file called example in the current folder with some text in it — the file then appears in the VS Code Explorer. This is the check worth running first, because it confirms Claude Code is pointed at the folder you think it is.

  6. Learn to stop, clear and resume

    End a session with the terminal trash icon, or press Ctrl + C twice. Run clear to wipe the terminal display. Type claude again for a fresh session — or /resume to pick a previous conversation from a list and continue it. The course frames /resume as the recovery path when your machine shuts down mid-task.

  7. Cycle the permission modes with Shift + Tab

    Press Shift + Tab inside a session to rotate through plan mode, accept edits and auto mode. Launching with claude --dangerously-skip-permissions adds a fourth, bypass permissions. The status line at the bottom always shows which mode you are in. See the mode-by-mode table below — this is the part of the course most worth internalising before you let an agent run.

  8. Start real work in plan mode, with a screenshot as input

    The worked example clones an existing tier-list web app. Switch to plan mode, take a screenshot of the target app, and drag the image directly into the prompt — the file path appears inline. Paste the source URL too. The prompt asks Claude to extract every feature, image asset and behaviour, and to return a plan before anything is executed.

  9. Answer the clarifying questions

    Claude reverse-engineers the reference app and comes back with multiple-choice questions rather than assumptions: which tech stack (Next.js + React, a vanilla clone, or Next.js + SortableJS), whether to reproduce the email-capture gate or skip it, what content the tiers should hold, and a fidelity bar — merely functional, or pixel-perfect. Pixel-perfect is defined concretely: same fonts, same styling, no more than 2% visual difference from the screenshot.

  10. Read the plan, then refine it before executing

    The generated plan contains the context, the decisions just made, the drag-and-drop library choice, architecture references, extracted design tokens (typography, buttons), the data model, the file structure and the build steps. Rather than accepting it, the course uses the down arrow to select the "give feedback" option and adds a requirement: pull all the image assets down locally first, before the build loop starts. Claude regenerates the plan with that step added, and the SVG assets appear in the public folder.

  11. Hand off to the /goal loop and let it build

    With the plan approved, the build runs unattended. When it finishes, Claude has started a dev server and prints a local URL. Opening that URL shows the working clone — items drag into S / A / B tiers, and the reset button clears them.

  12. Package repeated work as a skill

    A skill is described as a workflow, guide or SOP that instructs the agent how to do something — portable across models, not specific to Claude Code. The example given is a personal "fix ticket" skill that automates a bug-fix pipeline end to end against a project tracking board, so recurring issues do not need to be re-explained each time.

Permission Modes — What Each One Actually Allows

This is the clearest part of the course and the part with real safety consequences. All four are reachable with Shift + Tab except bypass, which requires the launch flag.

ModeEdits filesRuns bashUse it for
Plan No No Reads the codebase and produces a plan you approve first. The course recommends it for complex refactors, code reviews, and starting a new application from scratch.
Accept edits Yes, automatically Asks each time Writing and changing files without a prompt per edit, while still gating anything executable.
Auto Yes, automatically Yes, with an AI safety review Longer unattended runs. Instead of asking you to approve every script, a classifier reviews what is about to run and escalates to you only when a human really is needed.
Bypass Yes, automatically Yes, unrestricted — no review Throwaway VMs and test environments only. Nothing checks the script for side effects before it runs.

For hardening beyond mode selection — allowlists, sandboxing and what a bypassed agent can reach on your machine — see our cross-platform security centre.

How /goal Differs From a Normal Prompt

A normal prompt returns one output and stops. /goal wraps the same request in a loop: after Claude generates an output, an evaluator scores it against the requirements you specified. If it does not match, the evaluator sends feedback back to Claude, which regenerates. Only once the output satisfies the requirements does the result come back to you. The course's argument for it is accuracy — you are no longer accepting the first attempt — and it is why the "pixel-perfect, within 2%" answer earlier in the flow matters: that answer becomes the loop's exit condition.

Commands & Code Shown

claude

claude

Purpose: Starts a Claude Code session in whatever folder the terminal is currently in.

When to use: After opening your project folder in VS Code and opening the integrated terminal. The folder you are in defines what the agent can see and write.

claude --dangerously-skip-permissions

claude --dangerously-skip-permissions

Purpose: Starts a session with bypass permissions available — file edits and bash commands run unrestricted, with no AI review step.

When to use: Only in a virtual machine or disposable test environment holding nothing sensitive. The course is explicit that the safety classifier present in auto mode does not run here.

/resume

/resume

Purpose: Lists previous conversations with their age and lets you re-enter one with its context intact.

When to use: After a crash, a reboot, or any time you closed a session and want to continue rather than re-explain the task.

/goal

/goal

Purpose: Runs the request as an autonomous evaluate-and-retry loop instead of a single generation.

When to use: When you can state a checkable success condition and want to walk away. State that condition precisely — it is what the evaluator tests against.

Shift + Tab

Shift + Tab

Purpose: Cycles the active permission mode — plan, accept edits, auto — without leaving the session.

When to use: Constantly. Plan while scoping, accept-edits while building, and drop back to plan before any change you have not thought through.

Ctrl + C (twice)

Ctrl + C   Ctrl + C

Purpose: Terminates the running Claude Code session and returns you to the plain terminal.

When to use: To stop a run in progress. Clicking the terminal's trash icon does the same thing.

Ctrl + `

Ctrl + `

Purpose: Opens and closes the VS Code integrated terminal.

When to use: The fastest way to get to a session; press it again to reclaim the screen for reading files.

Gotchas & Caveats

  • Bypass permissions has no safety net. Auto mode routes bash through a classifier that checks for side effects and escalates when a human is needed. Bypass removes that step entirely — the course scopes it to virtual or test environments with no important data on them.
  • The dev server URL is local only. The link Claude prints after a build works on your machine and nowhere else. Sending it to someone else will not work; deployment is a separate step.
  • Pull assets down before the build loop, not during. The plan was deliberately revised to fetch the image assets locally first. Without that, the agent is guessing at what the assets should look like instead of reading them.
  • "Pixel-perfect" is a much longer loop than "functional". Both are valid answers to the fidelity question, but pixel-perfect sets a 2%-difference exit condition that the evaluator will keep iterating toward.
  • Read the plan before approving it. The refine path — down arrow, then the feedback option — exists precisely because the first plan is a draft. Approving unread is how an unattended run goes somewhere you did not intend.
  • Opening a folder is not optional. Until you open one in VS Code, there is no project directory for the agent to work in.

Key Takeaways

  • An IDE is the recommended home for Claude Code — the desktop app trades away features for simplicity, and a bare terminal gives you no view of what changed.
  • The four permission modes are a spectrum of how much bash execution you are delegating; auto mode's AI review is the meaningful line between "unattended" and "unsupervised".
  • /goal converts a prompt into an evaluator loop, so the quality of your stated success condition determines the quality of the result.
  • Plan mode plus a screenshot plus a URL is enough to reverse-engineer an existing app into a reviewable build plan, complete with design tokens and a data model.
  • Plans are meant to be refined before execution — adding "fetch the assets locally first" measurably improved the build.
  • Skills are portable SOPs for recurring work; the example was a bug-fix pipeline wired to a ticket board.
  • The status line's context-window percentage is the number to watch on long sessions.

Weekly Digest — In Your Inbox

Get the week's top AI agent news, updates, and guides — every Friday.