Claude 101
layout: cover kicker: Claude Code · Getting started title: Claude 101 subtitle: An AI that does the work in your terminal
layout: agenda title: What we'll cover items:
- { topic: What it is, desc: "the agentic loop, where it runs" }
- { topic: Install & first run, desc: "one command, then you're in" }
- { topic: Tools & permissions, desc: "what it can touch, what it asks first" }
- { topic: CLAUDE.md, desc: "standing instructions per project" }
- { topic: Context & memory, desc: "the window, /clear, what it remembers" }
- { topic: Git & good prompts, desc: "commits, PRs, asking well" }
layout: define kicker: The basics term: What is Claude Code? definition: An agentic coding assistant that lives in your terminal — it reads your code, runs commands, and makes changes, not just suggests them. points:
- "Not autocomplete — it acts: edits files, runs tests, opens PRs"
- "You stay in control — it asks before risky things"
- "Same engine everywhere: terminal, VS Code, JetBrains, web"
layout: columns kicker: One tool, two angles title: What it does · where it runs columns:
- { title: "It can…", items: ["Read & edit files across the repo", "Run shell commands, tests, builds", "Search code (grep / glob) & the web", "Make commits and open PRs", "Connect to your tools via MCP"] }
- { title: "You run it from…", items: ["Terminal — the claude CLI", "VS Code & JetBrains extensions", "Desktop app (macOS / Windows)", "Web — claude.ai/code", "Scripts & CI — headless -p mode"] }
layout: steps kicker: How it works title: The agentic loop ghost: "∞" steps:
- { title: Gather, desc: "reads files, searches code, asks if unclear", icon: "lucide:search" }
- { title: Act, desc: "edits files, runs commands", icon: "lucide:pencil" }
- { title: Verify, desc: "runs tests, checks output", icon: "lucide:check-check" }
- { title: Iterate, desc: "adjusts from what it sees", icon: "lucide:refresh-cw" }
layout: statement kicker: You're never locked out title: Press Esc to stop it mid-task. Type to redirect. You're always in the loop.
layout: default kicker: Setup title: Install & first run
One command installs it and keeps it updated:
macOS/Linux/WSL: the install.sh script. Windows: install.ps1. Also on Homebrew & winget.
layout: reference kicker: The toolbox title: Core tools it uses groups:
- { title: Files, items: [{ term: "Read", desc: "view a file" }, { term: "Edit", desc: "change an existing file" }, { term: "Write", desc: "create a new file" }, { term: "Glob / Grep", desc: "find files / search content" }] }
- { title: Doing & finding out, items: [{ term: "Bash", desc: "run any shell command" }, { term: "WebSearch / WebFetch", desc: "look things up online" }, { term: "Agent", desc: "spin off a focused subagent" }] }
layout: default kicker: Speed trick title: Run a shell command inline
Prefix anything with ! straight from the prompt — handy to feed Claude context without leaving the session:
You can also pipe into it: git diff then pipe to claude -p "review this".
layout: default kicker: Permissions title: Decide how much it does without asking
| Mode | Edits | Commands | Use when |
|---|---|---|---|
| default | asks | asks | starting out |
| acceptEdits | free | asks | you trust the edits |
| plan | none | asks | exploring before doing |
| auto | free | free | long tasks, less babysitting |
Cycle modes anytime with Shift+Tab. Allowlist trusted commands in .claude/settings.json so you stop getting asked.
layout: define kicker: Standing instructions term: CLAUDE.md definition: A markdown file Claude reads at the start of every session — your project's house rules. points:
- "Put in it: build & test commands, code style, conventions, gotchas"
- "Run /init to generate a first draft automatically"
- "Layers: ./CLAUDE.md (team, in git) + ~/.claude/CLAUDE.md (just you)"
- "Keep it tight — under ~200 lines, or adherence drops"
layout: vs kicker: Two kinds of memory title: CLAUDE.md vs auto memory left: { title: "CLAUDE.md", items: ["You write it", "Rules & instructions", "Versioned in git, shared", "Read every session"] } right: { title: "Auto memory", items: ["Claude writes it", "Things it learned", "Per project, local to you", "Browse / edit with /memory"] } label: vs
layout: panels kicker: Context title: Keep the window healthy panels:
- { icon: "lucide:gauge", title: "See usage", items: ["/context shows what's filling it", "status line shows % live"] }
- { icon: "lucide:eraser", title: "Reset often", items: ["/clear between unrelated tasks", "stale context = worse answers"] }
- { icon: "lucide:archive", title: "When it's full", items: ["/compact summarizes it", "CLAUDE.md re-read fresh after"] }
- { icon: "lucide:split", title: "Offload", items: ["use subagents for big digs", "keeps the main thread clean"] }
layout: reference kicker: Cheat sheet title: Slash commands you'll actually use groups:
- { title: Everyday, items: [{ term: "/clear", desc: "reset the conversation" }, { term: "/init", desc: "generate CLAUDE.md" }, { term: "/context", desc: "see context usage" }, { term: "/compact", desc: "compress context" }] }
- { title: Work, items: [{ term: "/commit", desc: "stage & commit" }, { term: "/review", desc: "review the diff" }, { term: "/model", desc: "switch model" }, { term: "/memory", desc: "browse what it remembers" }] }
layout: default kicker: Git title: It handles the git plumbing
Just ask — Claude reviews the diff, writes a real message, and runs it:
/review for a diff review, /security-review to scan for vulnerabilities before you push.
layout: two-cols kicker: The one skill that matters title: Ask well, get good results
Vague — you'll iterate a lot:
"add tests for foo.py"
Specific — it nails it first try:
"write pytest tests for foo.py covering the logged-out case. No mocks. Run them after."
::right::
A good prompt usually has three parts:
- Where — which file / area
- What — the exact scenario or change
- Check — "run the tests", "verify it builds"
Exploring something unfamiliar? Start in plan mode, let it read first, review the plan, then let it build.