The Definitive Learning Platform
Master
AI-Powered
Coding Tools
Claude Code · Ollama + Gemma 4 · GitHub Copilot
Learning Path
Your Roadmap to Mastery
Six phases, from first install to advanced workflows. Each phase builds on the last.
Environment Setup
Install Node.js, Git for Windows, Claude Code CLI, Ollama, and pull Gemma 4. Verify everything works.
- Install Git for Windows
irm https://claude.ai/install.ps1 | iexollama pull gemma4- Run
claude --versionto verify
Claude Code Fundamentals
Learn to navigate projects, edit files, run commands, and have conversations with your codebase.
- Run
claudein any project to start - Ask questions about your code
- Let Claude edit files and run tests
- Use
/helpto see all commands
CLAUDE.md & Memory
Give Claude persistent context with instruction files and let it learn automatically from your corrections.
- Create
CLAUDE.mdin your project root - Run
/initto auto-generate instructions - Organize rules in
.claude/rules/ - Use auto memory for learned preferences
Local AI with Ollama + Gemma 4
Run frontier-level AI locally. Understand model sizes, thinking modes, and multimodal inputs.
- Choose model size: E2B, E4B, 26B, or 31B
ollama launch claude --model gemma4- Enable thinking with
<|think|> - Pass images and audio for multimodal tasks
GitHub Copilot & Multi-Tool Workflows
Combine Claude Code with GitHub Copilot for the ultimate coding setup. Know when to use which tool.
- Copilot for inline autocomplete
- Claude Code for agentic multi-file tasks
- Copilot Chat in VS Code sidebar
- Use both together without conflicts
Advanced Patterns & Deployment
Skills, hooks, subagents, CI/CD integration, headless mode, and team workflows at scale.
- Create custom skills for repeatable tasks
- Use hooks for pre/post command logic
- GitHub Actions with Claude Code
- Team-wide CLAUDE.md deployment
Deep Dive
Claude Code
An agentic coding tool by Anthropic that reads your codebase, edits files, runs commands, and integrates with your entire dev stack.
Get Started in 60 Seconds
Requires Git for Windows. Install it first from git-scm.com, then open PowerShell:
irm https://claude.ai/install.ps1 | iex
Verify with:
claude --version
curl -fsSL https://claude.ai/install.sh | bash
Then start in any project:
cd your-project
claude
Requires a Pro, Max, Team, Enterprise, or Console account. Auto-updates in the background.
Essential Commands
claudeStart interactive session/initGenerate CLAUDE.md for project/helpList all available commands/memoryView and manage memory files/compactCompress context windowclaude updateUpdate to latest versionclaude doctorDiagnose installation issuesPermission Modes
Claude Code asks permission before running commands or editing files. Three built-in modes:
Start with Ask mode. Graduate to auto-edit when you trust the workflow.
What Claude Code Does
- Reads and understands your entire codebase
- Edits multiple files in coordinated changes
- Runs shell commands, tests, and builds
- Creates commits and pull requests
- Connects external tools via MCP servers
- Runs custom agent teams (subagents)
- Works in Terminal, VS Code, JetBrains, Desktop, Web
Best Practices
- Be specific in your requests — "fix the login bug in auth.ts" beats "fix bugs"
- Let Claude explore first — "what does this codebase do?" before asking for changes
- Use
/compactin long sessions to free context space - Write a
CLAUDE.mdso Claude knows project conventions from the start - Review changes before committing — Claude is good, but verify
Configuration
Understanding CLAUDE.md
Markdown files that give Claude persistent instructions. Written by you, read at the start of every session.
Where to Place CLAUDE.md Files
C:\Program Files\ClaudeCode\CLAUDE.md
Company-wide standards managed by IT
~/.claude/CLAUDE.md
Your personal preferences for all projects
./CLAUDE.md or ./.claude/CLAUDE.md
Team-shared project instructions (via Git)
./CLAUDE.local.md
Personal project-specific prefs (gitignored)
More specific files take precedence. All discovered files concatenate — they don't override.
Effective Instructions
- Keep it under 200 lines per file
- Use markdown headers and bullets
- Be specific:
"Use 2-space indentation"not"Format code properly" - Include build/test commands
- Remove conflicting or outdated rules
- Use
@path/to/fileto import other files
.claude/rules/ Directory
your-project/
├── .claude/
│ ├── CLAUDE.md
│ └── rules/
│ ├── code-style.md
│ ├── testing.md
│ └── security.md
Rules can be path-scoped with YAML frontmatter:
---
paths:
- "src/api/**/*.ts"
---
# API Rules
- Validate all inputs
- Use standard error format
Claude Learns Automatically
Auto memory lets Claude save notes for itself across sessions — build commands, debugging insights, your preferences.
/memoryBrowse and manage saved memoriesMEMORY.mdIndex file (first 200 lines loaded)Stored at ~/.claude/projects/<project>/memory/
Auto memory is plain markdown you can read, edit, or delete anytime.
Sample CLAUDE.md
# Project Instructions
## Build
- `npm run dev` to start dev server
- `npm test` to run jest tests
## Code Style
- Use TypeScript strict mode
- 2-space indentation
- Prefer named exports
- API handlers in src/api/handlers/
## Workflow
- Run tests before committing
- Use conventional commits
- Never push to main directly
## Architecture
@docs/architecture.md
Reference
Claude Code Slash Commands
Type / in Claude Code to see all available commands. Here is the complete reference.
Session Management
/clearClear conversation history and free context. Aliases: /reset, /new/compact [instructions]Compress conversation with optional focus instructions/resume [session]Resume by ID/name or open picker. Alias: /continue/rename [name]Rename current session, shows in prompt bar/branch [name]Branch conversation at this point. Alias: /fork/rewindRewind to a previous point. Alias: /checkpoint/exitExit the CLI. Alias: /quit/export [filename]Export conversation as plain text/copy [N]Copy last (or Nth) assistant response to clipboardConfiguration & Setup
/initGenerate CLAUDE.md guide for your project/configOpen Settings (theme, model, output). Alias: /settings/memoryEdit CLAUDE.md, toggle auto-memory, view entries/permissionsManage allow/ask/deny tool rules. Alias: /allowed-tools/model [model]Select or change AI model. Arrow keys for effort/effort [low|med|high|max]Set model effort. max = Opus 4.6 only/fast [on|off]Toggle fast mode on or off/themeChange color theme (light, dark, colorblind)/color [color]Set prompt bar color for this session/keybindingsOpen keybindings configuration/terminal-setupConfigure terminal keybindings (Shift+Enter etc.)Tools & Integrations
/hooksView hook configurations for tool events/mcpManage MCP server connections and OAuth auth/pluginManage Claude Code plugins/skillsList available skills/agentsManage agent configurations/ideManage IDE integrations and status/chromeConfigure Claude in Chrome settings/add-dir <path>Add working directory for file accessAnalytics & Debugging
/costShow token usage statistics/usageShow plan limits and rate limit status/statsVisualize daily usage, sessions, streaks/contextVisualize context usage as a colored grid/diffInteractive diff viewer for uncommitted changes/doctorDiagnose and verify your installation/insightsAnalyze your Claude Code sessions/helpShow help and available commandsAccount & Workflow
/loginSign in to Anthropic account/logoutSign out from your account/plan [desc]Enter plan mode, optionally with a task/ultraplan <prompt>Draft plan, review in browser, execute/security-reviewAnalyze branch changes for vulnerabilities/tasksList and manage background tasks/schedule [desc]Create/list Cloud scheduled tasks/remote-controlMake session available from claude.ai. Alias: /rc/desktopContinue session in Desktop app. Alias: /appCommunity & Extras
/btw <question>Ask a quick side question without polluting context/voiceToggle push-to-talk voice dictation/feedback [report]Submit feedback or bug report/release-notesInteractive changelog version picker/powerupQuick interactive feature lessons with demos/statuslineConfigure Claude Code's status line/extra-usageConfigure extra usage for rate limits/upgradeOpen upgrade page for higher plan tier/privacy-settingsView and update privacy settings (Pro/Max)/mobileQR code for Claude mobile app/stickersOrder Claude Code stickersBundled Skills (Slash Commands)
/simplifySimplify and clean up code/batchBatch operations across multiple files/debugDebug an issue with Claude's help/loopIterative loop until condition is met/install-github-appSet up Claude GitHub Actions app/install-slack-appInstall Claude Slack app (OAuth flow)/reload-pluginsReload all active pluginsCLI Reference
CLI Flags & Arguments
Launch-time flags that customize how Claude Code behaves. Run claude --help for a quick overview.
Session & Conversation
claudeStart interactive sessionclaude "query"Start with initial promptclaude -p "query"Print mode (pipe-friendly)claude -cContinue most recent conversationclaude -r <id>Resume session by ID/nameclaude -n "name"Name the sessionclaude updateUpdate to latest versionclaude auth loginSign in (--console for API billing)claude auth statusShow auth status as JSONclaude doctorDiagnose installationclaude agentsList all configured subagentsclaude mcpConfigure MCP serversclaude pluginManage pluginsModel & Permission Flags
--modelSet model (sonnet, opus, or full name)--effortSet effort: low, medium, high, max--permission-modedefault, acceptEdits, plan, auto, dontAsk--enable-auto-modeUnlock auto mode in Shift+Tab cycle--allowedToolsTools that execute without prompting--disallowedToolsTools removed from model context--toolsRestrict which built-in tools are available--agentSpecify agent for session--agentsDefine custom subagents via JSONPrompt Customization
--system-promptReplace entire default prompt--system-prompt-fileReplace with file contents--append-system-promptAppend to default prompt--append-system-prompt-fileAppend file contents to promptFor most use cases, use append flags. They preserve Claude's built-in capabilities while adding your requirements.
Output Control
--output-formattext, json, or stream-json--json-schemaValidated JSON matching a schema--max-turnsLimit agentic turns (print mode)--max-budget-usdMaximum dollar spend before stopping--fallback-modelAuto-fallback when overloaded--verboseFull turn-by-turn output--debugDebug mode with category filteringWorktrees, Remote & Advanced
--worktree, -wIsolated git worktree session--tmuxCreate tmux session (with --worktree)--remoteNew web session on claude.ai--remote-controlStart Remote Control server--teleportResume web session in local terminal--chromeEnable Chrome browser integration--bareMinimal mode: skip hooks, skills, plugins--add-dirAdd extra working directories--mcp-configLoad MCP servers from JSON--settingsLoad additional settings JSON--init-onlyRun init hooks then exitAutomation
Hooks
User-defined shell commands, HTTP endpoints, or LLM prompts that execute automatically at specific lifecycle points. The power-user feature.
What Are Hooks?
Hooks fire at specific points during a Claude Code session. When an event fires and a matcher matches, Claude Code passes JSON context to your handler. Hooks have 4 types:
Hooks are configured in JSON settings files at user, project, or local scope.
Hook Lifecycle Events
Every event in Claude Code's lifecycle where hooks can fire:
Session Lifecycle
SessionStartSession begins or resumesSessionEndSession terminatesUserPromptSubmitUser submits a prompt (can block)InstructionsLoadedCLAUDE.md or rules loadedConfigChangeSettings file changes (can block)CwdChangedWorking directory changesFileChangedWatched file changes on diskTool Lifecycle
PreToolUseBefore tool executes (can block/allow/deny/defer)PostToolUseAfter tool succeedsPostToolUseFailureAfter tool failsPermissionRequestPermission dialog appears (can allow/deny)PermissionDeniedAuto-mode denies tool (can retry)Agents & Tasks
SubagentStartSubagent spawnedSubagentStopSubagent finishedTaskCreatedTask being created (can block)TaskCompletedTask marked complete (can block)TeammateIdleTeam member about to idle (can block)Completion & Misc
StopClaude finishes (can prevent stopping)StopFailureTurn ends due to API errorNotificationNotification sent to userPreCompactBefore context compactionPostCompactAfter compaction completesWorktreeCreateWorktree being createdWorktreeRemoveWorktree being removedElicitationMCP server requests user inputElicitationResultUser responds to MCP elicitationWhere to Define Hooks
~/.claude/settings.jsonAll projects (user scope).claude/settings.jsonSingle project (commit to repo).claude/settings.local.jsonPersonal project (gitignored)Managed policyOrganization-wide (admin)Plugin hooksBundled with pluginSkill/agent frontmatterYAML in component fileHow Hooks Respond
Or return JSON on exit 0 for richer control:
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "Destructive command blocked"
}
}
Block Destructive Commands
A PreToolUse hook that prevents rm -rf:
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"if": "Bash(rm *)",
"command": ".claude/hooks/block-rm.sh"
}]
}]
}
}
The script reads JSON stdin, checks the command, and returns permissionDecision: "deny" if it contains rm -rf.
Background & Prompt Hooks
- Async hooks — Add
"async": trueto run in background while Claude continues - Prompt hooks — LLM evaluates conditions with yes/no JSON response
- Agent hooks — Subagent with tool access verifies before deciding
- HTTP hooks — POST to a URL, response body for decisions
- PowerShell — Set
"shell": "powershell"for Windows hooks - MCP matching — Use
mcp__server__toolpatterns in matchers - disableAllHooks — Temporarily turn off all hooks in settings
- Run
claude --debugto see hook execution details
Local AI
Ollama + Gemma 4
Run frontier-level AI on your own hardware. No cloud, no API keys, full privacy.
Getting Started with Ollama
Ollama is a local AI runtime. Install it, pull a model, and start chatting — or launch Claude Code with it.
Download from ollama.com/download for Windows, macOS, or Linux.
ollama pull gemma4
ollama run gemma4
ollama launch claude --model gemma4
Gemma 4 Model Sizes
E4B is the sweet spot for most developers. 26B uses Mixture-of-Experts with only 3.8B active params.
What Makes Gemma 4 Special
- Multimodal — text, image, and audio input (E2B/E4B)
- Thinking mode — configurable reasoning with
<|think|> - Native tool calling — function calling for agentic workflows
- System prompts — native
systemrole support - Variable resolution — token budgets for image detail control
- 128K–256K context — process long documents locally
Recommended Settings
For best results with Gemma 4:
temperature1.0top_p0.95top_k64For thinking mode, include <|think|> at the start of the system prompt. In multi-turn conversations, strip thoughts from history — only keep final responses.
Multi-Tool Strategy
GitHub Copilot & Others
Different tools shine in different areas. Use them together for maximum productivity.
Complete Feature Set
Copilot lives inside your editor and provides AI assistance through multiple surfaces:
- Ghost text autocomplete — real-time inline code suggestions as you type
- Copilot Chat — sidebar conversations (Ctrl+Alt+I) for multi-turn Q&A
- Inline chat — in-place code edits (Ctrl+I) right in the editor
- Quick chat — lightweight panel (Ctrl+Shift+Alt+L) for fast questions
- Agent mode — autonomous multi-file editing with tool access
- CLI —
code chatfrom terminal for outside-editor access - PR summaries — auto-generated pull request descriptions
- Works with VS Code, JetBrains, Visual Studio, Neovim, Xcode
Chat Slash Commands
Type / in any Copilot Chat input:
/clearStart a new chat session/explainExplain how active editor code works/fixPropose a fix for problems in selected code/fixTestFailureFind and fix a failing test/helpQuick reference for using Copilot/newCreate a new project scaffold/testsGenerate unit tests for selected code/compactCompress conversation context/searchSearch workspace for code (also @vscode)/newNotebookCreate a new Jupyter notebook/setupTestsSet up test framework for project/initGenerate workspace instructions file/create-promptCreate reusable .prompt.md file/planResearch and plan with Plan agent/deleteDelete a conversation/renameRename a conversationChat Participants
Type @ to invoke domain-specific experts:
@workspaceContext about project structure and code interaction@vscodeContext about VS Code commands and features@terminalContext about terminal shell and contents@githubGitHub-specific skills (issues, PRs, repos)@azureAzure services, deployment, and managementContext Variables
Type # to attach specific context:
#fileInclude a specific file's content#selectionCurrently selected text#codebaseFull codebase context#terminalSelectionTerminal output#functionCurrent function or method#classCurrent class#blockCurrent code block#lineCurrent line of code#commentCurrent comment#symCurrent symbol#pathFile path#projectProject context#fetchFetch content from a URLAgent Types & Permissions
Choose how Copilot operates in chat:
Session types: Local (interactive in editor), Background, or Cloud.
Permission levels control tool approval autonomy.
Extending Copilot
- .github/copilot-instructions.md — project-wide custom instructions
- .prompt.md files — reusable prompt templates
- Custom agents — specialized .agent.md workflows
- MCP servers — connect external tools and APIs
- Checkpoints — auto-snapshots for rollback
- Vision — attach images/screenshots as context
- Agent Debug view — inspect raw prompts and tool payloads
When to Use What
The ideal setup: Copilot for real-time autocomplete, Claude Code for complex tasks, Ollama for offline/private work.
Using Them Together
- Start typing — Copilot suggests inline completions
- Hit a wall — ask Copilot Chat for explanations
- Need multi-file changes — switch to Claude Code CLI
- Working offline — use Ollama + Gemma 4 locally
- Code review — Claude Code creates the PR with description
- Sensitive code — keep it local with Ollama
Memory Station
Flashcards & Quick Recall
Click any card to flip it. Practice until you can answer without peeking. Spaced repetition: review today, tomorrow, then in 3 days.
Quick Reference
Cheat Sheet
Claude Code CLI
claudeStart sessionclaude "task"One-shot promptclaude -p "q"Print mode (pipe-friendly)claude --resumeResume last sessionclaude --model opusUse specific modelclaude --effort highSet effort levelclaude --worktreeIsolated git worktreeclaude --bare -pMinimal fast modeclaude doctorDiagnose installationclaude agentsList subagentsKey Slash Commands
/initGenerate CLAUDE.md/memoryManage memory/compactCompress context/configOpen settings/hooksView hook configs/plan [desc]Enter plan mode/diffInteractive diff viewer/security-reviewSecurity scan changes/btw <q>Side question/voicePush-to-talk dictationOllama
ollama pull gemma4Download modelollama run gemma4Chat locallyollama listShow installed modelsollama rm gemma4Remove modelollama serveStart API serverollama launch claude --model gemma4Claude + Gemma 4Copilot Essentials
/explainExplain code/fixPropose fix/testsGenerate tests@workspaceProject context@terminalTerminal context#fileInclude specific file#codebaseFull codebase contextCtrl+Alt+IOpen Chat viewCtrl+IInline chatTabAccept ghost textHook Events
PreToolUseBlock/allow toolsPostToolUseAfter tool successStopPrevent stoppingSessionStartLoad contextUserPromptSubmitFilter promptsTaskCompletedEnforce quality gatesexit 0Allow (parse JSON)exit 2Block (stderr → Claude)CLAUDE.md Patterns
./CLAUDE.mdProject-wide~/.claude/CLAUDE.mdUser-wide./CLAUDE.local.mdPersonal+gitignored.claude/rules/*.mdModular rules@path/to/fileImport syntaxpaths: ["**/*.ts"]Scoped rules frontmatter