TL;DR
Claude Code ships new features almost weekly, and the documentation often struggles to keep pace. If you have been using Claude Code since its early days, you know the feeling of discovering a powerful feature months after it was released, hidden in a CHANGELOG or mentioned casually on X.
I have been tracking Claude Code since March 2025, documenting every update, testing every feature, and sharing insights with the developer community. When December arrived, I decided to compile my knowledge into a Claude Code Advent Calendar: 24 days, 24 essential tips, shared daily on X with the hashtag #claude_code_advent_calendar.
This article consolidates all 24 tips into a single comprehensive guide. Whether you are a Claude Code newcomer or a power user, you will find actionable insights to level up your AI-assisted development workflow.
Quick Navigation
| Day | Topic | Day | Topic |
|---|---|---|---|
| 1 | Opus 4.5 Migration Guide | 13 | Sandbox for rm -rf Prevention |
| 2 | Claude Code Statusline | 14 | Hooks for Sensitive Data Filtering |
| 3 | Send Tasks to Web with & | 15 | Hooks for Code Formatting |
| 4 | Thinking Keywords | 16 | External Editor with Ctrl + G |
| 5 | AGENTS.md Support | 17 | Plan Mode |
| 6 | On the Web Setup | 18 | GIF Creation with Claude in Chrome |
| 7 | MCP Tool Context Consumption | 19 | Agent Skills Best Practices |
| 8 | Skill Creator | 20 | Auto-compact Buffer Size |
| 9 | Skills + Subagents | 21 | Async Subagents |
| 10 | Project Rules | 22 | Code Action + Agent Skills |
| 11 | CLAUDE.md Loading | 23 | Parallel Execution |
| 12 | Preventing rm -rf Disasters | 24 | Claude Code Ecosystem |
Day 1: Opus 4.5 Migration Guide
Anthropic maintains an official Skills plugin for migrating prompts from older Claude models to Opus 4.5. This migration guide reveals interesting behavioral differences in the latest model.
The migration addresses several tendencies specific to Opus 4.5:
- Excessive tool invocations when unnecessary
- Over-engineering solutions
- Insufficient code exploration
- Frontend design quality variations
- Over-reaction to "think" keywords in prompts
Understanding these tendencies helps you craft more effective prompts. Opus 4.5 aggressively uses tools, which can fill your context window even when tool calls are not required. Monitor your agent's behavior closely when switching models.
Find the migration plugin at: anthropics/claude-code/plugins/claude-opus-4-5-migration
Day 2: Claude Code Statusline
The statusline feature displays useful information below the chat input, including model name, Git branch, and custom metrics.
Configure it with /statusline <content> or add it to your settings.json:
{
"statusLine": {
"type": "command",
"command": "bun x ccusage statusline"
}
}
This configuration uses the ccusage tool to display your API usage directly in the Claude Code interface. The statusline is a small but impactful quality-of-life feature that many users overlook.
Day 3: Send Tasks to Web with &
Starting with Claude Code v2.0.45, prefixing your prompt with & sends the task to Claude Code on the Web for background processing.
Claude Code on the Web executes tasks in a remote sandbox environment. You can also transfer tasks from Web back to your local CLI using the "Open from CLI" button. The model specified in your local environment carries over to the Web session.
This feature is particularly useful for offloading smaller tasks while continuing work on your main project locally.
Day 4: Thinking Keywords
Extended thinking mode enables Claude to perform internal reasoning for complex tasks. You can toggle it with Tab in the interface.
Here is the critical insight many users miss: only ultrathink triggers extended thinking mode now. Keywords that previously worked have been disabled:
- Works:
ultrathink - Does NOT work:
think,think hard,think deeply, or translated equivalents
This change occurred when Claude Code v2.0.0 introduced the thinking mode toggle. Even Anthropic engineers were unaware of this change initially. The official documentation was only updated on December 13, 2025, two months after the change.
Day 5: AGENTS.md Support
Claude Code does not officially support AGENTS.md. This has been an ongoing discussion in GitHub issue #6235 since August.
Two workarounds exist. First, you can import AGENTS.md from within CLAUDE.md using the @AGENTS.md syntax. Verify the import worked with the /memory command.
Alternatively, create a symbolic link: ln -s AGENTS.md CLAUDE.md. This makes Claude Code read AGENTS.md content as if it were CLAUDE.md.
Day 6: Claude Code on the Web Setup
Claude Code on the Web runs in a remote sandbox, which means your local setup does not transfer automatically. However, you can replicate your environment using SessionStart Hooks.
The environment variable CLAUDE_CODE_REMOTE indicates when Claude Code runs in the remote Web environment. Create a SessionStart Hook that checks this variable and runs your setup script only in remote sessions.
Claude Code on the Web includes a built-in session-start-hooks feature specifically for this purpose. Reference the official documentation for implementation details.
Day 7: MCP Tool Context Consumption
MCP tools consume context window space just by being available, even when not used. Tool descriptions are loaded into the agent's context, and some tools consume 8-30% of your available context.
Use the /context command to see how much space each tool occupies. Browser automation MCP tools are particularly context-hungry.
A common misconception is that using Skills eliminates this problem. It does not. As long as MCP tools are registered in the agent's context, they consume space regardless of how you invoke them. The only way to reduce this overhead is to use equivalent scripts or API calls within Skills instead of MCP tools, or simply remove unused MCP servers.
Day 8: Skill Creator
Skill Creator is a meta-skill that generates new Skills. Install it from the official Anthropic plugins:
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills
After restarting Claude Code, request "Create a skill for [your use case]" to invoke the skill-creator. This provides a solid starting point for custom Skills.
Note that skill-creator has existed since October 2025. While it generates functional Skills quickly, the output may not follow all best practices covered in Day 19. Treat its output as a foundation for further refinement.
Day 9: Skills + Subagents
Skills provide knowledge and workflows. Subagents execute specialized tasks. These two features complement each other and can be combined.
Add Skills to a Subagent definition using YAML frontmatter:
---
skills:
- frontend-design-system
- testing-patterns
---
# Fullstack Developer Subagent
...
Skills defined in the frontmatter automatically load into the Subagent's context when invoked. The official Subagent documentation covers additional frontmatter options.
This combination became more relevant after Codex CLI added Skills support, increasing interest in Skills across the AI coding assistant ecosystem.
Day 10: Project Rules
Version 2.0.64 introduced Project Rules as an alternative to CLAUDE.md. Store topic-specific rules in .claude/rules/ as Markdown files.
Organize rules by concern:
- Code style guidelines
- Testing conventions
- Security requirements
Rules support YAML frontmatter for conditional application:
---
paths: src/api/**/*.ts
---
# API Development Rules
...
When Claude Code operates on files matching the glob pattern, the corresponding rules load dynamically. This provides more granular control than a single CLAUDE.md file.
Day 11: CLAUDE.md Loading
Claude Code loads project CLAUDE.md from two locations at startup:
./CLAUDE.md./.claude/CLAUDE.md
You can also place CLAUDE.md files in nested directories. These are not loaded at startup but are read when Claude Code operates within that directory.
With Project Rules (Day 10), you now have multiple options for organizing project instructions. Use nested CLAUDE.md for directory-specific context and Project Rules for cross-cutting concerns that apply to specific file patterns.
Day 12: Preventing rm -rf Disasters
Stories of AI agents executing rm -rf and deleting important directories appear regularly on Reddit and X. New Claude Code users should configure safety guards immediately.
Add permission restrictions to ~/.claude/settings.json:
{
"permissions": {
"deny": ["rm", "DROP TABLE", "DELETE FROM"]
}
}
The permissions.deny setting blocks specified commands entirely. For more flexibility, use permissions.ask to require confirmation before executing dangerous commands. These settings take precedence even when using --dangerously-skip-permissions.
Reference the Reddit incident that prompted this tip: Claude CLI deleted my entire home directory
Day 13: Sandbox for rm -rf Prevention
The /sandbox command restricts Claude Code's file system and network access to your working directory and explicitly permitted paths.
Outside the sandbox, Claude Code cannot execute Edit, Read, or Bash commands like rm on unauthorized paths. Combine Sandbox with the permissions settings from Day 12 for comprehensive protection.
Additional safeguards like PreToolUse Hooks can intercept and block commands before execution. Layer multiple defenses for robust protection against accidental file operations.
Day 14: Hooks for Sensitive Data Filtering
Claude Hooks trigger scripts at specific lifecycle events. Use UserPromptSubmit and PreToolUse hooks to filter sensitive information before it reaches the AI agent.
Create a hook that scans for API keys, credentials, or other sensitive patterns in prompts and file contents. Block execution when sensitive data is detected.
Beyond blocking, UserPromptSubmit hooks can append additional context to prompts. Hooks enable powerful automation while maintaining security boundaries.
Day 15: Hooks for Code Formatting
Use PostToolUse hooks to run formatters automatically after Claude Code edits files.
Configure in settings.json:
{
"hooks": {
"PostToolUse": {
"command": "prettier --write $CLAUDE_FILE_PATH"
}
}
}
The key advantage of Hooks is deterministic behavior outside Claude's context. Formatting always executes correctly without consuming context or relying on the AI to remember to format. This pattern works for linters, type checkers, and other code quality tools.
Day 16: External Editor with Ctrl + G
Press Ctrl + G to open prompts or Plan mode documents in your preferred external editor.
Configure your editor using environment variables:
export VISUAL="vim"
export VISUAL="emacs"
export VISUAL="code --wait"
export VISUAL="cursor --wait"
Claude Code checks VISUAL first, then falls back to EDITOR. This is especially useful for composing complex multi-line prompts or editing detailed plans.
Day 17: Plan Mode
Press Shift + Tab to switch to Plan mode. Claude creates a planning document that you can review and edit before execution.
Plan documents are now saved to ~/.claude/plans/, a change introduced around v2.0.34. You can review past plans and track how approaches evolved over time.
Currently, you cannot specify a custom path for plan documents, though this feature request exists. Combine Plan mode with Ctrl + G (Day 16) to edit plans in your preferred editor.
Day 18: GIF Creation with Claude in Chrome
Version 2.0.72 introduced Claude in Chrome integration. Configure it with the /chrome command.
Claude in Chrome includes a GIF recording feature that captures browser automation sessions. Record your web application interactions and export them as animated GIFs, useful for creating quick tutorials or documenting workflows.
While Chrome DevTools MCP provides similar capabilities, Claude in Chrome leverages your browser's user profile, making authenticated interactions easier. The integration enables direct Chrome control via MCP tools from Claude Code.
Day 19: Agent Skills Best Practices
Agent Skills became an open standard, now usable in Cursor, GitHub Copilot, and other AI coding assistants. When creating Skills, follow the official best practices:
- Keep SKILL.md under 500 lines
- Include specific, concrete examples
- Limit file references to one directory level deep
- Use progressive disclosure for complex information
- Define clear workflow steps
- Leverage scripts for deterministic operations
- Avoid Windows-style paths
- Build in verification and feedback loops
- Include at least three evaluation scenarios
- Test across multiple models
Start with Skill Creator (Day 8) for a quick prototype, then refine against these best practices. The Agent Skills registry provides examples to study.
Day 20: Auto-compact Buffer Size
When auto-compact is enabled, Claude Code reserves a buffer for conversation compression. This Auto-compact Buffer varies based on CLAUDE_CODE_MAX_OUTPUT_TOKENS.
The default buffer is 32k tokens, consuming 22.5% of a 200k context window. Setting max output tokens to 64k (the maximum) increases the buffer to nearly 40% of available context.
If you have set CLAUDE_CODE_MAX_OUTPUT_TOKENS without considering this trade-off, revisit your configuration. Maximizing output tokens significantly reduces available context for code and conversation.
Day 21: Async Subagents
Subagents can execute asynchronously in the background. When an async task completes, the main agent receives a notification.
Practical applications for async Subagents include parallel codebase exploration, concurrent code reviews, and simultaneous search operations across multiple sources.
Version 2.0.60 introduced this capability. While related tasks may still occasionally wait for Subagent completion, the workflow is substantially improved from earlier versions.
Anthropic engineers mentioned plans to enhance Swarming (orchestrated multi-agent execution) in 2026. Familiarizing yourself with parallel execution patterns now will prepare you for these capabilities.
Day 22: Code Action + Agent Skills
Claude Code Action runs Claude Code in GitHub Actions on Ubuntu runners. When your repository contains Skills in .claude/skills/, they are available during Action execution.
Required setup:
- Create Skills in
.claude/skills/ - Add "Skill" to
claude_args: --allowed-tools - Use
/install-github-appto configureCLAUDE_CODE_OAUTH_TOKENautomatically
Claude Code Action has existed for some time, but Skills integration enables more sophisticated automated workflows. Combined with the upcoming GitHub Actions pricing changes that reduce GitHub-hosted runner costs, this feature becomes increasingly attractive.
Day 23: Parallel Execution
Two primary approaches enable parallel Claude Code execution.
Same-branch parallelism uses Subagents for concurrent tasks. This works well for read-only operations like code reviews, or when working on components with clear boundaries. Invoke multiple Subagents from Skills for structured parallel workflows.
Different-branch parallelism uses git worktree to create separate working directories. Run independent Claude Code instances in each worktree for parallel feature development or implementation comparisons. Combine with tmux for orchestrating multiple Claude Code sessions from a single interface.
At a recent Claude Code Meetup in Tokyo, Anthropic engineers confirmed that Swarming capabilities will receive significant attention in 2026. Early adoption of parallel execution patterns positions you well for these enhancements.
Day 24: Claude Code Ecosystem
Looking back at 2025, the Claude Code ecosystem expanded remarkably from its February 24 launch. In just ten months, the platform grew from a CLI tool to a comprehensive development environment.
The ecosystem now includes:
- Claude Code CLI and SDK for programmatic integration
- IDE extensions for VSCode, JetBrains, and VSCode forks
- Claude Code on the Web with remote sandbox execution
- Mobile app, desktop, and Slack integration for task submission
- Chrome extension for browser automation
- GitHub Actions integration for CI/CD workflows
Tasks flow seamlessly between these components. Start work on your phone, continue on the Web, finish locally, and deploy through GitHub Actions. The 2026 ecosystem will likely be even more interconnected.
Key Takeaways
Safety and security require proactive configuration. Set up permissions.deny, enable Sandbox, and use Hooks to filter sensitive data before an accident occurs.
Context management determines effectiveness. Monitor MCP tool overhead with /context, understand Auto-compact buffer trade-offs, and remove unused tools.
Extended thinking requires the right keyword. Only ultrathink works. Previous keywords like think hard have been disabled since v2.0.0.
Skills and Subagents work best together. Use YAML frontmatter to load Skills into Subagents for specialized workflows.
Parallel execution multiplies productivity. Async Subagents and git worktree enable concurrent work patterns that will become even more powerful with future Swarming capabilities.
The ecosystem rewards exploration. Features like statusline, external editor integration, and Plan mode document saving improve daily workflows significantly once discovered.
If you found these tips valuable, follow the author on X (@oikon48) for ongoing Claude Code insights and updates.







Top comments (0)