Project-Specific Slash Commands Not Loading in Claude Code 2.0.69 (macOS)

Status Closed — not planned
Maintainer reply None cached
Activity 11 comments · opened Dec 13, 2025 · closed Apr 3, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code 2.0.69 on macOS is not discovering or loading project-specific slash commands from .claude/commands/ directory.

Symptoms:

  • ❌ Commands in .claude/commands/*.md do NOT appear in autocomplete when typing /
  • ❌ Commands do NOT appear in /help output
  • ❌ Commands are NOT included in SlashCommand tool context
  • ❌ Attempting to execute commands (e.g., /my_command) fails - command not found
  • ✅ Plugin commands from ~/.claude/plugins/ load and work correctly (67 plugin commands loaded successfully)

The same command files work correctly in Docker environment with identical Claude Code version 2.0.69, suggesting this is a macOS-specific bug.

What Should Happen?

Local project commands in .claude/commands/*.md should be:

  1. Discovered automatically when Claude Code starts in a project directory
  2. Available in autocomplete when typing /
  3. Listed in /help output alongside plugin commands
  4. Executable via SlashCommand tool when invoked
  5. Included in system context for command execution

Plugin commands work correctly - project commands should work the same way.

Error Messages/Logs

# Plugin commands loaded successfully
2025-12-13T17:07:38.300Z [DEBUG] Loaded 4 commands from plugin cognitive-orchestration default directory
2025-12-13T17:07:38.303Z [DEBUG] Loaded 4 commands from plugin data-intelligence default directory
2025-12-13T17:07:38.304Z [DEBUG] Loaded 4 commands from plugin ux-product default directory
2025-12-13T17:07:38.309Z [DEBUG] Loaded 4 commands from plugin frontend-excellence default directory
2025-12-13T17:07:38.311Z [DEBUG] Loaded 4 commands from plugin backend-security default directory
2025-12-13T17:07:38.318Z [DEBUG] Loaded 15 commands from plugin dev-accelerator default directory
2025-12-13T17:07:38.319Z [DEBUG] Loaded 4 commands from plugin infra-pipeline default directory
2025-12-13T17:07:38.320Z [DEBUG] Loaded 8 commands from plugin interview-assist default directory
2025-12-13T17:07:38.320Z [DEBUG] Loaded 3 commands from plugin personalities default directory
2025-12-13T17:07:38.321Z [DEBUG] Loaded 3 commands from plugin insight-engine default directory
2025-12-13T17:07:38.322Z [DEBUG] Loaded 5 commands from plugin observability-ops default directory
2025-12-13T17:07:38.322Z [DEBUG] Loaded 4 commands from plugin queue-orchestrator default directory
2025-12-13T17:07:38.323Z [DEBUG] Loaded 5 commands from plugin project-delivery default directory
2025-12-13T17:07:38.323Z [DEBUG] Total plugin commands loaded: 67
2025-12-13T17:07:38.517Z [DEBUG] Loaded plugins - Enabled: 13, Disabled: 0, Commands: 67, Agents: 76, Errors: 0

# SlashCommand tool includes ONLY plugin commands (project commands missing)
2025-12-13T17:07:39.290Z [DEBUG] Slash commands included in SlashCommand tool: /cognitive-orchestration:constructive_dissent, /cognitive-orchestration:multi_perspective, /cognitive-orchestration:orchestrate, /cognitive-orchestration:ultrathink, /data-intelligence:analytics, /data-intelligence:data, /data-intelligence:etl, /data-intelligence:timeseries, /ux-product:journey, /ux-product:product, /ux-product:user-research, /ux-product:ux, /frontend-excellence:frontend, /frontend-excellence:react, /frontend-excellence:state, /frontend-excellence:ui, /backend-security:api, /backend-security:auth, /backend-security:llm, /backend-security:security, /dev-accelerator:workflows:feature-development, /dev-accelerator:workflows:security-hardening, /dev-accelerator:workflows:tdd-cycle, /infra-pipeline:automate, /infra-pipeline:deploy, /infra-pipeline:infra, /infra-pipeline:pipeline, /interview-assist:behavioral, /interview-assist:coding, /interview-assist:leadership, /interview-assist:mock, /interview-assist:side-effects, /interview-assist:strategy, /interview-assist:system-design, /interview-assist:whiteboard, /personalities:analyze, /personalities:debate, /personalities:evaluate, /insight-engine:assumption_audit, /insight-engine:guest_expert, /insight-engine:synthesis_engine, /observability-ops:audit, /observability-ops:incident, /observability-ops:monitor, /observability-ops:slo, /observability-ops:trace, /queue-orchestrator:async, /queue-orchestrator:backpressure, /queue-orchestrator:distributed, /queue-orchestrator:queue, /project-delivery:metrics, /project-delivery:plan, /project-delivery:retro, /project-delivery:roadmap, /project-delivery:stakeholder

# Command files were successfully written by Claude Code
2025-12-13T17:28:57.553Z [DEBUG] Writing to temp file: /Users/username/projectfolder/.claude/commands/my_command.md.tmp.78262.1765646937553
2025-12-13T17:28:57.560Z [DEBUG] Renaming /Users/username/projectfolder/.claude/commands/my_command.md.tmp.78262.1765646937553 to /Users/username/projectfolder/.claude/commands/my_command.md
2025-12-13T17:28:57.561Z [DEBUG] File /Users/username/projectfolder/.claude/commands/my_command.md written atomically
2025-12-13T17:28:57.571Z [DEBUG] FileHistory: Tracked file modification for /Users/username/projectfolder/.claude/commands/my_command.md

2025-12-13T17:29:11.435Z [DEBUG] Writing to temp file: /Users/username/projectfolder/.claude/commands/custom_workflow.md.tmp.78262.1765646951435
2025-12-13T17:29:11.440Z [DEBUG] Renaming /Users/username/projectfolder/.claude/commands/custom_workflow.md.tmp.78262.1765646951435 to /Users/username/projectfolder/.claude/commands/custom_workflow.md
2025-12-13T17:29:11.440Z [DEBUG] File /Users/username/projectfolder/.claude/commands/custom_workflow.md written atomically
2025-12-13T17:29:11.453Z [DEBUG] FileHistory: Tracked file modification for /Users/username/projectfolder/.claude/commands/custom_workflow.md

Steps to Reproduce

  1. Create project with .claude/commands/ directory

``bash
mkdir -p /Users/username/projectfolder/.claude/commands
``

  1. Add command file with correct frontmatter (e.g., .claude/commands/test.md)

```yaml
---
description: Test command to verify discovery
argument-hint: [arg1] [arg2]
allowed-tools: Bash(), Read(), Write(*)
---

This is a test command.
```

  1. Verify file permissions

``bash
ls -la .claude/commands/test.md
# Should be readable: -rw-r--r--
``

  1. Start Claude Code 2.0.69 in the project directory

``bash
cd /Users/username/projectfolder
claude
``

  1. Test command discovery
  • Type / to see autocomplete → only plugin commands appear
  • Type /help → only plugin commands listed
  • Try /test → command not found

Expected: /test command should appear and be executable
Actual: Command does not appear, only plugin commands load

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.69

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

⚠️ Important Clue: Commands Work with --debug Flag

Critical finding: Project commands DO appear and work correctly when starting Claude Code with the --debug flag:

claude --debug
# Commands in .claude/commands/ are discovered and functional

Comparison:

  • claude --debug → Project commands load correctly
  • claude (normal mode) → Project commands do NOT load

This suggests:

  • Debug mode may use a different code path for command discovery
  • There could be a timing issue that debug mode avoids
  • Normal mode may have an optimization or caching mechanism that's broken
  • The command discovery logic exists but isn't being triggered in normal mode

Key Findings from Debug Logs

Log analysis reveals:

  • ✅ 67 plugin commands loaded successfully
  • NO log entries for loading project commands from .claude/commands/
  • ❌ SlashCommand tool context only includes plugin commands
  • ✅ File write events confirm command files exist at correct location

Missing log entries (expected but not present):

  • "Loaded commands from project"
  • "Loaded X commands from .claude/commands"
  • Any reference to discovering local command files

This confirms command files exist and are accessible, but project command discovery is completely skipped on macOS.

Version Testing

The break appeared to coincide with the auto-upgrade to version 2.0.69, leading to the initial suspicion of a regression. However:

  • Reverted to version 2.0.65 - Commands still did not load
  • Tested with 2.0.68 - Commands still did not load (if tested)

Conclusion: It's not clear if this is a regression or a pre-existing issue that was only recently discovered. The commands definitely work in Docker with 2.0.69, which points to a macOS-specific implementation issue rather than a recent breaking change.

Command File Details

Location:

/Users/username/projectfolder/.claude/commands/
├── my_command.md
├── custom_workflow.md
└── test.md

File Permissions:

-rw-r--r--  1 username  staff  27664 Dec 13 12:28 my_command.md
-rw-r--r--  1 username  staff   5615 Dec 13 12:29 custom_workflow.md
-rw-r--r--  1 username  staff    150 Dec 13 12:35 test.md

All files are readable and have correct permissions.

Sample Frontmatter (Verified Correct Format):

---
description: Execute one iteration - implement changes, validate, and document results
argument-hint: [scope] [iteration]
allowed-tools: Bash(*), Read(*), Write(*), Edit(*), Task(*), SlashCommand(*)
---

Format verified against official documentation:

  • ✅ No name field (derived from filename)
  • ✅ No arguments array (not supported)
  • ✅ Has description (required for discovery)
  • ✅ Has argument-hint (optional)
  • ✅ Has allowed-tools (optional)

Workarounds Tested

❌ Failed Attempts:

  1. Restarting Claude Code - Commands still not discovered
  2. Clearing macOS extended attributes - No effect
  3. Using --dangerously-skip-permissions flag - Commands still not loaded
  4. Checking file encoding - Files are UTF-8 (correct)
  5. Verifying working directory - Correct (pwd matches .claude/ location)

✅ Working in Docker Environment:

The same command files work correctly when Claude Code runs in a Docker container:

Docker Configuration:

  • Base Image: Ubuntu/Debian Linux
  • Claude Code Version: Same (2.0.69, installed via npm)
  • Volume Mounts:
  • Project directory mounted at /workspace (read/write)
  • ~/.claude directory mounted from host (contains same settings, plugins, etc.)
  • ~/.gitconfig mounted (read-only)
  • ~/.ssh mounted (read-only)
  • Working Directory: Container starts in /workspace (project root)
  • Commands: Same .claude/commands/*.md files (via volume mount from macOS host)

Result: When running claude inside the Docker container, project commands load and work correctly.

Key observations:

  • Same Claude Code binary version (2.0.69)
  • Same command files (mounted from host filesystem)
  • Same ~/.claude settings directory (mounted from host)
  • Different OS: Linux (Docker) vs Darwin (macOS host)

This strongly suggests a macOS-specific bug in command discovery, potentially related to filesystem operations or path resolution that behaves differently on Darwin vs Linux.

🔄 Untested Workarounds:

  1. Global commands: Copy to ~/.claude/commands/ instead of .claude/commands/
  2. Rollback to 2.0.68: Test if this is a regression in 2.0.69

Permissions Configuration

Commands are whitelisted in .claude/settings.local.json:

{
  "allow": [
    "SlashCommand(/my_command:*)",
    "SlashCommand(/custom_workflow:*)"
  ]
}

Docker vs macOS Comparison

| Aspect | Docker (✅ Works) | macOS (❌ Broken) |
|--------|------------------|-------------------|
| Claude Code Version | 2.0.69 | 2.0.69 |
| Command Files | Same (mounted) | Same |
| File Permissions | Readable | Readable |
| Commands Load | Yes | No |
| Platform | Linux | Darwin |

Impact

This bug prevents using project-specific workflow automation commands, forcing users to:

  • Use Docker containers (workaround overhead)
  • Use global commands (loses project isolation)
  • Use agents instead (different UX)

Configuration Files

.claude/settings.local.json:

{
  "allow": [
    "SlashCommand(/my_command:*)"
  ]
}

Working directory structure:

/Users/username/projectfolder/
├── .claude/
│   ├── commands/
│   │   ├── my_command.md
│   │   └── test.md
│   └── settings.local.json
└── (project files)

View original on GitHub ↗

11 Comments

github-actions[bot] · 8 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/10545
  2. https://github.com/anthropics/claude-code/issues/9518
  3. https://github.com/anthropics/claude-code/issues/10401

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

mattquickenden · 8 months ago

I have found a number of time and it keeps being auto closed, unfrotunately it does not appear to be solved

this is happening to me to on windows claude 2.0.69 extension version 2.0.62.
it also works in the CLI but not the extension

https://github.com/anthropics/claude-code/issues/6932
https://github.com/anthropics/claude-code/issues/9926

https://code.claude.com/docs/en/troubleshooting
mentions
Search and discovery issues
If Search tool, @file mentions, custom agents, and custom slash commands aren’t working, install system ripgrep
installed that (and reloaded) still not displaying

<img width="939" height="640" alt="Image" src="https://github.com/user-attachments/assets/48158ad4-f61e-46df-bbc0-67a28a8d6177" />

<img width="1388" height="185" alt="Image" src="https://github.com/user-attachments/assets/3ebba8d9-2e16-4fa0-b10f-040b6d6b30bb" />

sammywachtel · 8 months ago

The issue does seem to be reported most closely in https://github.com/anthropics/claude-code/issues/10401, but that's been closed and so deeping this one open for now.

mattquickenden · 8 months ago

I deleted my claude installation entirely and reinstalled. It worked.
analysis of the log from the vscode claude output

Result: Slash commands list is EMPTY in bad.log:

Slash commands included in SlashCommand tool:
[BLANK - no commands loaded]

In good log
Slash commands included in SlashCommand tool: /agent-os:create-tasks,
/agent-os:implement-tasks, /agent-os:improve-skills, /agent-os:orchestrate-tasks,
/agent-os:plan-product, /agent-os:shape-spec, /agent-os:write-spec, /write-spec

Key Issues in bad.log:
EPERM error - Could not write to C:\Users\USER\.claude.json
This file stores Claude Code's configuration cache
File was likely locked or had permission issues
Ripgrep test FAILED

Ripgrep first use test: FAILED
vs good.log: Ripgrep first use test: PASSED
Shell snapshot failures - Multiple SIGTERM errors when creating bash snapshots
Why the fresh install fixed it:
Deleting and reinstalling Claude Code:
Cleared corrupted/locked ~/.claude.json cache file
Reset file permissions
Removed any stale lock files
Allowed clean initialization of configuration

Recommendation:

If this happens again, you don't need to fully reinstall. Instead, try:
Close VSCode completely
Delete C:\Users\USER\.claude.json
Delete C:\Users\USER\.claude\ folder (or just the cache files)
Restart VSCode
The EPERM error preventing the config cache from being written caused the slash commands to fail loading entirely.

github-actions[bot] · 7 months ago

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

ilyagvoz · 7 months ago

I can confirm this is still happening in version 2.0.76 (tested on January 18, 2026). Would you mind keeping this issue open? Thanks so much.

raizon · 7 months ago

Me too

gihrig · 6 months ago

Claude code 2.1.47
macOS 15.7.5
zsh
wezterm 20240203-110809-5046fc22

Newly created custom slash command (.claude/commands/test_command.md) does not show when '/' is entered at the prompt line.

However, entering '/test_command' works as expected even though the command was not shown in the command list.

After executing the command it then did appear in command list when '/' was entered.

After exiting Claude Code and restarting the terminal '/' now shows
'/test_command'

neilzhang · 5 months ago

sample problem

install by npm
claude version: v2.1.69
os: mac os 13.0 (22A380)

Add the following to the env section of ~/.claude/settings.json:
"CLAUDE_CODE_USE_NATIVE_FILE_SEARCH": "true"

it works for me

github-actions[bot] · 4 months ago

Closing for now — inactive for too long. Please open a new issue if this is still relevant.

github-actions[bot] · 4 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.