# Claude Code .gitignore # For managing ~/.claude directory with git # This allows sharing global configuration (CLAUDE.md, agents, etc.) # while excluding machine-specific and sensitive data # ============================================================================= # SENSITIVE DATA - NEVER COMMIT # ============================================================================= # Credentials and authentication tokens .credentials.json *.credentials *.token *.key # API keys or secrets secrets/ *.secret # ============================================================================= # MACHINE-SPECIFIC STATE AND OVERRIDES # ============================================================================= # Machine-specific overrides (work preferences, personal additions) CLAUDE-LOCAL.md *-local.json *-LOCAL.md local/ # Conversation history (contains project-specific and personal conversations) history.jsonl history.*.jsonl # Session-specific todo lists (ephemeral, per-session data) todos/ *.todo # Project-specific state (machine-specific paths and state) projects/ # Session environment data (temporary session state) session-env/ # File version history (large, machine-specific) file-history/ # Shell state snapshots (temporary shell state) shell-snapshots/ # Plan mode drafts (session-specific planning) plans/ # ============================================================================= # LOGS AND DEBUG DATA # ============================================================================= # Debug logs debug/ *.log logs/ # Crash dumps *.dmp *.dump # ============================================================================= # TEMPORARY AND CACHE FILES # ============================================================================= # Downloaded files (temporary downloads) downloads/ # Analytics and telemetry (user-specific) statsig/ analytics/ # Cache directories .cache/ cache/ # Temporary files tmp/ temp/ *.tmp *.temp *~ # ============================================================================= # GIT METADATA # ============================================================================= # Git directory itself (if you're using git in ~/.claude) .git/ .gitattributes # ============================================================================= # OS-SPECIFIC FILES # ============================================================================= # Linux .directory .Trash-*/ # macOS .DS_Store .AppleDouble .LSOverride ._* # Windows Thumbs.db ehthumbs.db Desktop.ini # ============================================================================= # EDITOR ARTIFACTS # ============================================================================= # Vim *.swp *.swo *.swn .*.sw? # Emacs *~ \#*\# .\#* # VS Code .vscode/ # JetBrains .idea/ # ============================================================================= # WHAT TO TRACK (explicitly NOT ignored) # ============================================================================= # These files SHOULD be tracked and are explicitly listed here for clarity: # The following patterns ensure custom configurations are tracked in git: # # - CLAUDE.md - Your global Claude instructions # - settings.json - Claude Code settings # - agents/ - Custom agents (*.json files) # - commands/ - Custom slash commands (*.md files) # - skills/ - Custom skills # - hooks/ - Custom hooks # - .clauderc - Claude configuration # - README.md - Documentation for your setup # # These are NOT ignored by default and will be tracked when you git add them. # The .gitignore above only excludes machine-specific and sensitive data. # ============================================================================= # ADDITIONAL PATTERNS # ============================================================================= # Backup files *.bak *.backup *.old # Lock files *.lock .lock # Node modules (if any extensions use them) node_modules/ # Python cache (if any extensions use Python) __pycache__/ *.py[cod] *.pyo *.pyd .Python