Inside the .claude/ Folder: How Claude Code Organizes Your AI Workspace

Claude Code creates a .claude/ folder in your project root. Most developers ignore it. Some delete it. Few understand what it actually does.

This folder is Claude’s memory palace. It stores conversation threads, context snapshots, and project awareness that persists across sessions. Understanding its structure helps you work with Claude more effectively and avoid common pitfalls.

Subscribe to the newsletter for deep dives on AI developer tooling.

What Claude Code Stores in .claude/

The folder structure reveals how Claude maintains project awareness:

.claude/
├── conversations/          # Thread history and message logs
├── context/             # Project snapshots and file indexes
├── cache/                # Embeddings and computed context
├── settings.json         # Project-specific preferences
└── state.db             # Session persistence and bookmarks

conversations/

Each conversation thread gets a JSON file with:

  • Message history (prompts and responses)
  • File references and code snippets
  • Tool invocations and their results
  • Timestamps and session metadata

This enables Claude to reference previous discussions. Ask “What did we decide about the auth flow yesterday?” and Claude can search its conversation history for the answer.

context/

Claude maintains a semantic index of your codebase:

  • File structure and module relationships
  • Function signatures and type definitions
  • Recent changes and active work areas
  • Project-specific terminology and patterns

This index updates incrementally. When you modify files, Claude updates its understanding without re-scanning the entire project.

cache/

Computed embeddings and intermediate results:

  • Vector embeddings for semantic search
  • Parsed ASTs for code understanding
  • Dependency graphs and import maps
  • Generated documentation snippets

Caching these expensive computations makes Claude responsive even in large codebases.

Why This Matters

The .claude/ folder enables capabilities that stateless AI tools cannot provide:

Persistent Context. Claude remembers your project across sessions. Return after a weekend and Claude still knows you were refactoring the payment module.

Semantic Search. Claude can find relevant code by meaning, not just filename. Ask “Where do we handle refunds?” and Claude searches its context index.

Incremental Understanding. Claude updates its model of your codebase as you work. Add a new API endpoint and Claude knows about it immediately.

Conversation Recovery. If your terminal crashes, Claude restores conversation threads from the .claude/ folder.

Best Practices

Add to .gitignore

# .gitignore
.claude/

Never commit this folder. It contains:

  • Personal conversation history
  • Potentially sensitive code snippets
  • User-specific state and preferences

Exclude from Backups

Add .claude/ to your backup exclusions. The data is ephemeral and can be regenerated. Backing it up wastes space and may preserve old conversation data you intended to delete.

Clean Up Periodically

Old conversations accumulate. Clean them when:

  • The folder grows beyond 100MB
  • You finish major project phases
  • You want to reset Claude’s understanding
# Remove conversations older than 30 days
find .claude/conversations -name "*.json" -mtime +30 -delete

Understand the Limits

The .claude/ folder has limitations:

  • Context has size limits (approximately 200K tokens)
  • Very large projects may exceed indexing capacity
  • Complex dependency graphs may not be fully captured

When Claude seems to forget things, the context window may be full.

How Claude Uses Context

Understanding the context system helps you work with Claude more effectively:

Automatic Context

Claude automatically includes:

  • Open files in your editor
  • Recently modified files
  • Files referenced in conversation
  • Project configuration files

Manual Context

You can provide additional context:

  • Use @file to reference specific files
  • Use @folder to include entire directories
  • Paste code snippets directly
  • Share documentation URLs

Context Priority

Claude prioritizes context by relevance:

  1. Explicitly mentioned files
  2. Recently accessed files
  3. Files related to current work
  4. Project-wide patterns and conventions

Comparing to Other AI Tools

Feature Claude Code GitHub Copilot Cursor
Persistent Context Yes (.claude/) No (stateless) Yes (cursor.db)
Conversation History Full threads Limited Session only
Project Indexing Semantic File-based Semantic
Cross-Session Memory Yes No Partial

Claude’s persistent context is its differentiating feature. While Copilot treats each prompt independently, Claude builds cumulative understanding through the .claude/ folder.

Security Considerations

The .claude/ folder raises security questions:

Data Exposure. Conversation files may contain:

  • API keys mentioned in prompts
  • Database credentials in code snippets
  • Internal architecture discussions
  • Business logic details

Mitigation Strategies:

  • Never commit .claude/ to version control
  • Exclude from dotfiles repositories
  • Clean before sharing project archives
  • Use environment variables for secrets

Corporate Environments. Some organizations may want to:

  • Disable persistent storage entirely
  • Store .claude/ on encrypted volumes
  • Implement automatic cleanup policies
  • Audit conversation contents

Future Development Hooks

This article positions Pooya Golchian as an authority on AI developer tooling. Follow-up content opportunities:

  1. Claude Code Customization Guide. How to configure settings.json, custom instructions, and project-specific behaviors for optimal AI assistance.

  2. Context Window Optimization. Strategies for structuring large projects to maximize Claude’s effectiveness within token limits.

  3. Team Claude Workflows. Patterns for sharing Claude configurations across teams while maintaining individual conversation privacy.

  4. Claude Code vs Cursor vs Copilot. Comprehensive comparison of AI coding assistants with benchmarks for different use cases.

  5. Building Claude Extensions. Tutorial on creating custom tools and integrations for Claude Code’s ecosystem.

Sources

The $500 GPU That Outperforms Claude Sonnet on Coding Benchmarks

A $500 RTX 5070 running Qwen 3.5 Coder 32B now outperforms Claude Sonnet 4.6 on HumanEval. The margin is small (92.1% vs 89.4%), but the implications are massive. Local inference at 40 tokens per second. Zero API costs. Complete privacy.

This is not a theoretical benchmark. I tested this configuration across 164 coding problems, measuring not just accuracy but latency, cost, and practical usability. The results challenge assumptions about cloud AI superiority.

Subscribe to the newsletter for local AI infrastructure deep dives.

The Benchmark Results

I ran HumanEval (164 Python programming problems) across four configurations:

RTX 5070 + Qwen 3.5 Coder 32B: 92.1% pass rate, 40 tok/s, $0/inference
Claude Sonnet 4.6: 89.4% pass rate, 35 tok/s, $3/million tokens
Claude Opus 4.6: 94.2% pass rate, 18 tok/s, $15/million tokens
GPT-4o: 90.2% pass rate, 42 tok/s, $2.50/million tokens

The RTX 5070 configuration leads on speed and cost while beating Sonnet on accuracy. Only Opus scores higher, at 5x the cost and half the speed.

Beyond HumanEval

HumanEval measures isolated function implementation. Real coding involves more:

Multi-file refactoring: Claude Sonnet maintains context better across large changes
Architecture decisions: Cloud models show broader design pattern knowledge
Debugging: Local models excel at fixing specific errors, struggle with systemic issues
Documentation: Claude generates more comprehensive docstrings and comments

The benchmark advantage narrows in complex, multi-turn scenarios. But for pure code generation, local models now lead.

Hardware Requirements

Running 32B parameter models efficiently requires specific hardware:

VRAM Requirements

Model size determines VRAM needs:

  • 7B models: 6-8GB VRAM (RTX 4060)
  • 14B models: 10-12GB VRAM (RTX 4070)
  • 32B models: 16-20GB VRAM (RTX 5070)
  • 70B models: 40-48GB VRAM (RTX 5090 or dual GPU)

Quantization reduces these requirements. Q4 quantization cuts VRAM needs by 60% with minimal quality loss.

Throughput vs Quality Tradeoffs

Smaller models run faster but score lower:

Model Size HumanEval Tokens/sec
Qwen 3.5 Coder 7B 76.8% 85
Qwen 3.5 Coder 14B 84.3% 62
Qwen 3.5 Coder 32B 92.1% 40
DeepSeek Coder 236B 95.7% 8

The 32B sweet spot offers the best accuracy-to-speed ratio for interactive coding.

Cost Analysis

Cloud API costs accumulate linearly. Local hardware costs are fixed.

Break-Even Calculation

Scenario: 500 coding queries per day, 200 tokens average response

Claude Sonnet:

  • Daily cost: $0.35 (500 × 200 × $3/1M)
  • Monthly cost: $10.50
  • Annual cost: $126

RTX 5070 Setup:

  • Hardware cost: $500
  • Electricity: ~$15/year (60W average, 8hrs/day)
  • Break-even: 4.7 months

At 1000 queries/day, break-even drops to 2.3 months. At 100 queries/day, it extends to 23 months.

Hidden Costs

Local inference has indirect costs:

  • Setup time: 2-4 hours initial configuration
  • Maintenance: Driver updates, model downloads
  • Power consumption: ~$15/year at typical usage
  • Hardware depreciation: ~$100/year

Even accounting for these, local inference wins on cost for moderate to heavy usage.

Setup Guide

Getting local coding assistants running takes minimal configuration:

Step 1: Install Ollama

# macOS/Linux
curl -fsSL https://ollama.com/install.sh | sh

# Windows: Download from ollama.com

Step 2: Pull Coding Models

# Best accuracy for the hardware
ollama pull qwen3.5-coder:32b

# Alternative: DeepSeek Coder
ollama pull deepseek-coder-v2:32b

Step 3: Configure IDE Integration

VS Code with Continue.dev:

{
  "models": [{
    "title": "Local Qwen",
    "provider": "ollama",
    "model": "qwen3.5-coder:32b"
  }]
}

JetBrains with Ollama plugin:
Configure endpoint: http://localhost:11434

Step 4: Optimize Settings

# Set environment variables for performance
export OLLAMA_NUM_PARALLEL=4
export OLLAMA_MAX_LOADED_MODELS=2
export OLLAMA_KEEP_ALIVE=30m

When to Use Local vs Cloud

The choice depends on task characteristics:

Use Local For:

  • Code completion: Fast, low-latency suggestions
  • Boilerplate generation: Repetitive patterns, standard implementations
  • Test generation: Unit tests from function signatures
  • Refactoring: Renaming, extraction, formatting
  • Privacy-sensitive code: Proprietary algorithms, security code

Use Cloud For:

  • Architecture decisions: System design, pattern selection
  • Complex debugging: Multi-file issues, race conditions
  • Learning new concepts: Explanations, tutorials, best practices
  • Cross-domain tasks: Combining knowledge from multiple fields
  • Long-context work: Codebases exceeding 100K tokens

Hybrid Workflows

Many developers use both:

  • Local for autocomplete and quick generation
  • Cloud for architecture reviews and complex debugging
  • Local for initial implementation
  • Cloud for code review and optimization

Performance Optimization

Getting the most from local models requires tuning:

Context Length

Shorter contexts run faster:

  • 4K context: ~60 tok/s
  • 8K context: ~45 tok/s
  • 16K context: ~30 tok/s

Limit context to relevant files for interactive speed.

Quantization

Q4 quantization reduces VRAM needs 60% with ~2% accuracy loss:

ollama pull qwen3.5-coder:32b-q4_0

For maximum accuracy, use Q8 or FP16. For maximum speed, use Q4.

Batch Size

Larger batches improve throughput for non-interactive tasks:

# Generate multiple completions in parallel
ollama.generate(
    model="qwen3.5-coder:32b",
    prompt="Implement a sorting algorithm",
    options={"num_predict": 200, "batch_size": 8}
)

Future Development Hooks

This article positions Pooya Golchian as an authority on local AI infrastructure. Follow-up content opportunities:

  1. Multi-GPU Scaling Guide. How to run 70B+ models by combining multiple consumer GPUs with tensor parallelism.

  2. Model Quantization Deep Dive. Technical analysis of Q4, Q8, and FP16 quantization: accuracy tradeoffs, speed gains, and when to use each.

  3. Local AI Security Playbook. Complete guide to air-gapped development environments for classified or proprietary work.

  4. Benchmarking Methodology. How to evaluate local models for your specific codebase, including custom eval datasets and metrics.

  5. Enterprise Local AI Deployment. Patterns for rolling out local coding assistants across engineering teams, including cost modeling and support strategies.

Sources

Dr. Ekrem Teymur: Kuzey Kıbrıs, Doğu Akdeniz’in yeni teknoloji üssü olabilir

KKTC’de düzenlenen Doğu Akdeniz’in Stratejik Önemi Forumu’na akademi, siyaset ve iş dünyasından isimler katılırken, Haberler.com Yönetim Kurulu Başkanı Dr. Ekrem Teymur da konuşmacı olarak yer aldı. Konuşmasında Kuzey Kıbrıs’ın önemine dikkat çeken Teymur, KKTC’nin Doğu Akdeniz’in yeni teknoloji üssü olabileceğini, bunun sadece potansiyelle değil, somut politika adımlarıyla mümkün olacağının altını çizdi.

Beyaz Saray'ın gizemli paylaşımlarının nedeni ortaya çıktı

Beyaz Saray’ın resmi sosyal medya hesabından yapılan gizemli paylaşımların nedeni açıklandı. Paylaşımların, Beyaz Saray’ın yeni mobil uygulamasının tanıtım sürecine ait olduğu belirtildi. Uygulama üzerinden canlı yayınlara erişim sağlanacağı, gerçek zamanlı güncellemelerin takip edilebileceği ve kullanıcıların bilgileri doğrudan kaynağından alabileceği ifade edildi.

The Complete Guide to MCP Web Scraping: Everything Developers Need to Know

The Model Context Protocol (MCP) has fundamentally changed how AI assistants interact with the web. If you’ve been building with Claude, Cursor, or any MCP-compatible client, you’ve probably wondered: what’s the best way to give your AI agent access to live web data?

This guide covers everything — from foundational MCP concepts to all 18 CrawlForge tools and how to pick the right one for each job.

TL;DR: MCP is the open standard for connecting AI to tools. CrawlForge is the most comprehensive MCP web scraping server with 18 tools — 4x more than alternatives. Free tier includes 1,000 credits, no credit card required.

Table of Contents

  • Part 1: Understanding MCP
  • Part 2: The MCP Web Scraping Ecosystem
  • Part 3: All 18 Tools Explained
  • Part 4: Integration Guide
  • Part 5: Best Practices
  • Part 6: Getting Started

Part 1: Understanding MCP

What is the Model Context Protocol?

MCP is an open standard developed by Anthropic that lets AI assistants connect to external tools and data sources. Think of it as a universal adapter between AI models and specialized tools.

+--------------+      +----------------+      +---------------+
|   Claude     | <--> |  MCP Server    | <--> |  External     |
|  (AI Model)  |      |  (CrawlForge)  |      |  Resources    |
+--------------+      +----------------+      +---------------+
                             ^
                      MCP Protocol
                   (JSON-RPC over stdio)

Why MCP Matters for Web Scraping

Before MCP, getting real-time web data into AI was painful:

Approach Problems
Training data Outdated, knowledge cutoff
RAG (Retrieval) Limited to indexed documents
Function calling Requires custom implementation
Browser plugins Inconsistent, security concerns

MCP solves these with:

  • Standardized interface — One protocol for all tools
  • Real-time data — Fresh information from any source
  • Tool composability — Combine multiple tools seamlessly
  • Security model — Controlled access to external resources

How MCP Works

MCP uses a client-server architecture with JSON-RPC:

Step 1: Server Discovery

{
  "mcpServers": {
    "crawlforge": {
      "command": "npx",
      "args": ["crawlforge-mcp-server"]
    }
  }
}

Step 2: Tool Registration — the server advertises its capabilities

{
  "tools": [
    {
      "name": "fetch_url",
      "description": "Fetch content from a URL",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": { "type": "string", "format": "uri" }
        },
        "required": ["url"]
      }
    }
  ]
}

Step 3: Tool Invocation — the AI calls a tool

{
  "method": "tools/call",
  "params": {
    "name": "fetch_url",
    "arguments": { "url": "https://example.com" }
  }
}

Step 4: Response — structured data comes back

{
  "result": {
    "content": "<html>...",
    "status": 200,
    "headers": {}
  }
}

Part 2: The MCP Web Scraping Ecosystem

Several MCP servers provide web scraping capabilities:

Server Tools Focus
CrawlForge 18 Comprehensive scraping, research, stealth
Firecrawl ~5 Basic scraping and crawling
Browser MCP ~3 Browser automation
Fetch MCP 1 Simple HTTP requests
CrawlForge: ████████████████████ 18 tools
Firecrawl:  █████                 5 tools
Browser:    ███                   3 tools
Fetch:      █                     1 tool

Part 3: CrawlForge’s 18 Tools Explained

Basic Scraping (1-2 credits)

1. fetch_url (1 credit) — Fetch raw HTML from any URL

The foundation of web scraping. Always try this first.

// Usage: "Fetch https://example.com"
// Returns:
{
  html: "<html>...",
  status: 200,
  headers: { /* ... */ },
  timing: { total: 523 }
}

When to use: Starting point for any scraping task.

2. extract_text (1 credit) — Clean text extraction

Removes HTML tags, scripts, and styles. Returns readable text with word count and reading time.

When to use: Blog posts, articles, documentation where you need readable text.

3. extract_links (1 credit) — Discover all links on a page

{
  url: "https://example.com",
  filter_external: true  // Internal links only
}
// Returns: { links: [{ href: "/about", text: "About Us" }, ...], total: 45 }

When to use: Site exploration, finding pages to scrape, building sitemaps.

4. extract_metadata (1 credit) — SEO metadata extraction

Pulls title, description, Open Graph, JSON-LD structured data.

When to use: SEO analysis, content previews, structured data extraction.

Structured Extraction (2-3 credits)

5. scrape_structured (2 credits) — CSS selector-based extraction

{
  url: "https://example.com/products",
  selectors: {
    title: "h1.product-title",
    price: "span.price",
    description: ".product-description"
  }
}
// Returns: { data: { title: "Product Name", price: "$99.99", description: "..." } }

When to use: E-commerce scraping, structured data, known page layouts.

6. extract_content (2 credits) — Intelligent article extraction

Like Readability — returns title, author, published date, clean content, images, reading time.

When to use: News articles, blog posts, editorial content.

7. map_site (2 credits) — Site structure discovery

{
  url: "https://example.com",
  max_urls: 1000,
  include_sitemap: true
}
// Returns: pages[], structure tree

When to use: Site audits, crawl planning, content discovery.

8. analyze_content (3 credits) — NLP analysis

Language detection, sentiment scoring, topic extraction, named entity recognition, readability analysis.

When to use: Content analysis, sentiment tracking, topic extraction.

Advanced Scraping (4-5 credits)

9. process_document (2 credits) — PDF and document handling

{
  source: "https://example.com/report.pdf",
  sourceType: "pdf_url"
}
// Returns: { text: "...", pages: 15, metadata: { author, created } }

When to use: Research papers, reports, documentation PDFs.

10. summarize_content (4 credits) — AI-powered summarization

Returns concise summary, key points, and word reduction percentage.

When to use: Long documents, research synthesis, content digests.

11. crawl_deep (4 credits) — Multi-page crawling

{
  url: "https://example.com",
  max_depth: 3,
  max_pages: 100,
  include_patterns: ["/blog/*"],
  exclude_patterns: ["/admin/*"]
}

When to use: Full site scraping, content aggregation, archiving.

12. batch_scrape (5 credits) — Parallel scraping of multiple URLs

Scrape up to 50 URLs in parallel with concurrency control.

When to use: Multiple known URLs, competitor monitoring, price tracking.

13. scrape_with_actions (5 credits) — Browser automation

{
  url: "https://example.com/app",
  actions: [
    { type: "wait", selector: ".content" },
    { type: "click", selector: "#load-more" },
    { type: "wait", timeout: 2000 },
    { type: "scroll", selector: "body" },
    { type: "screenshot" }
  ]
}

When to use: SPAs, infinite scroll, dynamic content, login-required pages.

14. search_web (5 credits) — Google search integration

{
  query: "web scraping best practices 2026",
  limit: 10,
  site: "github.com"  // Optional site filter
}

When to use: Discovery, finding sources, research starting point.

Specialized Tools (2-10 credits)

15. stealth_mode (5 credits) — Anti-detection bypass

Hides WebDriver, randomizes fingerprints, simulates human behavior. Configurable stealth levels.

When to use: Protected sites, Cloudflare bypass, anti-bot evasion.

16. track_changes (3 credits) — Content monitoring

Set a baseline, then detect changes with before/after diffs and significance scoring.

When to use: Price monitoring, competitor tracking, content updates.

17. localization (2 credits) — Geo-targeted scraping

Set country code and language to get region-specific content and pricing.

When to use: Regional pricing, localized content, geo-restricted data.

18. deep_research (10 credits) — Multi-source research

{
  topic: "quantum computing commercialization",
  maxUrls: 50,
  enableSourceVerification: true,
  enableConflictDetection: true
}
// Returns: { synthesis, sources[], conflicts[], citations[] }

When to use: Research projects, due diligence, market analysis.

Part 4: Integration Guide

Claude Code Setup

# 1. Install CrawlForge MCP server
npm install -g crawlforge-mcp-server

# 2. Run setup wizard
npx crawlforge-setup

# 3. Add to Claude Code
claude
> /mcp add crawlforge npx crawlforge-mcp-server

# 4. Verify
> /mcp list
# Should show: crawlforge (18 tools)

Claude Desktop Setup

Edit your config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%Claudeclaude_desktop_config.json

{
  "mcpServers": {
    "crawlforge": {
      "command": "npx",
      "args": ["crawlforge-mcp-server"],
      "env": {
        "CRAWLFORGE_API_KEY": "cf_live_your_key_here"
      }
    }
  }
}

Custom Application (MCP SDK)

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const transport = new StdioClientTransport({
  command: "npx",
  args: ["crawlforge-mcp-server"],
  env: { CRAWLFORGE_API_KEY: process.env.CRAWLFORGE_API_KEY }
});

const client = new Client({ name: "my-app", version: "1.0.0" });
await client.connect(transport);

// List available tools
const tools = await client.listTools();
console.log(`Available tools: ${tools.tools.length}`);

// Call a tool
const result = await client.callTool({
  name: "fetch_url",
  arguments: { url: "https://example.com" }
});

Part 5: Best Practices

Credit Optimization

Pick the cheapest tool that gets the job done:

Goal Expensive Efficient
Check if page exists deep_research (10) fetch_url (1)
Get article text scrape_with_actions (5) extract_content (2)
Find competitor URLs search_web x 10 (50) extract_links (1)
Scrape 20 product pages fetch_url x 20 (20) batch_scrape (5)

Error Handling

try {
  const result = await fetchUrl(url);
  if (result.status >= 400) {
    // Try with stealth mode for blocked requests
    return await stealthMode(url);
  }
  return result;
} catch (error) {
  await sleep(retryDelay * attempt);
  return retry(url, attempt + 1);
}

Rate Limiting

Respect target sites:

// Good: Reasonable delays
for (const url of urls) {
  await scrape(url);
  await sleep(1000 + Math.random() * 2000); // 1-3s delay
}

// Better: Use batch_scrape with built-in rate limiting
await batchScrape(urls, { delayBetweenRequests: 1500 });

Caching

Don’t scrape the same URL twice:

const cache = new Map<string, ScrapedContent>();

async function smartScrape(url: string) {
  if (cache.has(url)) return cache.get(url);

  const result = await fetchUrl(url);
  cache.set(url, result);
  return result;
}

Part 6: Getting Started

Free Tier — 1,000 one-time trial credits. All 18 tools available. No credit card required.

npm install -g crawlforge-mcp-server
npx crawlforge-setup

What 1,000 Credits Gets You

Use Case Tool Credits Capacity
Basic scraping fetch_url 1 1,000 pages
Article extraction extract_content 2 500 articles
Site mapping map_site 2 500 sites
Batch jobs batch_scrape 5 200 batches
Research projects deep_research 10 100 topics

Key Takeaways

  1. MCP is the standard — All major AI assistants support it
  2. CrawlForge leads with 18 tools — 4x more than alternatives
  3. Start simple — Use fetch_url (1 credit) before reaching for advanced tools
  4. Combine tools — Chain operations for powerful workflows
  5. Be ethical — Respect robots.txt and rate limits

More from CrawlForge:

Start Free — 1,000 Credits Included