> After 500+ hours inside Claude's ecosystem, these are the features that genuinely transform day-to-day work. ranked by real impact, not hype.


Introduction

Claude Code has quietly become one of the most powerful AI-assisted coding tools available. But with dozens of features, slash commands, and configuration options, it's easy to miss the ones that actually matter.

Nate Herk spent over 500 hours testing every Claude Code feature he could find, then ranked them from D-tier (useful but basic) all the way up to S-tier (workflow-changing). His ranking isn't about which features are the coolest. it's about which ones essentially change how you work day to day.

Here's a deep dive into the top 12 features, with practical examples, use cases, and tips to help you get the most out of each one.


12. CLAUDE.md. The Foundation of Everything

Tier: D (Essential Groundwork)

CLAUDE.md is the single most important file in your project. It's how you tell Claude Code who you are, what you're building, and how you want things done.

What It Does

CLAUDE.md lives in your project root and acts as persistent instructions that Claude Code reads every session. Think of it as a briefing document for your AI assistant.

Practical Example

``markdown # Project: E-Commerce API

Tech Stack

  • Node.js with Express
  • PostgreSQL with Prisma ORM
  • Jest for testing

Code Style

  • Use TypeScript strict mode
  • Prefer named exports over default exports
  • Use async/await, never raw callbacks
  • Keep functions under 30 lines

Conventions

  • API routes go in /src/routes/
  • Middleware goes in /src/middleware/
  • Database queries always use Prisma, never raw SQL
  • Error handling: use custom AppError class
`

Tips

  • Be specific. Vague instructions like "write good code" don't help. Concrete rules like "use 2-space indentation" and "prefer const over let" do.
  • Update it as your project evolves. Your CLAUDE.md should grow with your codebase.
  • Use it for context, not just rules. Document your architecture decisions, key files, and project goals.

11. Slash Commands. Your Command Center

Tier: C (Convenient but Expected)

Slash commands are the built-in CLI interface of Claude Code. They're not glamorous, but they're how you interact with the tool's core functionality.

Key Commands Worth Knowing

| Command | What It Does | |---------|-------------| | /init | Initialize CLAUDE.md for your project | | /compact | Compress conversation history to save context | | /clear | Clear the current conversation | | /cost | Check token usage and estimated cost | | /doctor | Diagnose configuration issues | | /review | Review recent changes | | /compact | Summarize and compress the conversation |

Tips

  • Use /compact liberally. Long conversations eat context. Compacting keeps the important stuff and discards the noise.
  • Run /doctor if things feel off. It catches common configuration problems fast.

10. Memory. Claude Remembers What Matters

Tier: B (Genuinely Useful)

Claude Code's memory system lets it retain information across sessions. This is what transforms it from a one-shot code generator into a persistent development partner.

How It Works

You can tell Claude to remember things, and it will store them for future sessions:

` "Remember that our API uses bearer token auth with a 24-hour expiry." "Remember that the database migration files are in /db/migrations, not /migrations." `

Claude stores these memories and references them in future conversations, so you don't have to repeat yourself.

Use Cases

  • Project-specific conventions that aren't in CLAUDE.md
  • Team decisions made during development ("We decided to use Redis for caching, not Memcached")
  • Debugging context ("The staging server has a different API version than production")
  • Personal preferences ("I prefer functional programming patterns over OOP in this codebase")

Tips

  • Be explicit about what to remember. Don't assume Claude will infer importance.
  • Periodically review and clean up memories. Outdated information can cause confusion.

9. The Plan Mode. Think Before You Code

Tier: B (Prevents Costly Mistakes)

Plan mode is one of Claude Code's most underrated features. Before Claude writes any code, it lays out a detailed plan of what it's going to do. and waits for your approval.

How to Use It

When you're about to make significant changes, activate plan mode. Claude will:

  1. Analyze the codebase to understand the current state
  2. Propose a step-by-step plan for the changes
  3. Wait for your review and approval
  4. Only then execute the plan

Practical Example

You: "We need to add user authentication to the API."

Claude in Plan Mode: ` Plan: Add User Authentication

  1. Install dependencies: bcrypt, jsonwebtoken
  2. Create User model in Prisma schema
  3. Add migration for the new model
  4. Create auth middleware (src/middleware/auth.ts)
  5. Create auth routes: /register, /login, /refresh
  6. Update existing routes to use auth middleware
  7. Add tests for auth endpoints

Files to create:

  • src/middleware/auth.ts
  • src/routes/auth.ts
  • prisma/migrations/xxx_add_user_table/

Files to modify:

  • prisma/schema.prisma
  • src/app.ts (add auth routes)
  • src/routes/.ts (add middleware)

Estimated changes: ~150 lines across 8 files `

You: "Looks good, but let's use sessions instead of JWT for now."

Claude: "Updated plan: Replace JWT with session-based auth using express-session..."

Tips

  • Always use plan mode for multi-file changes. It saves you from unexpected modifications.
  • Use it as a learning tool. Even if you approve the plan, reading it teaches you how Claude approaches the problem.
  • Don't skip the review. The plan is your last line of defense against unwanted changes.

8. Worktrees. Parallel Development Without the Mess

Tier: B (Power User Feature)

Worktrees let you work on multiple features simultaneously without the overhead of multiple clones or constant branch switching.

What It Does

Claude Code can create and manage Git worktrees. separate working directories linked to the same repository, each on a different branch. Claude can work in one worktree while you work in another.

Practical Example

` You: "Create a worktree for the payment-integration feature"

Claude: "Created worktree at .claude/worktrees/payment-integration Branch: feature/payment-integration Ready to work on payment integration in isolation." `

Now you can:

  • Keep your main branch clean for bug fixes
  • Let Claude work on the payment feature in its own worktree
  • Switch between contexts without stashing or committing half-finished work

Use Cases

  • Long-running features that take days to complete
  • Experimenting with different approaches to the same problem
  • Hotfix development while a major feature is in progress
  • Code review preparation. work on your next task while Claude finishes the current one

Tips

  • Name worktrees descriptively. feature/auth-refactor is better than worktree-1.
  • Clean up finished worktrees. They accumulate disk space over time.
  • Use them for AI-assisted development. Let Claude work in a worktree while you handle other tasks.

7. Hooks. Automate the Boring Stuff

Tier: A (Workflow Multiplier)

Hooks are custom scripts that run automatically at specific points in Claude Code's lifecycle. This is where Claude Code goes from "useful tool" to "custom development environment."

Types of Hooks

| Hook | When It Runs | Use Case | |------|-------------|----------| | PreToolUse | Before Claude uses a tool | Validate commands before execution | | PostToolUse | After Claude uses a tool | Run linters, formatters, or tests | | Notification | When Claude sends a notification | Custom alert sounds or messages | | Stop | When Claude finishes a task | Run final checks or cleanup |

Practical Example: Auto-Format After Every Change

`json { "hooks": { "PostToolUse": [ { "matcher": "Edit", "hook": "npx prettier --write $CLAUDE_FILE_PATH" } ] } } `

Practical Example: Run Tests After Code Changes

`json { "hooks": { "Stop": [ { "hook": "npm test -- --findRelatedTests $CLAUDE_CHANGED_FILES" } ] } } `

Practical Example: Block Dangerous Commands

`json { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hook": "if echo $COMMAND | grep -q 'rm -rf /'; then echo 'BLOCKED: Dangerous command'; exit 1; fi" } ] } } `

Tips

  • Start with PostToolUse hooks. They're the most immediately useful.
  • Use hooks for consistency. Auto-formatting, linting, and type-checking prevent style drift.
  • Don't overdo it. Too many hooks slow down Claude and create friction.

6. Subagents. Delegate and Parallelize

Tier: A (Game Changer for Complex Tasks)

Subagents are one of Claude Code's most powerful features. They let you spawn independent AI agents to work on tasks in parallel, each with its own context and goals.

How It Works

When you have a complex task, Claude can break it into subtasks and spawn subagents to handle each one independently. These agents work in parallel and report back when done.

Practical Example

You: "Refactor the authentication system to use OAuth2."

Claude: "I'll break this into parallel subtasks:

  • Subagent 1: Research OAuth2 implementation patterns for Express.js
  • Subagent 2: Update the User model to support OAuth providers
  • Subagent 3: Create OAuth callback handlers
  • Subagent 4: Update existing auth middleware
  • Subagent 5: Write tests for the new OAuth flow

Working on all 5 in parallel..."

Use Cases

  • Large refactors that touch many files
  • Research tasks where you need to explore multiple approaches
  • Codebase audits. have subagents check different areas
  • Documentation generation. one agent writes, another reviews

Tips

  • Break tasks into independent subtasks. Subagents can't share context, so they need clear, self-contained instructions.
  • Use subagents for exploration. Have one agent research while another implements.
  • Monitor progress. Subagents report back, but you should check their work before merging.

5. The @ File Reference System. Context on Demand

Tier: A (Massive Time Saver)

Claude Code lets you reference files, folders, and even web content using the @ symbol. This gives you precise control over what context Claude has access to.

How It Works

` @src/components/Button.tsx. Include this specific file @src/components/. Include all files in this folder @https://example.com/api-docs. Fetch and include web content `

Practical Examples

Focused Code Review: ` Review the authentication logic in @src/middleware/auth.ts and check if it properly handles token expiration. `

Cross-File Refactoring: ` Update @src/routes/user.ts and @src/routes/profile.ts to use the new error handling pattern from @src/utils/errors.ts. `

Documentation Integration: ` Implement the API endpoint described in @https://api.example.com/docs/users following the pattern in @src/routes/existing-endpoint.ts. `

Tips

  • Be specific with references. @src/components/Button.tsx is better than @src/components/ when you only need one file.
  • Use web references for API docs. Claude can fetch and read documentation on the fly.
  • Combine with CLAUDE.md. Use @ for session-specific context and CLAUDE.md for permanent context.

4. Glob and Grep Tools. Find Anything Instantly

Tier: A (Essential for Large Codebases)

Claude Code's built-in Glob and Grep tools let it search your codebase with precision. These aren't just conveniences. they're what make Claude Code viable for large projects.

Glob. Find Files by Pattern

` Find all TypeScript test files:
/.test.ts Find all components: src/components/*/.tsx Find all API routes: src/routes/.ts `

Grep. Search Content with Regex

` Search for all TODO comments: "TODO" --type ts Search for deprecated API usage: "oldApiMethod" --output_mode content Search for unused imports: "^import.
$" --type ts --output_mode count `

Practical Example

You: "Find all places where we're using the old authentication pattern."

Claude: "Searching for req.headers.authorization across the codebase...

Found 12 occurrences in 5 files:

  • src/middleware/auth.ts:14. Manual header parsing
  • src/routes/admin.ts:23. Direct token access
  • src/routes/users.ts:31. Direct token access
  • src/routes/orders.ts:18. Direct token access
  • src/routes/products.ts:22. Direct token access

All of these should be updated to use the new getAuthToken() helper."

Tips

  • Use Glob for file discovery. When you're not sure where something lives, let Claude find it.
  • Use Grep for impact analysis. Before changing a function, search for all callers.
  • Combine with other tools. Use Grep to find files, then @ to include them in context.

3. The Compact Command. Context Management Mastery

Tier: S (Essential for Long Sessions)

The /compact command is deceptively simple: it compresses your conversation history into a concise summary. But mastering it is the key to productive long sessions with Claude Code.

Why It Matters

Claude Code has a context window. Every message, every tool call, every result fills it up. When the context window is full, Claude starts losing track of earlier conversations. /compact solves this by summarizing everything into a dense, information-rich summary.

How to Use It

` /compact `

Claude will analyze the entire conversation and produce a summary that preserves:

  • Key decisions made
  • Files modified
  • Current state of the project
  • Pending tasks and next steps

Best Practices

  1. Compact proactively. Don't wait until Claude starts forgetting things. Compact after major milestones.
  2. Compact before switching tasks. If you're moving from feature A to feature B, compact first.
  3. Compact after debugging sessions. Debugging generates a lot of noise. Compact to distill the findings.
  4. Review the summary. Make sure the compacted summary captures what matters.

What Gets Preserved

  • ✅ Project architecture and key files
  • ✅ Decisions and their rationale
  • ✅ Current state of modified files
  • ✅ Pending tasks and TODOs
  • ❌ Verbose debugging output
  • ❌ Failed attempts and dead ends
  • ❌ Repetitive explanations

Tips

  • Think of /compact as a save point. It captures the essential state of your work.
  • Use it between meetings. Compact before you step away, and you'll come up to speed faster.
  • Combine with memory. Important decisions should be in memory AND in the compacted summary.

2. Skills. Extend Claude Code's Capabilities

Tier: S (significant)

Skills are the most powerful extensibility feature in Claude Code. They let you create custom commands, workflows, and integrations that Claude can invoke on demand.

What Are Skills?

Skills are markdown files that define custom commands. When you invoke a skill, Claude reads the markdown file and follows its instructions.

Creating a Skill

Create a .md file in .claude/skills/:

`markdown # Code Review Skill

You are performing a thorough code review. For each file changed:

  1. Check for logic errors and edge cases
  2. Verify error handling is thorough
  3. Ensure consistent code style with the rest of the codebase
  4. Look for security vulnerabilities
  5. Check for performance issues
  6. Verify tests cover the changes

Provide a structured review with:

  • Severity levels (Critical / Warning / Suggestion)
  • Specific file and line references
  • Actionable fix suggestions
`

Using a Skill

` /review-changes `

Claude will load the skill and follow its instructions, providing a structured, thorough review.

Practical Skill Ideas

| Skill | What It Does | |-------|-------------| | /generate-tests | Analyzes changed code and generates thorough tests | | /security-audit | Checks for common security vulnerabilities | | /performance-review | Identifies performance bottlenecks | | /api-documentation | Generates API documentation from route files | | /changelog-update | Updates CHANGELOG.md based on recent changes | | /deploy-check | Runs pre-deployment checks and validations |

Tips

  • Start with review skills. They provide immediate value with minimal setup.
  • Make skills composable. A /deploy skill can call /test, /lint, and /build skills.
  • Share skills with your team. Skills live in the repo, so they're version-controlled and shared.
  • Iterate on skills. If Claude doesn't follow a skill's instructions well, refine the wording.

1. The Ecosystem. CLAUDE.md + Memory + Hooks + Skills Working Together

Tier: S+ (The Real Secret)

The single most powerful "feature" of Claude Code isn't any individual capability. it's how all the features work together. When you combine CLAUDE.md, memory, hooks, skills, and subagents, you create a personalized AI development environment that's more powerful than any single tool.

The Complete Setup

` your-project/ ├── CLAUDE.md # Permanent project context ├── .claude/ │ ├── skills/ # Custom commands and workflows │ │ ├── review.md │ │ ├── test-gen.md │ │ └── deploy.md │ ├── settings.json # Hooks and other settings │ └── memories/ # Cross-session memories ├── src/ └── ... `

How They Interact

  1. CLAUDE.md provides the foundation. project context, conventions, and rules
  2. Memory adds session-specific context that evolves over time
  3. Hooks automate repetitive tasks and enforce standards
  4. Skills extend Claude's capabilities with custom workflows
  5. Subagents enable parallel work on complex tasks
  6. Plan mode ensures alignment before changes are made
  7. Worktrees keep parallel work isolated and organized

The Multiplier Effect

Each feature makes the others more effective:

  • CLAUDE.md + Memory = Claude knows your project deeply, both permanently and contextually
  • Hooks + Skills = Automated workflows that enforce your team's standards
  • Subagents + Plan Mode = Parallel execution with human oversight
  • Compact + Memory = Long sessions that don't lose context

Real-World Workflow Example

Here's what a typical development session looks like with the full ecosystem:

`
  1. You: "I need to add a new API endpoint for user preferences"
Claude reads CLAUDE.md → understands your stack and conventions
  1. You activate plan mode
Claude proposes a plan → you review and approve
  1. Claude spawns subagents:
  • Agent 1: Create the route handler
  • Agent 2: Create the database migration
  • Agent 3: Write tests
    1. Hooks fire automatically:
  • PostToolUse: Prettier formats each file
  • PostToolUse: TypeScript compiler checks types
    1. You: "/review-changes"
    Claude loads the review skill → thorough structured review
    1. You: "This looks good, let's commit"
    Claude follows your commit conventions from CLAUDE.md
    1. Memory stores: "User preferences endpoint uses PATCH, not PUT"
    1. /compact → session summary saved for next time
    `

    Tips

    • Don't try to set everything up at once. Start with CLAUDE.md, then add hooks, then skills.
    • Iterate based on friction. Every time you find yourself repeating something, that's a candidate for a hook or skill.
    • Share your setup. The best configurations come from team collaboration.
    • Keep it maintainable. A CLAUDE.md that's 500 lines long is as bad as one that's 5 lines long. Aim for the sweet spot.

    Honorable Mentions

    These features didn't make the top 12 but are still worth knowing:

    • Git Worktree Integration. Manage multiple branches simultaneously
    • The /doctor Command. Diagnose and fix configuration issues
    • Web Fetch. Pull in external documentation and resources
    • Multi-file Edit. Make coordinated changes across multiple files in one operation
    • Conversation History. Review and resume previous sessions

    Conclusion

    Claude Code is more than a chatbot that writes code. It's a development environment that adapts to you. The features that matter most aren't always the flashiest. they're the ones that remove friction, prevent mistakes, and let you focus on the work that actually matters.

    Start with CLAUDE.md. Add hooks for automation. Create skills for your most common workflows. Use plan mode for important changes. And don't forget to /compact` when things get long.

    The best Claude Code setup is the one that feels invisible. where the tool fades into the background and you're just... building.