Skip to content

claude-howto

AI Coding Tools

A step‑by‑step visual guide and template collection for mastering Claude Code, turning basic prompts into production‑ready workflows with tutorials, quizzes, and copy‑paste configs.

Python Latest v2.1.160 · 1d ago Security brief →

Features

  • Structured visual tutorials covering every Claude Code feature
  • Ready‑to‑use config templates (slash commands, hooks, MCP servers, etc.)
  • Guided learning path with time estimates and interactive quizzes

Recent releases

View all 10 releases →
Review required
v2.1.160 Breaking risk

Write‑safety prompts + keyword rename + env var removal

v2.1.138 Breaking risk
⚠ Upgrade required
  • `worktree.baseRef` default changed to `
  • fresh
Breaking changes
  • Plan mode blocks all file writes unconditionally, overriding any `Edit(...)` permission rules.
Notable features
  • `worktree.baseRef` setting (v2.1.133) – controls branch source (`"fresh"` default or `"head"`).
  • `autoMode.hard_deny` admin key (v2.1.136) – array of non‑negotiable classifier block rules.
  • `parentSettingsBehavior` admin key (v2.1.133+, admin-tier) – merge strategy for `managedSettings` (`"first-wins"` or `"merge"`).
Full changelog

Synced to Claude Code v2.1.138

Bumps tutorial coverage from Claude Code v2.1.131 → v2.1.138 (May 9, 2026
release). Anthropic shipped seven patches between v2.1.132 and v2.1.138 since
the last sync.

Added (English docs)

  • worktree.baseRef setting (v2.1.133) — controls whether claude --worktree
    branches from origin/<default> ("fresh", default) or local HEAD
    ("head"). Behavior change: the "fresh" default reverts the v2.1.128
    behavior, so users who relied on local-HEAD branching after v2.1.128 must
    opt back in. Documented in 09-advanced-features/README.md.
  • autoMode.hard_deny admin key (v2.1.136) — array of classifier rules that
    block a class of actions regardless of inferred user intent. Use for
    actions that must never run in auto mode (e.g., rm -rf /, force-push to
    protected branches). Unlike soft_deny, hard-deny rules are not negotiable
    by the classifier. Documented in 09-advanced-features/README.md.
  • parentSettingsBehavior admin key (v2.1.133+, admin-tier) — controls how
    the SDK's managedSettings merges with parent-process settings.
    "first-wins" keeps existing precedence; "merge" deep-merges values.
    Documented in 09-advanced-features/README.md.
  • Setup hook event — initial environment setup (one-time per session); use
    to provision tooling or install deps. Brings the documented hook-events
    total from 28 to 29. Documented in 06-hooks/README.md.
  • effort.level field in hook input JSON (v2.1.133) — exposes the active
    effort level (low/medium/high/xhigh/max) to hooks. Documented in
    06-hooks/README.md.
  • CLAUDE_CODE_SESSION_ID environment variable in Bash subprocesses
    (v2.1.132) — session UUID matching the session_id field in hook input
    JSON, for correlating bash logs with hook telemetry. Documented in
    06-hooks/README.md.
  • CLAUDE_EFFORT environment variable in Bash subprocesses (v2.1.133) —
    active effort level, matching effort.level in hook input JSON. Documented
    in 06-hooks/README.md.
  • sandbox.bwrapPath and sandbox.socatPath settings (v2.1.133+, Linux/WSL)
    — point Claude Code at non-standard install locations for bubblewrap and
    socat. Default to $PATH lookup. Documented in
    09-advanced-features/README.md.
  • CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN environment variable (v2.1.132).
    Documented in 09-advanced-features/README.md.
  • CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL environment variable
    (v2.1.136) — re-enables the session-quality survey for organizations
    capturing OpenTelemetry data; off by default in OTEL deployments.
    Documented in 09-advanced-features/README.md.

Changed

  • Behavior change: Plan mode now blocks all file writes unconditionally
    (v2.1.136), including when a matching Edit(...) rule exists in
    permissions.allow. Previously a permissive Edit(...) rule could let
    writes through in plan mode; that bypass is closed. Workflows that
    depended on the older behavior must exit plan mode (Shift+Tab) before
    editing. Documented in 09-advanced-features/README.md.
  • Plugin spaced slash commands (e.g., /myplugin review) now resolve to
    /myplugin:review. Plugin skills config entries no longer hide the
    default skills/ directory — both are merged. Documented in
    07-plugins/README.md.
  • MCP servers now persist across /clear (v2.1.132+). Documented in
    05-mcp/README.md.
  • Subagents discover project, user, and plugin skills via the Skill tool
    (v2.1.133). Documented in 04-subagents/README.md.
  • --permission-mode is now honored when resuming plan-mode sessions
    (v2.1.132). Documented in 09-advanced-features/README.md.
  • CronList output now includes the qualifier(s) and the scheduled prompt
    body (v2.1.136), so you can audit what each cron will run without opening
    it. Documented in 09-advanced-features/README.md.

Fixed

  • OAuth refresh-token concurrent-refresh race condition.
  • INDEX.md count drift: Skills 28 → 16, Plugins 40 → 27, Hooks scripts
    8 → 9 (recounted from the markdown content tree). The new totals reflect a
    .md-only methodology that scopes counts to tutorial content rather than
    build artifacts and config.
  • Stale source URLs in CATALOG.md (v2.1.118 → v2.1.138) and
    claude_concepts_guide.md (v2.1.117 → v2.1.138). Removed a duplicate
    legacy footer in the concepts guide.

Notes for translation maintainers

The vi/, zh/, uk/, and ja/ localized trees are community-maintained
and may lag the English source. Contributors syncing translations should diff
against the English files updated in this release.

What's Changed

  • fix(markdown): escape pipe chars in markdown tables across zh/en/ja/vi by @iiitutu in https://github.com/luongnv89/claude-howto/pull/115
  • docs: sync to Claude Code v2.1.138 by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/117

New Contributors

  • @iiitutu made their first contribution in https://github.com/luongnv89/claude-howto/pull/115

Full Changelog: https://github.com/luongnv89/claude-howto/compare/v2.1.131...v2.1.138

v2.1.131 Breaking risk
⚠ Upgrade required
  • Set CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 to retain previous automatic model discovery behavior.
  • Deprecation warning: Prior reliance on ANTHROPIC_BASE_URL alone will no longer auto‑populate /v1/models; update configurations accordingly.
Breaking changes
  • Gateway /v1/models discovery is now opt‑in; must set CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 to enable, otherwise falls back to static list.
Notable features
  • --plugin-url flag (repeatable) fetches a plugin .zip from a URL for the current session
  • CLAUDE_CODE_FORCE_SYNC_OUTPUT env var forces synchronous output in terminals with missed auto‑detection
  • CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE enables background upgrades for Homebrew/WinGet installs
Full changelog

Synced to Claude Code v2.1.131

Bumps tutorial coverage from Claude Code v2.1.126 → v2.1.131 (May 6, 2026
release). Anthropic shipped v2.1.128, v2.1.129, and v2.1.131 since the last
sync; v2.1.127 and v2.1.130 were skipped and never released publicly.

Added (English docs)

  • --plugin-url <url> flag (v2.1.129) — fetches a plugin .zip archive from
    a URL for the current session. Repeatable. Documented in
    07-plugins/README.md.
  • CLAUDE_CODE_FORCE_SYNC_OUTPUT env var (v2.1.129) — forces synchronous
    output for terminals where auto-detection misses (e.g., Emacs eat).
    Documented in 10-cli/README.md and 09-advanced-features/README.md.
  • CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE env var (v2.1.129) — enables
    background upgrades for Homebrew/WinGet installs (which normally do not
    auto-update). Documented in 10-cli/README.md and
    09-advanced-features/README.md.
  • CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY env var (v2.1.129) — required
    to opt in to /v1/models gateway discovery (see Changed). Documented in
    10-cli/README.md.
  • disableRemoteControl setting (v2.1.128) — admins can block
    claude remote-control and /remote-control via managed/policy scope.
    Documented in 09-advanced-features/README.md.
  • --plugin-dir accepts .zip archives (v2.1.128) — alongside directory
    inputs. Documented in 07-plugins/README.md.
  • skillOverrides accepts "name-only" and "user-invocable-only"
    (v2.1.129) — in addition to the previous "on"/"off". Documented in
    03-skills/README.md.

Changed

  • Behavior change: Gateway /v1/models discovery is now opt-in
    (v2.1.129). Previously (v2.1.126), setting ANTHROPIC_BASE_URL automatically
    populated /model from the gateway's /v1/models endpoint. From v2.1.129,
    users must additionally set CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1;
    without the env var, /model falls back to the built-in static list.
    Documented in 10-cli/README.md.
  • /mcp shows tool count per server and visually flags servers reporting 0
    tools (v2.1.128). Documented in 05-mcp/README.md.
  • Bare /color (no args) picks a random session color (v2.1.128); explicit
    /color <name|hex> continues to set a specific color. Documented in
    01-slash-commands/README.md.
  • --channels flag now works with API-key (console) authentication
    (v2.1.128). Earlier releases required Pro/Max OAuth. Documented in
    09-advanced-features/README.md.
  • Ctrl+R history picker defaults to all prompts across all projects
    (v2.1.129). Press Ctrl+S inside the picker to narrow scope to the current
    project. Documented in 09-advanced-features/README.md.
  • /context no longer dumps its ASCII visualization into the conversation
    (v2.1.129). The viz is shown in-UI only; no more ~1.6k token cost per
    invocation. Documented in 09-advanced-features/README.md.
  • Oversized images in drag-and-drop are auto-downscaled (v2.1.128) — earlier
    versions rejected images outright.

Fixed

  • VS Code extension activation on Windows (v2.1.131).
  • Mantle endpoint authentication (v2.1.131).
  • 1-hour prompt-cache TTL no longer truncated to 5 minutes (v2.1.129).
  • Crash on stdin payloads larger than 10 MB (v2.1.128).

Notes for translation maintainers

The vi/, zh/, uk/, and ja/ localized trees are community-maintained
and may lag the English source. Contributors syncing translations should diff
against the English files updated in this release.

Full Changelog: https://github.com/luongnv89/claude-howto/compare/v2.1.126...v2.1.131

v2.1.126 Breaking risk
Security fixes
  • Fixed `allowManagedDomainsOnly` / `allowManagedReadPathsOnly` being ignored when a higher‑priority managed‑settings source lacked a `sandbox` block (v2.1.126)
Notable features
  • `claude project purge [path]` subcommand (adds `--dry-run`, `-y/--yes`, `-i/--interactive`, `--all`)
  • `claude plugin prune` removes orphaned auto‑installed plugin dependencies
  • `claude ultrareview [target]` runs `/ultrareview` non‑interactively with JSON output support
Full changelog

Synced to Claude Code v2.1.126

Bumps tutorial coverage from Claude Code v2.1.119 → v2.1.126 (May 1, 2026 release).
v2.1.120 was rolled back on its first release day (2026-04-24) but re-released
successfully on 2026-04-28 with the originally-reported regressions fixed.
v2.1.124 and v2.1.125 were skipped by Anthropic and never released.

Added (English docs)

  • claude project purge [path] subcommand (v2.1.126) — deletes all Claude Code state for a project (transcripts, tasks, debug logs, file-edit history, prompt history, ~/.claude.json entry). Supports --dry-run, -y/--yes, -i/--interactive, --all. Documented in 10-cli/README.md.
  • claude plugin prune subcommand (v2.1.121) — removes orphaned auto-installed plugin dependencies; plugin uninstall --prune cascades. Documented in 07-plugins/README.md.
  • claude ultrareview [target] subcommand (v2.1.120) — runs /ultrareview non-interactively from CI/scripts, prints findings to stdout, exits 0/1 on success/failure; supports --json and --timeout <minutes>. Documented in 10-cli/README.md.
  • ${CLAUDE_EFFORT} placeholder available inside skill content (v2.1.120) — resolves to the current effort level. Documented in 03-skills/README.md.
  • alwaysLoad MCP server config option (v2.1.121) — when true, all tools from that server skip tool-search deferral. Documented in 05-mcp/README.md.
  • PostToolUse.hookSpecificOutput.updatedToolOutput now works for all tools (v2.1.121), previously MCP-only. Documented in 06-hooks/README.md.
  • ANTHROPIC_BEDROCK_SERVICE_TIER environment variable (v2.1.122) — selects Bedrock service tier (default, flex, priority).
  • --dangerously-skip-permissions extended-path coverage (v2.1.121, v2.1.126) — now bypasses prompts for writes to .claude/skills/, .claude/agents/, .claude/commands/, .claude/, .git/, .vscode/, shell config files. Catastrophic removal commands (rm -rf / etc.) still prompt.
  • OAuth code paste fallback (v2.1.126) — claude auth login accepts the OAuth code pasted into the terminal when the browser callback can't reach localhost (WSL2, SSH, containers).
  • Type-to-filter /skills menu (v2.1.121).
  • AI_AGENT environment variable (v2.1.120) — set on subprocesses so gh can attribute traffic to Claude Code.

Changed

  • --from-pr (v2.1.119) and /resume PR-URL search (v2.1.122) now both support GitHub, GitHub Enterprise, GitLab, and Bitbucket URLs.
  • Windows: Git for Windows / Git Bash no longer required (v2.1.120). From v2.1.126, PowerShell is the primary shell when the PowerShell tool is enabled. Detection extended to PowerShell 7 installed via Microsoft Store, MSI without PATH, or .NET global tool.
  • /model picker now lists models from your gateway's /v1/models endpoint when ANTHROPIC_BASE_URL points at an Anthropic-compatible gateway (v2.1.126).
  • Image paste auto-downscale (v2.1.126) — images larger than 2000px are downscaled on paste; oversized images in history are auto-removed and the request retried.

Security

  • Fixed allowManagedDomainsOnly / allowManagedReadPathsOnly being ignored when a higher-priority managed-settings source lacked a sandbox block (v2.1.126).

See CHANGELOG.md for full details.

What's Changed

  • docs: sync to Claude Code v2.1.119 by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/94
  • fix: replace invalid diff tool with bash in security-reviewer agents by @xiaolai in https://github.com/luongnv89/claude-howto/pull/89
  • fix: pin requirements.txt to known-good versions by @xiaolai in https://github.com/luongnv89/claude-howto/pull/90
  • fix: constrain cross-reference resolution to repo root by @xiaolai in https://github.com/luongnv89/claude-howto/pull/91
  • test(scripts): cover repo-root boundary in check_cross_references by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/95
  • docs(plugins): clarify marketplace update vs plugin update and add auto-update documentation by @lzw-git-all in https://github.com/luongnv89/claude-howto/pull/84
  • docs(skills): improve skill loading process diagram clarity by @lzw-git-all in https://github.com/luongnv89/claude-howto/pull/81
  • fix(advanced-features): correct effort level model support by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/96
  • docs(skills): question-bank fixes by @OleksandrDemidov in https://github.com/luongnv89/claude-howto/pull/97
  • feat(hooks): add SessionEnd progress logger and local progress tracker by @DhanyaJose in https://github.com/luongnv89/claude-howto/pull/87
  • fix(cli): correct agent priority order to match official docs by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/100
  • docs(hooks): fix README divergence in Example 8 SessionEnd hook by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/101
  • docs: sync to Claude Code v2.1.119 (delta from 2026-04-24 plan) by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/102
  • feat(i18n): Add Japanese (ja/) translation by @Foxsunshine in https://github.com/luongnv89/claude-howto/pull/105
  • fix(memory): correct quiz Q2 answer from discontinued # prefix to /memory by @jeffreyyjp in https://github.com/luongnv89/claude-howto/pull/107
  • fix(extended-thinking): correct fictional /think command to valid ultrathink keyword by @lzw-git-all in https://github.com/luongnv89/claude-howto/pull/83
  • fix(quiz): correct Q4 extended thinking toggle wording by @lzw-git-all in https://github.com/luongnv89/claude-howto/pull/109
  • fix(skills): reference templates and scripts from code-review SKILL.md by @muratclk in https://github.com/luongnv89/claude-howto/pull/62
  • fix(lesson-quiz): shuffle answer options and add per-round feedback by @seanxue in https://github.com/luongnv89/claude-howto/pull/76
  • docs: sync to Claude Code v2.1.126 by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/111

New Contributors

  • @xiaolai made their first contribution in https://github.com/luongnv89/claude-howto/pull/89
  • @lzw-git-all made their first contribution in https://github.com/luongnv89/claude-howto/pull/84
  • @OleksandrDemidov made their first contribution in https://github.com/luongnv89/claude-howto/pull/97
  • @DhanyaJose made their first contribution in https://github.com/luongnv89/claude-howto/pull/87
  • @Foxsunshine made their first contribution in https://github.com/luongnv89/claude-howto/pull/105
  • @jeffreyyjp made their first contribution in https://github.com/luongnv89/claude-howto/pull/107
  • @muratclk made their first contribution in https://github.com/luongnv89/claude-howto/pull/62
  • @seanxue made their first contribution in https://github.com/luongnv89/claude-howto/pull/76

Full Changelog: https://github.com/luongnv89/claude-howto/compare/v2.1.112...v2.1.126

v2.1.112 New feature
Notable features
  • Complete Ukrainian (uk) localization across all modules, root docs, examples, references
Full changelog

v2.1.112 — 2026-04-16

Highlights

  • Sync all English tutorials with Claude Code v2.1.112 and the new Opus 4.7 model (claude-opus-4-7), including the new xhigh effort level (default on Opus 4.7, between high and max), two new built-in slash commands (/ultrareview, /less-permission-prompts), auto-mode no longer requiring --enable-auto-mode for Max subscribers on Opus 4.7, the PowerShell tool on Windows, the "Auto (match terminal)" theme, and plan files named after prompts. All 18 EN doc footers bumped to Claude Code v2.1.112. @Luong NGUYEN

Features

  • Add complete Ukrainian (uk) localization across all modules, root docs, examples, and references (#039dde2) @Evgenij I

Bug Fixes

  • Correct pre-tool-check.sh hook protocol bugs (bce7cf8) @yarlinghe
  • Change bad mermaid example to text block to pass CI (b8a7b1f) @Evgenij I
  • Fix CP1251 encoding in Ukrainian claude_concepts_guide.md ToC (d970cc6) @Evgenij I
  • Replace stub Ukrainian README with full translation, fix broken anchors (f6d73e2) @Evgenij I
  • Correct Claude Code version to 2.1.97 across all footers (63a1416) @Luong NGUYEN
  • Apply 2026-04-09 documentation accuracy updates (e015f39) @Luong NGUYEN

Documentation

  • Sync to Claude Code v2.1.112 (Opus 4.7, xhigh effort, /ultrareview, /less-permission-prompts, PowerShell tool, Auto-match-terminal theme) — uncommitted working-tree update landed with this release @Luong NGUYEN
  • Sync to Claude Code v2.1.110 (TUI, push notifications, session recap) (15f0085) @Luong NGUYEN
  • Sync to Claude Code v2.1.101 with /team-onboarding, /ultraplan, Monitor tool (2deba3a) @Luong NGUYEN
  • Sync Vietnamese documentation with English source (561c6cb) @Thiên Toán
  • Update Last Updated date and Claude Code version across all files (7f2e773) @Luong NGUYEN
  • Add Ukrainian language link to language switcher (9c224ff) @Luong NGUYEN
  • Remove contributors section (f07313d) @Luong NGUYEN
  • Update GitHub metrics to 21,800+ stars, 2,585+ forks (4f55374) @Luong NGUYEN

Full Changelog: https://github.com/luongnv89/claude-howto/compare/v2.3.0...v2.1.112

What's Changed

  • docs(vi): sync Vietnamese documentation with English source by @toanalien in https://github.com/luongnv89/claude-howto/pull/60
  • docs: sync to Claude Code v2.1.101 with /team-onboarding, /ultraplan, Monitor tool by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/73
  • fix(hooks): correct pre-tool-check.sh hook protocol bugs by @yarlinghe in https://github.com/luongnv89/claude-howto/pull/72
  • i18n(uk): Add complete Ukrainian localization by @edocltd in https://github.com/luongnv89/claude-howto/pull/64
  • docs: sync to Claude Code v2.1.110 (TUI, push notifications, session recap) by @luongnv89 in https://github.com/luongnv89/claude-howto/pull/80

New Contributors

  • @yarlinghe made their first contribution in https://github.com/luongnv89/claude-howto/pull/72
  • @edocltd made their first contribution in https://github.com/luongnv89/claude-howto/pull/64

Full Changelog: https://github.com/luongnv89/claude-howto/compare/v2.3.0...v2.1.112

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
34,829
Forks
4,243
Languages
Python Shell HTML

Beta — feedback welcome: [email protected]