5 min read

What Claude Code Cannot Do: Known Limitations

Understanding the boundaries of Claude Code to set realistic expectations.

Claude Code is powerful, but it has limits. Knowing them upfront saves frustration.

Technical Limitations

No persistent memory

Claude doesn’t remember previous sessions:

Session 1: "We decided to use Redis for caching"
[End session]

Session 2: "What caching solution did we pick?"
Claude: "I don't have information about previous sessions"

Workaround: Document decisions in CLAUDE.md or project docs.

Context window limit

There’s a maximum amount of text Claude can consider at once:

Very long session + many files = context overflow

Workaround: Use /compact, start fresh sessions, read files selectively.

No real-time updates

Claude can’t watch for file changes or run continuously:

# Not possible
"Watch for changes and fix any new errors"

Workaround: Use hooks or CI/CD for continuous monitoring.

No GUI interaction

Claude can’t click buttons or see screens:

# Not possible
"Click the submit button in the browser"

Workaround: Use browser automation tools (Playwright, Puppeteer).

No audio/video processing

Claude can’t listen or watch:

# Not possible
"Transcribe this meeting recording"

Workaround: Use dedicated transcription services.

Accuracy Limitations

Hallucinations

Claude can confidently state incorrect things:

Claude: "The foo.bar() method does X"
Reality: foo.bar() does Y, or doesn't exist

Mitigation: Verify important claims. Run the code. Check documentation.

Outdated knowledge

Claude’s training has a cutoff date:

"What's the latest version of React?"
# May not know the very latest release

Mitigation: Ask Claude to check package.json or search online.

Library-specific details

Claude may not know every API perfectly:

"Use the new XYZ library"
# Might mix up old and new API patterns

Mitigation: Reference official docs, test the code.

Scope Limitations

Can’t access external services

Without MCP, Claude can’t:

  • Query databases
  • Call APIs
  • Access cloud services

Workaround: Set up MCP servers for needed integrations.

Can’t access private packages

Claude can’t authenticate to private npm registries:

# Claude can't see
@company/private-package

Workaround: Share relevant code directly or document the interfaces.

Limited network access

Claude can read public URLs but can’t:

  • Access localhost services
  • Authenticate to sites
  • Access intranet resources

Behavioral Limitations

No autonomous operation

Claude needs prompts to act:

# Not possible
"Work on this for 8 hours while I'm away"

Workaround: Use headless mode in scripts/CI for automated tasks.

Can’t learn preferences over time

Each session starts fresh:

"I've told you 100 times to use semicolons"
# Next session: Doesn't remember

Workaround: Put preferences in CLAUDE.md.

Won’t make decisions without input

Claude asks before major changes:

Claude: "Should I use approach A or B?"
# Won't proceed without answer

This is a safety feature, but can slow things down.

Safety Limitations

Won’t bypass security

Claude refuses to:

  • Disable security features
  • Exploit vulnerabilities (without auth context)
  • Access protected data inappropriately

Won’t generate harmful code

Requests for malware, exploits, or harmful content are refused.

Respects rate limits

Claude won’t try to bypass API rate limits or quotas.

Environment Limitations

Platform-specific issues

Some commands differ by OS:

# Works on macOS/Linux
sed -i '' 's/foo/bar/g' file

# Different on Linux
sed -i 's/foo/bar/g' file

Claude tries to detect your platform but may get it wrong.

Shell-specific features

Complex bash features may not work in all environments:

# May fail in some shells
array=("a" "b" "c")

IDE integration limits

Claude Code works best in terminal. IDE extensions have fewer features.

What Claude IS Good At

Despite limitations, Claude excels at:

StrengthExample
Code generation”Write a function that…”
Code explanation”How does this work?”
Refactoring”Convert to async/await”
Bug finding”Why might this fail?”
Multi-file changes”Update all API calls”
Documentation”Document this module”
Test writing”Write tests for this”

Setting Realistic Expectations

Claude is a tool, not a replacement

Use Claude for:

  • Accelerating routine work
  • Exploring unfamiliar code
  • Generating boilerplate
  • Reviewing and improving code

Not for:

  • Making all decisions
  • Running autonomously forever
  • Replacing domain expertise

Verify important output

# Good practice
Claude writes code → You review → Tests verify → Ship

Start with smaller tasks

Build trust through small wins before attempting large autonomous tasks.

Summary

CategoryCan’t DoWorkaround
MemoryRemember past sessionsCLAUDE.md
ContextHandle infinite context/compact, fresh sessions
WatchingMonitor continuouslyHooks, CI/CD
GUIClick buttonsBrowser automation
AccuracyBe 100% correctVerify, test
ExternalAccess servicesMCP servers
AutonomyWork forever aloneHeadless in scripts