DEV Community

Cover image for Claude Code Secretly Hoards 140+ Config Files Behind Your Back. Here's How to See What It Actually Loads.
ithiria894
ithiria894

Posted on • Edited on • Originally published at github.com

Claude Code Secretly Hoards 140+ Config Files Behind Your Back. Here's How to See What It Actually Loads.

Fair warning: I'm a CS dropout. I've been using Claude Code for two weeks. On day 6, I peeked inside ~/.claude/ and found 140 items I never knew existed — memories, skills, MCP server configs, commands, agents, rules, hooks, plans, sessions — scattered across directories. I built a dashboard to fix it in one day. Two weeks later it has 150+ GitHub stars and people from 15+ countries are using it.

Here's the problem I found, and the tool I built to solve it.

You Don't Know What Claude Actually Loads

Every time you start a Claude Code session, it silently loads configs from multiple locations. But here's what nobody tells you: each category follows different rules.

  • MCP servers use local > project > user precedence — same-name servers in a narrower scope override broader ones
  • Agents — project-level agents shadow same-name user agents
  • Commands — available from user and project, but same-name conflicts are officially "not supported"
  • Skills — available from personal, project, and plugin sources
  • Settings — resolved by a precedence chain: managed > CLI > project local > project shared > user
  • CLAUDE.md — walks up parent directories from your working directory

There is no built-in command to see what's effective in your current session. You have to mentally reconstruct it from multiple directories, JSON files, and precedence rules.

The best part: I found three identical MCP server entries because I'd added the same server while cd'd into different directories. Claude happily duplicated it each time without telling me.

Why This Actually Hurts Your AI's Performance

This isn't just messy — it's a technical problem. Everything Claude loads goes into your context window.

A skill meant for a Python pipeline sitting in global? It gets loaded into every session — including your React frontend work. Duplicate MCP entries? Claude initializes the same server multiple times. Stale memories from months ago? Still there, still eating tokens, still potentially contradicting your current instructions.

Irrelevant configs directly degrade LLM accuracy. Your context window is finite — every byte wasted on misplaced config is a byte not spent on your actual work.

One Command, Full Visibility

npx @mcpware/claude-code-organizer
Enter fullscreen mode Exit fullscreen mode

Opens a web dashboard at http://localhost:3847. Scans your real ~/.claude/ directory. Shows everything Claude Code has stored — across all projects.

Claude Code Organizer Demo

Show Effective — See What Claude Actually Loads

This is the core feature. Click ✦ Show Effective and CCO computes what Claude actually loads for each project, using each category's own official rules.

Items are tagged with status badges:

  • GLOBAL — available from ~/.claude/, applies to all projects
  • ANCESTOR — loaded from a parent directory (CLAUDE.md ancestry)
  • SHADOWED — overridden by a project-level item with the same name
  • ⚠ CONFLICT — same name exists in multiple scopes with unclear precedence

Hover any category pill for its specific rule. Categories without official rules (plans, sessions) are dimmed — CCO doesn't fake rules that don't exist.

What You Actually See

Category Viewable Movable Deletable
Memories (feedback, user, project, reference) Yes Yes Yes
Skills (with bundle detection) Yes Yes Yes
MCP Servers Yes Yes Yes
Commands (slash commands) Yes Yes Yes
Agents (subagents) Yes Yes Yes
Rules Yes Yes
Plans Yes Yes
Sessions Yes Yes
Config (CLAUDE.md, settings.json) Yes Locked
Hooks Yes Locked
Plugins Yes Locked

11 categories across all projects — not 15 rounds of cat and ls.

Not Just a Viewer

Move items where they belong

Memory trapped in a project that should be global? Click Move, pick the destination. MCP server that belongs to one repo? Move it there. Warnings are shown for precedence changes and name conflicts before any move happens.

Context Budget

Your context window is not 200K tokens. It's 200K minus everything Claude pre-loads.

CCO counts every item's tokens (ai-tokenizer, ~99.8% accuracy), shows always-loaded vs deferred breakdown, expands @imports to see what CLAUDE.md actually pulls in, and lets you toggle between 200K and 1M context windows.

MCP Security Scanner

Every MCP server you install exposes tool descriptions that go straight into Claude's prompt. A compromised server can embed hidden instructions you'd never see.

CCO connects to every MCP server, retrieves actual tool definitions, and runs them through:

  • 60 detection patterns cherry-picked from 36 open source scanners
  • 9 deobfuscation techniques (zero-width chars, unicode tricks, base64, leetspeak)
  • SHA256 hash baselines — if a server's tools change between scans, you see a CHANGED badge immediately

Other features

  • Flat or Tree view — Default flat view lists all projects equally. Toggle tree view (🌲) to inspect filesystem structure
  • Find duplicates — All items grouped by category. Three copies of the same memory? Delete the extras
  • Undo everything — Every move and delete has an undo button
  • Bulk operations — Select mode: tick multiple items, move or delete all at once
  • Detail panel — Click any item to see metadata, content preview, and a "Why it applies" explanation
  • Search & filter — Real-time search across names, descriptions, and paths
  • MCP tools — Ships as an MCP server so Claude can manage its own config programmatically

Under the Hood

Pure ES modules, zero npm dependencies (only MCP SDK for tool mode). 225 tests (84 unit + 141 E2E Playwright). Full CI/CD pipeline. Vanilla JS — no React, no build step, no bundler.

The effective resolution logic is extracted into a shared module (effective.mjs) used by both the dashboard and unit tests — same code path, no re-implementation.

Try It

npx @mcpware/claude-code-organizer
Enter fullscreen mode Exit fullscreen mode

Zero config. Works on Linux, macOS, Windows, WSL.

First run auto-installs a /cco skill — after that, just type /cco in any Claude Code session to reopen.

GitHub logo mcpware / claude-code-organizer

One dashboard to scan, find, and fix everything Claude Code loads — security scanner, context budget, scope management. npx @mcpware/claude-code-organizer

Claude Code Organizer

npm version npm downloads GitHub stars GitHub forks License: MIT Node.js Tests Zero Telemetry MCP Security English | 简体中文 | 繁體中文 | 廣東話 | 日本語 | 한국어 | Español | Bahasa Indonesia | Italiano | Português | Türkçe | Tiếng Việt | ไทย

One dashboard to see everything Claude Code loads into context — scan for poisoned MCP servers, reclaim wasted tokens, and fix misplaced configs. All without leaving the window.

Privacy: CCO reads Claude Code config files on your machine (global and project-level). Nothing is sent externally. Zero telemetry.

Claude Code Organizer Demo

225 tests (84 unit + 141 E2E) | Zero dependencies | Demo recorded by AI using Pagecast

100+ stars in 5 days. Built by a CS dropout who found 140 invisible config files controlling Claude and decided no one should have to cat each one. First open source project — thank you to everyone who starred, tested, and reported issues.

The Loop: Scan, Find, Fix

Every time you use Claude Code, three things…


Watch an earlier version walkthrough on YouTube — community demo by AI Coding Daily.

Top comments (0)