Claude Code Tips
Battle-tested recommendations from actual use
New here? Start with the CCO Setup Wizard for installation and first-run setup.
Context Management
The core skill. Context windows degrade at 50-60% fill. Everything else on this page matters less if you don’t manage context.
- Use
/contextto check usage - Use
/compactwhen responses get sloppy - Scope conversations - one per feature/task
- Start fresh for new major topics
- External memory (scratchpad.md, plan.md) persists across sessions
Boris Cherny (creator): Runs 5+ Claude instances in parallel, hands off between terminal and claude.ai using & and --teleport.
Workflow Patterns
Plan mode โ Execute
Shift+Tabtwice to enter Plan mode- Explore, ask questions, refine approach
- Get alignment on the plan
- Switch to auto-accept edits for execution
“A good plan is really important” - Boris Cherny
Checkpoint before risky changes
Before doing something that might go wrong:
/checkpointto capture current state- Do the risky thing
- If it breaks:
Esc Escto rewind
Session handoff
When ending a session:
/parkcaptures open loops and state- Next time:
/pickuprestores context
Keyboard Shortcuts & Commands
| Shortcut/Command | What it does | When to use |
|---|---|---|
Shift+Tab (x2) | Enter Plan mode | Start of any non-trivial task |
Esc Esc | Fork/rewind to checkpoint | When things go wrong |
/compact | Summarise conversation, free context | Long sessions, ~60% context |
/context | Show current context usage | Check before complex task |
/ultrathink | Maximum reasoning depth | Philosophy, architecture, hard problems |
Ctrl+R | Search prompt history | Find previous prompts |
@filename | Mention file in prompt | Reference specific files |
# | Add to CLAUDE.md | When correcting same mistake twice |
Conversational Patterns
These phrasings work well:
| Say this | Claude understands |
|---|---|
| “Read the file first” | Don’t guess, actually look at the content |
| “Show me the grep” | Prove claims about what exists in codebase |
| “What’s the actual error” | Don’t summarise, show raw output |
| “Plan mode this” | Explore before committing to approach |
| “Diff these two files” | Compare and highlight differences |
| “MCP into [service]” | Use MCP server for that service |
| “yt-dlp this: [URL]” | Extract and process YouTube content |
Diffing Documents
Ask Claude to “diff” two files or pieces of content to get a structured comparison:
"Diff config.old.json against config.json"
"Diff the current version with what I pasted"
"What changed between these two versions?"
Useful for:
- Comparing config file versions before/after changes
- Reviewing what changed in a document revision
- Spotting differences between two similar files (e.g., dev vs prod configs)
- Understanding what edits someone made to a draft
Claude reads both files, compares them, and reports meaningful differences - not just a raw diff output, but an explanation of what actually changed and why it matters.
Git Snapshots for Safety Net
Automated git commits on your Obsidian vault (e.g., every 10 minutes via cron) provide a safety net against accidental changes, ransomware, or AI mistakes.
Implementation (cron):
*/10 * * * * /path/to/obsidian_vault_backup.sh
Commit only .md files to prevent bloat from media.
Why this matters with Claude Code: AI can make sweeping edits. Git snapshots let you git diff or git checkout specific files if something goes wrong, without restoring entire backups.
Setup & Configuration
claudeyolo alias
Skip the permission prompts when you trust what you’re doing:
# Add to ~/.bashrc or ~/.zshrc
alias claudeyolo='claude --dangerously-skip-permissions'
Use case: Batch operations, known-safe scripts, when the y/n prompts slow you down.
VAULT_PATH environment variable
If you’re using Claude Code with an Obsidian vault, set a single configuration point for all commands:
export VAULT_PATH=/path/to/your/obsidian/vault
All commands that need vault access can derive paths from this. Change once, works everywhere.
Terminal setup (Wezterm + global hotkey)
See: Wezterm setup guide
Wezterm with a global hotkey gives you instant Claude access from anywhere. Faster than switching windows.
Speech-to-text dictation
See: Global Dictation with Whisper
System-wide Whisper-powered dictation via hotkey. Dump thoughts faster than typing. Works with any application.
MCP Servers (External Integrations)
MCP connects Claude to external services. The ones I actually use:
| Server | What it does | Setup |
|---|---|---|
| Google Calendar | Query/create/modify calendar events | @anthropic/mcp-google-calendar - needs OAuth setup |
| Obsidian | Read/write vault files when Obsidian is running | mcp-obsidian - requires Local REST API plugin |
| Firecrawl | Web scraping with JS rendering | Needs API key from firecrawl.dev |
| Google Docs | Read/write Google Docs and Sheets | google-docs-mcp - needs OAuth setup |
Pattern: “MCP into [service]” - Claude understands this as “use the MCP server to interact with X”
Example: “MCP into my calendar and find all events this week”
Task Management with TaskCreate/TaskList
For multi-step work, tell Claude to create a task list:
“Create a task list for this and work through it”
Benefits:
- Ensures nothing gets missed in multi-stage prompts
- Shows progress with checkboxes as it works
- Good scaffolding for sequential tasks with less supervision
The to-do list renders in the terminal as Claude completes each step.
Skills System
Skills are markdown files Claude loads on-demand. Different from commands:
- Commands (
/command) = user-invoked, explicit trigger - Skills = auto-loaded when relevant, based on keywords/context
Example skills:
/park- End session, capture open loops/pickup- Resume from recent sessions/morning//afternoon//goodnight- Daily rhythm/checkpoint- Mid-session state capture
Skills live in ~/.claude/commands/.
Content Extraction Patterns
yt-dlp for YouTube
Extract transcripts, audio, or video:
# Transcript only (fast)
yt-dlp --write-auto-sub --skip-download -o "%(title)s" "URL"
# Audio only (for long content)
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "URL"
# Full video
yt-dlp -f "bestvideo[height<=1080]+bestaudio" -o "%(title)s.%(ext)s" "URL"
Conversational shortcut: “yt-dlp this: [URL]” - Claude will extract and process.
JavaScript snippets for social media
X/Twitter thread extraction (run in browser console):
// Select all tweet text elements and join
[...document.querySelectorAll('[data-testid="tweetText"]')]
.map(el => el.innerText)
.join('\n\n---\n\n')
Reddit thread extraction (run in browser console):
// Get all comment bodies
[...document.querySelectorAll('.md')]
.map(el => el.innerText)
.join('\n\n---\n\n')
Copy output, paste into Claude for analysis.
NormCap for screen OCR
When you need to copy text that can’t be selected (images, toasts, pop-ups):
Install:
flatpak install flathub com.github.dynobo.normcap
Setup hotkey in KDE:
- System Settings โ Keyboard โ Shortcuts
- Click + Add Application โ search “NormCap”
- Add custom shortcut (e.g.,
Meta+Shift+T)
Workflow: Hotkey โ drag to select region โ text copied to clipboard.
summarise-file for large content
See: Summarise Large Files with Gemini
When a file is too large for Claude’s context:
summarise-file /path/to/large-file.txt
# or
cat large-file.txt | summarise-file
Pipes to Gemini 2.5 Flash (1M token context), returns summary. Useful for logs, transcripts, minified code.
Further Reading
- The Neuron: How to Turn Claude Code Into Your Personal AI Assistant โ sub-agents, MCP servers, advanced workflows
- Claudesidian โ pre-configured vault template
- obsidian-claude-pkm โ starter kit with custom agents and hooks
Sources
- Boris Cherny (@bcherny) โ Claude Code creator
- sankalp.bearblog.dev โ power user guides